diff --git a/tui/screens/backup.py b/tui/screens/backup.py index 981cba0..e799d77 100644 --- a/tui/screens/backup.py +++ b/tui/screens/backup.py @@ -3,7 +3,7 @@ from textual.screen import Screen from textual.widgets import Header, Footer, Static, Button, Select from tui.widgets.header import GnizaHeader as Header # noqa: F811 from textual.containers import Vertical, Horizontal -from textual.events import Click + from tui.config import list_conf_dir, has_targets, has_remotes from tui.jobs import job_manager from tui.widgets import ConfirmDialog, DocsPanel @@ -68,7 +68,9 @@ class BackupScreen(Screen): pass def on_button_pressed(self, event: Button.Pressed) -> None: - if event.button.id == "btn-backup": + if event.button.id == "btn-back": + self.app.pop_screen() + elif event.button.id == "btn-backup": target_sel = self.query_one("#backup-target", Select) if not isinstance(target_sel.value, str): self.notify("Please select a source", severity="error") @@ -102,9 +104,5 @@ class BackupScreen(Screen): job_manager.start_job(self.app, job, "backup", "--all") self.app.switch_screen("running_tasks") - def on_click(self, event: Click) -> None: - if event.widget.id == "btn-back": - self.app.pop_screen() - def action_go_back(self) -> None: self.app.pop_screen() diff --git a/tui/screens/remotes.py b/tui/screens/remotes.py index a72de35..caad8d8 100644 --- a/tui/screens/remotes.py +++ b/tui/screens/remotes.py @@ -3,7 +3,7 @@ from textual.screen import Screen from textual.widgets import Header, Footer, Static, Button, DataTable from tui.widgets.header import GnizaHeader as Header # noqa: F811 from textual.containers import Vertical, Horizontal -from textual.events import Click + from textual import work from tui.config import list_conf_dir, parse_conf, CONFIG_DIR @@ -61,7 +61,9 @@ class RemotesScreen(Screen): return None def on_button_pressed(self, event: Button.Pressed) -> None: - if event.button.id == "btn-add": + if event.button.id == "btn-back": + self.app.pop_screen() + elif event.button.id == "btn-add": self.app.push_screen("remote_edit", callback=lambda _: self._refresh_table()) elif event.button.id == "btn-edit": name = self._selected_remote() @@ -121,9 +123,5 @@ class RemotesScreen(Screen): self.notify(f"Destination '{name}' deleted.") self._refresh_table() - def on_click(self, event: Click) -> None: - if event.widget.id == "btn-back": - self.app.pop_screen() - def action_go_back(self) -> None: self.app.pop_screen() diff --git a/tui/screens/restore.py b/tui/screens/restore.py index 657836c..8a38932 100644 --- a/tui/screens/restore.py +++ b/tui/screens/restore.py @@ -3,7 +3,7 @@ from textual.screen import Screen from textual.widgets import Header, Footer, Static, Button, Select, Input, RadioSet, RadioButton, Switch from tui.widgets.header import GnizaHeader as Header # noqa: F811 from textual.containers import Vertical, Horizontal -from textual.events import Click + from textual import work, on from tui.config import list_conf_dir, parse_conf, CONFIG_DIR @@ -98,7 +98,9 @@ class RestoreScreen(Screen): self.notify("No snapshots found", severity="warning") def on_button_pressed(self, event: Button.Pressed) -> None: - if event.button.id == "btn-browse-dest": + if event.button.id == "btn-back": + self.app.pop_screen() + elif event.button.id == "btn-browse-dest": self.app.push_screen( FolderPicker("Select destination directory"), callback=self._dest_selected, @@ -156,9 +158,5 @@ class RestoreScreen(Screen): job_manager.start_job(self.app, job, *args) self.app.switch_screen("running_tasks") - def on_click(self, event: Click) -> None: - if event.widget.id == "btn-back": - self.app.pop_screen() - def action_go_back(self) -> None: self.app.pop_screen() diff --git a/tui/screens/retention.py b/tui/screens/retention.py index f54c73e..0e5476a 100644 --- a/tui/screens/retention.py +++ b/tui/screens/retention.py @@ -3,7 +3,7 @@ from textual.screen import Screen from textual.widgets import Header, Footer, Static, Button, Select, Input from tui.widgets.header import GnizaHeader as Header # noqa: F811 from textual.containers import Vertical, Horizontal -from textual.events import Click + from textual import work from tui.config import list_conf_dir, parse_conf, update_conf_key, CONFIG_DIR @@ -46,7 +46,9 @@ class RetentionScreen(Screen): yield Footer() def on_button_pressed(self, event: Button.Pressed) -> None: - if event.button.id == "btn-cleanup": + if event.button.id == "btn-back": + self.app.pop_screen() + elif event.button.id == "btn-cleanup": target_sel = self.query_one("#ret-target", Select) if not isinstance(target_sel.value, str): self.notify("Select a source first", severity="error") @@ -91,9 +93,5 @@ class RetentionScreen(Screen): log_screen.write(f"\n[red]Cleanup failed (exit code {rc}).[/red]") log_screen.finish() - def on_click(self, event: Click) -> None: - if event.widget.id == "btn-back": - self.app.pop_screen() - def action_go_back(self) -> None: self.app.pop_screen() diff --git a/tui/screens/schedule.py b/tui/screens/schedule.py index b4295b7..eb5234f 100644 --- a/tui/screens/schedule.py +++ b/tui/screens/schedule.py @@ -5,7 +5,7 @@ from textual.screen import Screen from textual.widgets import Header, Footer, Static, Button, DataTable from tui.widgets.header import GnizaHeader as Header # noqa: F811 from textual.containers import Vertical, Horizontal -from textual.events import Click + from textual import work from tui.config import list_conf_dir, parse_conf, update_conf_key, CONFIG_DIR @@ -99,7 +99,9 @@ class ScheduleScreen(Screen): return None def on_button_pressed(self, event: Button.Pressed) -> None: - if event.button.id == "btn-add": + if event.button.id == "btn-back": + self.app.pop_screen() + elif event.button.id == "btn-add": from tui.screens.schedule_edit import ScheduleEditScreen self.app.push_screen(ScheduleEditScreen(), callback=self._on_schedule_saved) elif event.button.id == "btn-edit": @@ -223,9 +225,5 @@ class ScheduleScreen(Screen): log_screen.write(stderr) log_screen.finish() - def on_click(self, event: Click) -> None: - if event.widget.id == "btn-back": - self.app.pop_screen() - def action_go_back(self) -> None: self.app.pop_screen() diff --git a/tui/screens/settings.py b/tui/screens/settings.py index 094b1ce..607fc71 100644 --- a/tui/screens/settings.py +++ b/tui/screens/settings.py @@ -3,7 +3,7 @@ from textual.screen import Screen from textual.widgets import Header, Footer, Static, Button, Input, Select from tui.widgets.header import GnizaHeader as Header # noqa: F811 from textual.containers import Vertical, Horizontal -from textual.events import Click + from textual import work from tui.config import parse_conf, write_conf, CONFIG_DIR @@ -92,7 +92,9 @@ class SettingsScreen(Screen): self.query_one("#section-web").border_title = "Web Dashboard" def on_button_pressed(self, event: Button.Pressed) -> None: - if event.button.id == "btn-save": + if event.button.id == "btn-back": + self.app.pop_screen() + elif event.button.id == "btn-save": self._save() elif event.button.id == "btn-test-email": self._save() @@ -140,9 +142,5 @@ class SettingsScreen(Screen): log_screen.write(stderr) log_screen.finish() - def on_click(self, event: Click) -> None: - if event.widget.id == "btn-back": - self.app.pop_screen() - def action_go_back(self) -> None: self.app.pop_screen() diff --git a/tui/screens/snapshots.py b/tui/screens/snapshots.py index c8d11d8..e327297 100644 --- a/tui/screens/snapshots.py +++ b/tui/screens/snapshots.py @@ -6,7 +6,7 @@ from textual.screen import Screen from textual.widgets import Header, Footer, Static, Button, Select, DataTable from tui.widgets.header import GnizaHeader as Header # noqa: F811 from textual.containers import Vertical, Horizontal -from textual.events import Click + from textual import work from tui.config import list_conf_dir @@ -58,7 +58,9 @@ class SnapshotsScreen(Screen): pass def on_button_pressed(self, event: Button.Pressed) -> None: - if event.button.id == "btn-load": + if event.button.id == "btn-back": + self.app.pop_screen() + elif event.button.id == "btn-load": self._load_snapshots() elif event.button.id == "btn-browse": self._browse_snapshot() @@ -134,9 +136,5 @@ class SnapshotsScreen(Screen): browser = SnapshotBrowser(f"{target} / {snapshot}", files) self.app.push_screen(browser) - def on_click(self, event: Click) -> None: - if event.widget.id == "btn-back": - self.app.pop_screen() - def action_go_back(self) -> None: self.app.pop_screen() diff --git a/tui/screens/targets.py b/tui/screens/targets.py index 3bc0486..46718ca 100644 --- a/tui/screens/targets.py +++ b/tui/screens/targets.py @@ -3,7 +3,7 @@ from textual.screen import Screen from textual.widgets import Header, Footer, Static, Button, DataTable from tui.widgets.header import GnizaHeader as Header # noqa: F811 from textual.containers import Vertical, Horizontal -from textual.events import Click + from tui.config import list_conf_dir, parse_conf, CONFIG_DIR from tui.widgets import ConfirmDialog, DocsPanel @@ -53,7 +53,9 @@ class TargetsScreen(Screen): return None def on_button_pressed(self, event: Button.Pressed) -> None: - if event.button.id == "btn-add": + if event.button.id == "btn-back": + self.app.pop_screen() + elif event.button.id == "btn-add": self.app.push_screen("target_edit", callback=lambda _: self._refresh_table()) elif event.button.id == "btn-edit": name = self._selected_target() @@ -79,9 +81,5 @@ class TargetsScreen(Screen): self.notify(f"Source '{name}' deleted.") self._refresh_table() - def on_click(self, event: Click) -> None: - if event.widget.id == "btn-back": - self.app.pop_screen() - def action_go_back(self) -> None: self.app.pop_screen()