summaryrefslogtreecommitdiff
path: root/src/netmonitor/front/scanner_tab_pushscreens.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/netmonitor/front/scanner_tab_pushscreens.py')
-rw-r--r--src/netmonitor/front/scanner_tab_pushscreens.py35
1 files changed, 35 insertions, 0 deletions
diff --git a/src/netmonitor/front/scanner_tab_pushscreens.py b/src/netmonitor/front/scanner_tab_pushscreens.py
new file mode 100644
index 0000000..4e4a564
--- /dev/null
+++ b/src/netmonitor/front/scanner_tab_pushscreens.py
@@ -0,0 +1,35 @@
+from textual import on
+from textual.app import ComposeResult
+from textual.widgets import Input, Button, Label
+from textual.containers import Vertical, Horizontal
+from textual.screen import ModalScreen
+
+from ..back.scanner_profiles_manager import ScannerProfilesManager
+
+class SaveProfilePushScreen(ModalScreen[str]):
+ def __init__(self, manager: ScannerProfilesManager, nmap_input, cve_check, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.manager = manager
+ self.nmap_input = nmap_input
+ self.cve_check = cve_check
+
+
+ def compose(self) -> ComposeResult:
+ with Vertical(classes="modal-window small-modal"):
+ yield Label("Save scan profile", classes="modal-header")
+ yield Input(placeholder="Profile name:", id="profile-name", classes="input")
+ with Horizontal(id="buttons-row", classes="modal-buttons modal-footer"):
+ yield Button("Confirm", id="confirm-button", variant="success", classes="button")
+ yield Button("Cancel", id="cancel-button", variant="error", classes="button")
+
+ @on(Button.Pressed)
+ async def on_button_pressed(self, event: Button.Pressed):
+ if event.button.id == "confirm-button":
+ profile_name = self.query_one("#profile-name", Input).value.strip()
+ self.manager.add_profile(profile_name)
+ self.manager.update_profile(profile_name,"nmap_input",self.nmap_input,notify=False)
+ self.manager.update_profile(profile_name,"cve",self.cve_check, notify=False)
+ self.dismiss(None)
+ else:
+ self.dismiss(None)
+