Compare commits

...

1 Commits

Author SHA1 Message Date
dw-0
f225ed028d refactor: add completion-message to webclient installer
Signed-off-by: Dominik Willner <th33xitus@gmail.com>
2024-12-20 20:45:14 +01:00
3 changed files with 32 additions and 30 deletions

View File

@@ -37,6 +37,7 @@ from components.webui_client.client_utils import (
) )
from core.instance_manager.instance_manager import InstanceManager from core.instance_manager.instance_manager import InstanceManager
from core.logger import DialogType, Logger from core.logger import DialogType, Logger
from core.services.message_service import Message
from core.settings.kiauh_settings import KiauhSettings from core.settings.kiauh_settings import KiauhSettings
from core.types.color import Color from core.types.color import Color
from utils.common import backup_printer_config_dir, check_install_dependencies from utils.common import backup_printer_config_dir, check_install_dependencies
@@ -55,14 +56,21 @@ def install_client(
client: BaseWebClient, client: BaseWebClient,
settings: KiauhSettings, settings: KiauhSettings,
reinstall: bool = False, reinstall: bool = False,
) -> None: ) -> Message:
completion_msg = Message(
title=f"{client.display_name} Installation Process completed",
color=Color.GREEN,
)
mr_instances: List[Moonraker] = get_instances(Moonraker) mr_instances: List[Moonraker] = get_instances(Moonraker)
enable_remotemode = False enable_remotemode = False
if not mr_instances: if not mr_instances:
print_moonraker_not_found_dialog(client.display_name) print_moonraker_not_found_dialog(client.display_name)
if not get_confirm(f"Continue {client.display_name} installation?"): if not get_confirm(f"Continue {client.display_name} installation?"):
return completion_msg.color = Color.YELLOW
completion_msg.title = f"{client.display_name} Installation Process aborted"
completion_msg.text.append("Installation was aborted by the user!")
return completion_msg
# if moonraker is not installed or multiple instances # if moonraker is not installed or multiple instances
# are installed we enable mainsails remote mode # are installed we enable mainsails remote mode
@@ -90,9 +98,9 @@ def install_client(
default_port if reinstall else get_client_port_selection(client, settings) default_port if reinstall else get_client_port_selection(client, settings)
) )
check_install_dependencies({"nginx"})
try: try:
check_install_dependencies({"nginx"})
download_client(client) download_client(client)
if enable_remotemode and client.client == WebClientType.MAINSAIL: if enable_remotemode and client.client == WebClientType.MAINSAIL:
enable_mainsail_remotemode() enable_mainsail_remotemode()
@@ -130,23 +138,17 @@ def install_client(
except Exception as e: except Exception as e:
Logger.print_error(e) Logger.print_error(e)
Logger.print_dialog( completion_msg.color = Color.RED
DialogType.ERROR, completion_msg.title = f"{client.display_name} Installation Process failed!"
center_content=True, completion_msg.text.append(
content=[f"{client.display_name} installation failed!"], f"An unexpected error occured. Please see the output above. {client.display_name} installation failed!")
) return completion_msg
return
# noinspection HttpUrlsUsage # noinspection HttpUrlsUsage
Logger.print_dialog( completion_msg.text.append(
DialogType.CUSTOM, f"Open {client.display_name} now on: http://{get_ipv4_addr()}:{port}")
custom_title=f"{client.display_name} installation complete!",
custom_color=Color.GREEN, return completion_msg
center_content=True,
content=[
f"Open {client.display_name} now on: http://{get_ipv4_addr()}:{port}",
],
)
def download_client(client: BaseWebClient) -> None: def download_client(client: BaseWebClient) -> None:

View File

@@ -65,7 +65,8 @@ class ClientInstallMenu(BaseMenu):
print(menu, end="") print(menu, end="")
def reinstall_client(self, **kwargs) -> None: def reinstall_client(self, **kwargs) -> None:
install_client(self.client, settings=self.settings, reinstall=True) completion_msg = install_client(self.client, settings=self.settings, reinstall=True)
self.message_service.set_message(completion_msg)
def change_listen_port(self, **kwargs) -> None: def change_listen_port(self, **kwargs) -> None:
curr_port = self._get_current_port() curr_port = self._get_current_port()

View File

@@ -81,21 +81,13 @@ class InstallMenu(BaseMenu):
moonraker_setup.install_moonraker() moonraker_setup.install_moonraker()
def install_mainsail(self, **kwargs) -> None: def install_mainsail(self, **kwargs) -> None:
client: MainsailData = MainsailData() self._install_client(MainsailData())
if client.client_dir.exists():
ClientInstallMenu(client, self.__class__).run()
else:
install_client(client, settings=KiauhSettings())
def install_mainsail_config(self, **kwargs) -> None: def install_mainsail_config(self, **kwargs) -> None:
install_client_config(MainsailData()) install_client_config(MainsailData())
def install_fluidd(self, **kwargs) -> None: def install_fluidd(self, **kwargs) -> None:
client: FluiddData = FluiddData() self._install_client(FluiddData())
if client.client_dir.exists():
ClientInstallMenu(client, self.__class__).run()
else:
install_client(client, settings=KiauhSettings())
def install_fluidd_config(self, **kwargs) -> None: def install_fluidd_config(self, **kwargs) -> None:
install_client_config(FluiddData()) install_client_config(FluiddData())
@@ -105,3 +97,10 @@ class InstallMenu(BaseMenu):
def install_crowsnest(self, **kwargs) -> None: def install_crowsnest(self, **kwargs) -> None:
install_crowsnest() install_crowsnest()
def _install_client(self, client: MainsailData | FluiddData) -> None:
if client.client_dir.exists():
ClientInstallMenu(client, self.__class__).run()
else:
completion_msg = install_client(client, settings=KiauhSettings())
self.message_service.set_message(completion_msg)