remove redundant back button

This commit is contained in:
rambros 2026-03-08 03:42:39 +05:30
parent b4b64dffce
commit 542411cc0b
3 changed files with 19 additions and 18 deletions

View file

@ -201,7 +201,7 @@ class BackupPane(Container):
modal.write(f"[bold green]Server Profile backed up to: {self.exporter.export_path}[/bold green]")
modal.write(f"- {len(roles)} roles, {e_count} emojis, {s_count} stickers.")
modal.phase_report("Profile Backup")
modal.phase_report("Profile Backup", show_back=False)
except self.engine.discord_reader.Forbidden as e:
modal.write(f"[bold red]Backup failed: {e}[/bold red]")
@ -378,7 +378,7 @@ class BackupPane(Container):
if not self.exporter.is_running:
modal_prog.set_item_status("[bold red]Backup Cancelled.[/bold red]")
modal_prog.phase_report("Message Backup", "stopped")
modal_prog.phase_report("Message Backup", "stopped", show_back=False)
return
modal_prog.set_progress(total_chans, total_chans)
@ -387,12 +387,12 @@ class BackupPane(Container):
await self.exporter.export_metadata()
modal_prog.write("[bold green]Message backup complete![/bold green]")
logger.info("Message backup operation completed successfully.")
modal_prog.phase_report("Message Backup")
modal_prog.phase_report("Message Backup", show_back=False)
except Exception as e:
logger.error(f"Message backup failed: {e}\n{traceback.format_exc()}")
modal_prog.write(f"[bold red]Message backup failed: {e}[/bold red]")
modal_prog.phase_report("Message Backup", "error")
modal_prog.phase_report("Message Backup", "error", show_back=False)
finally:
await self.engine.close_connections()
@ -501,7 +501,7 @@ class BackupPane(Container):
if not self.exporter.is_running:
modal_prog.set_item_status("[bold red]Sync Cancelled.[/bold red]")
modal_prog.phase_report("Backup Sync", "stopped")
modal_prog.phase_report("Backup Sync", "stopped", show_back=False)
return
modal_prog.set_progress(total_chans, total_chans)
@ -510,11 +510,11 @@ class BackupPane(Container):
await self.exporter.export_metadata()
modal_prog.write("[bold green]Sync operation complete![/bold green]")
logger.info("Sync operation completed successfully.")
modal_prog.phase_report("Backup Sync")
modal_prog.phase_report("Backup Sync", show_back=False)
except Exception as e:
logger.error(f"Sync failed: {e}\n{traceback.format_exc()}")
modal_prog.write(f"[bold red]Sync failed: {e}[/bold red]")
modal_prog.phase_report("Backup Sync", "error")
modal_prog.phase_report("Backup Sync", "error", show_back=False)
finally:
await self.engine.close_connections()

View file

@ -329,7 +329,7 @@ class ProgressScreen(Screen[None]):
try: self.query_one("#info_new_items", Label).display = False
except Exception: pass
def phase_report(self, operation_name: str, status: str = "complete"):
def phase_report(self, operation_name: str, status: str = "complete", show_back: bool = True):
"""Phase 4: Operation is done. Show Back + Main Menu.
status can be: 'complete', 'stopped', 'error'
@ -365,7 +365,8 @@ class ProgressScreen(Screen[None]):
try:
back_btn = self.query_one("#btn_back", Button)
back_btn.disabled = False
back_btn.disabled = not show_back
back_btn.display = show_back
except Exception:
pass

View file

@ -494,13 +494,13 @@ class ShuttlePane(Container):
elif sel == "sub_sync_perms":
results["perms"] = await self._logic_sync_permissions(modal)
modal.phase_report("Clone Template Complete")
modal.phase_report("Clone Template Complete", show_back=False)
report = self._format_clone_report(results)
modal.write(report)
except Exception as e:
logger.error(f"Batch Cloning Error: {e}\n{traceback.format_exc()}")
modal.write(f"[bold red]Error: {e}[/bold red]")
modal.phase_report("Batch Operation", "error")
modal.phase_report("Batch Operation", "error", show_back=False)
finally:
self.engine.is_running = False
await self.engine.close_connections()
@ -578,13 +578,13 @@ class ShuttlePane(Container):
if meta_comps:
results["metadata"] = await self._logic_sync_metadata(modal, meta_comps)
modal.phase_report("Sync Settings Complete")
modal.phase_report("Sync Settings Complete", show_back=False)
report = self._format_sync_report(results)
modal.write(report)
except Exception as e:
logger.error(f"Batch Sync Error: {e}\n{traceback.format_exc()}")
modal.write(f"[bold red]Error: {e}[/bold red]")
modal.phase_report("Batch Operation", "error")
modal.phase_report("Batch Operation", "error", show_back=False)
finally:
self.engine.is_running = False
await self.engine.close_connections()
@ -1005,11 +1005,11 @@ class ShuttlePane(Container):
if self.engine.is_running:
modal.write(f"[bold green]Success! {result['messages']} messages migrated.[/bold green]")
event_title = "Message Migration"
modal.phase_report(event_title)
modal.phase_report(event_title, show_back=False)
else:
modal.write(f"[bold yellow]Interrupted! {result['messages']} messages migrated.[/bold yellow]")
event_title = "Message Migration"
modal.phase_report(event_title, "stopped")
modal.phase_report(event_title, "stopped", show_back=False)
lines = [f"Migrated Discord #{source_channel.name}{platform_name} #{target_channel.get('name')}:"]
lines.append(f"{result['messages']} messages, {result['attachments']} attachments, {result['threads']} threads")
@ -1021,7 +1021,7 @@ class ShuttlePane(Container):
modal.write("[bold red]Bot is missing the 'Masquerade' permission.[/bold red]")
else:
modal.write(f"[bold red]Error: {err}[/bold red]")
modal.phase_report("Message Migration", "error")
modal.phase_report("Message Migration", "error", show_back=False)
finally:
self.engine.is_running = False
await self.engine.close_connections()
@ -1126,11 +1126,11 @@ class ShuttlePane(Container):
elif sel == "dz_del_assets":
await self._logic_dz_delete_assets(modal)
modal.phase_report("Danger Zone Operations Complete")
modal.phase_report("Danger Zone Operations Complete", show_back=False)
modal.write("[bold green]All selected destructive operations finished.[/bold green]")
except Exception as e:
modal.write(f"[bold red]Error: {e}[/bold red]")
modal.phase_report("Danger Zone Batch", "error")
modal.phase_report("Danger Zone Batch", "error", show_back=False)
finally:
self.engine.is_running = False
await self.engine.close_target_only()