refactor: go back do remove menu when component was removed

Signed-off-by: Dominik Willner <th33xitus@gmail.com>
This commit is contained in:
dw-0
2024-06-29 08:55:51 +02:00
parent 59e619ea0f
commit 61618d064d
4 changed files with 85 additions and 46 deletions

View File

@@ -25,7 +25,8 @@ class KlipperRemoveMenu(BaseMenu):
self.remove_klipper_service = False
self.remove_klipper_dir = False
self.remove_klipper_env = False
self.delete_klipper_logs = False
self.remove_klipper_logs = False
self.selection_state = False
def set_previous_menu(self, previous_menu: Optional[Type[BaseMenu]]) -> None:
from core.menus.remove_menu import RemoveMenu
@@ -36,7 +37,7 @@ class KlipperRemoveMenu(BaseMenu):
def set_options(self) -> None:
self.options = {
"0": Option(method=self.toggle_all, menu=False),
"a": Option(method=self.toggle_all, menu=False),
"1": Option(method=self.toggle_remove_klipper_service, menu=False),
"2": Option(method=self.toggle_remove_klipper_dir, menu=False),
"3": Option(method=self.toggle_remove_klipper_env, menu=False),
@@ -53,7 +54,7 @@ class KlipperRemoveMenu(BaseMenu):
o1 = checked if self.remove_klipper_service else unchecked
o2 = checked if self.remove_klipper_dir else unchecked
o3 = checked if self.remove_klipper_env else unchecked
o4 = checked if self.delete_klipper_logs else unchecked
o4 = checked if self.remove_klipper_logs else unchecked
menu = textwrap.dedent(
f"""
╔═══════════════════════════════════════════════════════╗
@@ -62,7 +63,7 @@ class KlipperRemoveMenu(BaseMenu):
║ Enter a number and hit enter to select / deselect ║
║ the specific option for removal. ║
╟───────────────────────────────────────────────────────╢
0) Select everything
a) {self._get_selection_state_str():37}
╟───────────────────────────────────────────────────────╢
║ 1) {o1} Remove Service ║
║ 2) {o2} Remove Local Repository ║
@@ -76,10 +77,11 @@ class KlipperRemoveMenu(BaseMenu):
print(menu, end="")
def toggle_all(self, **kwargs) -> None:
self.remove_klipper_service = True
self.remove_klipper_dir = True
self.remove_klipper_env = True
self.delete_klipper_logs = True
self.remove_klipper_service = not self.remove_klipper_service
self.remove_klipper_dir = not self.remove_klipper_dir
self.remove_klipper_env = not self.remove_klipper_env
self.remove_klipper_logs = not self.remove_klipper_logs
self.selection_state = not self.selection_state
def toggle_remove_klipper_service(self, **kwargs) -> None:
self.remove_klipper_service = not self.remove_klipper_service
@@ -91,14 +93,14 @@ class KlipperRemoveMenu(BaseMenu):
self.remove_klipper_env = not self.remove_klipper_env
def toggle_delete_klipper_logs(self, **kwargs) -> None:
self.delete_klipper_logs = not self.delete_klipper_logs
self.remove_klipper_logs = not self.remove_klipper_logs
def run_removal_process(self, **kwargs) -> None:
if (
not self.remove_klipper_service
and not self.remove_klipper_dir
and not self.remove_klipper_env
and not self.delete_klipper_logs
and not self.remove_klipper_logs
):
error = f"{COLOR_RED}Nothing selected! Select options to remove first.{RESET_FORMAT}"
print(error)
@@ -108,10 +110,21 @@ class KlipperRemoveMenu(BaseMenu):
self.remove_klipper_service,
self.remove_klipper_dir,
self.remove_klipper_env,
self.delete_klipper_logs,
self.remove_klipper_logs,
)
self.remove_klipper_service = False
self.remove_klipper_dir = False
self.remove_klipper_env = False
self.delete_klipper_logs = False
self.remove_klipper_logs = False
self._go_back()
def _get_selection_state_str(self) -> str:
return (
"Select everything" if not self.selection_state else "Deselect everything"
)
def _go_back(self, **kwargs) -> None:
if self.previous_menu is not None:
self.previous_menu().run()

View File

@@ -25,7 +25,8 @@ class MoonrakerRemoveMenu(BaseMenu):
self.remove_moonraker_dir = False
self.remove_moonraker_env = False
self.remove_moonraker_polkit = False
self.delete_moonraker_logs = False
self.remove_moonraker_logs = False
self.selection_state = False
def set_previous_menu(self, previous_menu: Optional[Type[BaseMenu]]) -> None:
from core.menus.remove_menu import RemoveMenu
@@ -36,7 +37,7 @@ class MoonrakerRemoveMenu(BaseMenu):
def set_options(self) -> None:
self.options = {
"0": Option(method=self.toggle_all, menu=False),
"a": Option(method=self.toggle_all, menu=False),
"1": Option(method=self.toggle_remove_moonraker_service, menu=False),
"2": Option(method=self.toggle_remove_moonraker_dir, menu=False),
"3": Option(method=self.toggle_remove_moonraker_env, menu=False),
@@ -55,7 +56,7 @@ class MoonrakerRemoveMenu(BaseMenu):
o2 = checked if self.remove_moonraker_dir else unchecked
o3 = checked if self.remove_moonraker_env else unchecked
o4 = checked if self.remove_moonraker_polkit else unchecked
o5 = checked if self.delete_moonraker_logs else unchecked
o5 = checked if self.remove_moonraker_logs else unchecked
menu = textwrap.dedent(
f"""
╔═══════════════════════════════════════════════════════╗
@@ -64,7 +65,7 @@ class MoonrakerRemoveMenu(BaseMenu):
║ Enter a number and hit enter to select / deselect ║
║ the specific option for removal. ║
╟───────────────────────────────────────────────────────╢
0) Select everything
a) {self._get_selection_state_str():37}
╟───────────────────────────────────────────────────────╢
║ 1) {o1} Remove Service ║
║ 2) {o2} Remove Local Repository ║
@@ -79,11 +80,12 @@ class MoonrakerRemoveMenu(BaseMenu):
print(menu, end="")
def toggle_all(self, **kwargs) -> None:
self.remove_moonraker_service = True
self.remove_moonraker_dir = True
self.remove_moonraker_env = True
self.remove_moonraker_polkit = True
self.delete_moonraker_logs = True
self.remove_moonraker_service = not self.remove_moonraker_service
self.remove_moonraker_dir = not self.remove_moonraker_dir
self.remove_moonraker_env = not self.remove_moonraker_env
self.remove_moonraker_polkit = not self.remove_moonraker_polkit
self.remove_moonraker_logs = not self.remove_moonraker_logs
self.selection_state = not self.selection_state
def toggle_remove_moonraker_service(self, **kwargs) -> None:
self.remove_moonraker_service = not self.remove_moonraker_service
@@ -98,7 +100,7 @@ class MoonrakerRemoveMenu(BaseMenu):
self.remove_moonraker_polkit = not self.remove_moonraker_polkit
def toggle_delete_moonraker_logs(self, **kwargs) -> None:
self.delete_moonraker_logs = not self.delete_moonraker_logs
self.remove_moonraker_logs = not self.remove_moonraker_logs
def run_removal_process(self, **kwargs) -> None:
if (
@@ -106,7 +108,7 @@ class MoonrakerRemoveMenu(BaseMenu):
and not self.remove_moonraker_dir
and not self.remove_moonraker_env
and not self.remove_moonraker_polkit
and not self.delete_moonraker_logs
and not self.remove_moonraker_logs
):
error = f"{COLOR_RED}Nothing selected! Select options to remove first.{RESET_FORMAT}"
print(error)
@@ -117,11 +119,22 @@ class MoonrakerRemoveMenu(BaseMenu):
self.remove_moonraker_dir,
self.remove_moonraker_env,
self.remove_moonraker_polkit,
self.delete_moonraker_logs,
self.remove_moonraker_logs,
)
self.remove_moonraker_service = False
self.remove_moonraker_dir = False
self.remove_moonraker_env = False
self.remove_moonraker_polkit = False
self.delete_moonraker_logs = False
self.remove_moonraker_logs = False
self._go_back()
def _get_selection_state_str(self) -> str:
return (
"Select everything" if not self.selection_state else "Deselect everything"
)
def _go_back(self, **kwargs) -> None:
if self.previous_menu is not None:
self.previous_menu().run()

View File

@@ -32,8 +32,8 @@ from utils.logger import Logger
def run_client_removal(
client: BaseWebClient,
rm_client: bool,
rm_client_config: bool,
remove_client: bool,
remove_client_cfg: bool,
backup_ms_config_json: bool,
) -> None:
mr_im = InstanceManager(Moonraker)
@@ -44,7 +44,7 @@ def run_client_removal(
if backup_ms_config_json and client.client == WebClientType.MAINSAIL:
backup_mainsail_config_json()
if rm_client:
if remove_client:
client_name = client.name
remove_client_dir(client)
remove_nginx_config(client_name)
@@ -53,7 +53,7 @@ def run_client_removal(
section = f"update_manager {client_name}"
remove_config_section(section, mr_instances)
if rm_client_config:
if remove_client_cfg:
run_client_config_removal(
client.client_config,
kl_instances,

View File

@@ -25,9 +25,10 @@ class ClientRemoveMenu(BaseMenu):
super().__init__()
self.previous_menu = previous_menu
self.client = client
self.rm_client = False
self.rm_client_config = False
self.remove_client = False
self.remove_client_cfg = False
self.backup_mainsail_config_json = False
self.selection_state = False
def set_previous_menu(self, previous_menu: Optional[Type[BaseMenu]]) -> None:
from core.menus.remove_menu import RemoveMenu
@@ -38,7 +39,7 @@ class ClientRemoveMenu(BaseMenu):
def set_options(self) -> None:
self.options = {
"0": Option(method=self.toggle_all, menu=False),
"a": Option(method=self.toggle_all, menu=False),
"1": Option(method=self.toggle_rm_client, menu=False),
"2": Option(method=self.toggle_rm_client_config, menu=False),
"c": Option(method=self.run_removal_process, menu=False),
@@ -56,8 +57,8 @@ class ClientRemoveMenu(BaseMenu):
count = 62 - len(color) - len(RESET_FORMAT)
checked = f"[{COLOR_CYAN}x{RESET_FORMAT}]"
unchecked = "[ ]"
o1 = checked if self.rm_client else unchecked
o2 = checked if self.rm_client_config else unchecked
o1 = checked if self.remove_client else unchecked
o2 = checked if self.remove_client_cfg else unchecked
menu = textwrap.dedent(
f"""
╔═══════════════════════════════════════════════════════╗
@@ -66,7 +67,7 @@ class ClientRemoveMenu(BaseMenu):
║ Enter a number and hit enter to select / deselect ║
║ the specific option for removal. ║
╟───────────────────────────────────────────────────────╢
0) Select everything
a) {self._get_selection_state_str():37}
╟───────────────────────────────────────────────────────╢
║ 1) {o1} Remove {client_name:16}
║ 2) {o2} Remove {client_config_name:24}
@@ -91,23 +92,24 @@ class ClientRemoveMenu(BaseMenu):
print(menu, end="")
def toggle_all(self, **kwargs) -> None:
self.rm_client = True
self.rm_client_config = True
self.backup_mainsail_config_json = True
self.remove_client = not self.remove_client
self.remove_client_cfg = not self.remove_client_cfg
self.backup_mainsail_config_json = not self.backup_mainsail_config_json
self.selection_state = not self.selection_state
def toggle_rm_client(self, **kwargs) -> None:
self.rm_client = not self.rm_client
self.remove_client = not self.remove_client
def toggle_rm_client_config(self, **kwargs) -> None:
self.rm_client_config = not self.rm_client_config
self.remove_client_cfg = not self.remove_client_cfg
def toggle_backup_mainsail_config_json(self, **kwargs) -> None:
self.backup_mainsail_config_json = not self.backup_mainsail_config_json
def run_removal_process(self, **kwargs) -> None:
if (
not self.rm_client
and not self.rm_client_config
not self.remove_client
and not self.remove_client_cfg
and not self.backup_mainsail_config_json
):
error = f"{COLOR_RED}Nothing selected ...{RESET_FORMAT}"
@@ -116,11 +118,22 @@ class ClientRemoveMenu(BaseMenu):
client_remove.run_client_removal(
client=self.client,
rm_client=self.rm_client,
rm_client_config=self.rm_client_config,
remove_client=self.remove_client,
remove_client_cfg=self.remove_client_cfg,
backup_ms_config_json=self.backup_mainsail_config_json,
)
self.rm_client = False
self.rm_client_config = False
self.remove_client = False
self.remove_client_cfg = False
self.backup_mainsail_config_json = False
self._go_back()
def _get_selection_state_str(self) -> str:
return (
"Select everything" if not self.selection_state else "Deselect everything"
)
def _go_back(self, **kwargs) -> None:
if self.previous_menu is not None:
self.previous_menu().run()