From 542411cc0b66f696596cf8a6d0dc9585cdfa38fb Mon Sep 17 00:00:00 2001 From: rambros Date: Sun, 8 Mar 2026 03:42:39 +0530 Subject: [PATCH] remove redundant back button --- src/ui/backup_ops.py | 14 +++++++------- src/ui/modals.py | 5 +++-- src/ui/shuttle_ops.py | 18 +++++++++--------- 3 files changed, 19 insertions(+), 18 deletions(-) diff --git a/src/ui/backup_ops.py b/src/ui/backup_ops.py index e216d9b..5f8b8d6 100644 --- a/src/ui/backup_ops.py +++ b/src/ui/backup_ops.py @@ -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() diff --git a/src/ui/modals.py b/src/ui/modals.py index f453af0..062c259 100644 --- a/src/ui/modals.py +++ b/src/ui/modals.py @@ -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 diff --git a/src/ui/shuttle_ops.py b/src/ui/shuttle_ops.py index e0890ec..8e543ea 100644 --- a/src/ui/shuttle_ops.py +++ b/src/ui/shuttle_ops.py @@ -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()