From eebf68a37603d6a923f5101db335c9e5f565b581 Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Sun, 21 Apr 2024 11:26:16 -0400 Subject: [PATCH] Front end loading of backup edit page --- .../controllers/management_controller.py | 8 +- app/classes/models/management.py | 4 +- app/classes/web/panel_handler.py | 65 +++++ .../templates/panel/server_backup.html | 14 +- .../templates/panel/server_backup_edit.html | 263 ++++++------------ 5 files changed, 161 insertions(+), 193 deletions(-) diff --git a/app/classes/controllers/management_controller.py b/app/classes/controllers/management_controller.py index 42df3e11..7fea8a34 100644 --- a/app/classes/controllers/management_controller.py +++ b/app/classes/controllers/management_controller.py @@ -178,8 +178,8 @@ class ManagementController: # Backups Methods # ********************************************************************************** @staticmethod - def get_backup_config(server_id): - return HelpersManagement.get_backup_config(server_id) + def get_backup_config(backup_id): + return HelpersManagement.get_backup_config(backup_id) @staticmethod def get_backups_by_server(server_id, model=False): @@ -212,8 +212,8 @@ class ManagementController: ) @staticmethod - def get_excluded_backup_dirs(server_id: int): - return HelpersManagement.get_excluded_backup_dirs(server_id) + def get_excluded_backup_dirs(backup_id: int): + return HelpersManagement.get_excluded_backup_dirs(backup_id) def add_excluded_backup_dir(self, server_id: int, dir_to_add: str): self.management_helper.add_excluded_backup_dir(server_id, dir_to_add) diff --git a/app/classes/models/management.py b/app/classes/models/management.py index 5a3df8b1..dc754c72 100644 --- a/app/classes/models/management.py +++ b/app/classes/models/management.py @@ -455,7 +455,7 @@ class HelpersManagement: dir_list = [] return dir_list - def add_excluded_backup_dir(self, server_id: int, dir_to_add: str): + def add_excluded_backup_dir(self, server_id: str, dir_to_add: str): dir_list = self.get_excluded_backup_dirs(server_id) if dir_to_add not in dir_list: dir_list.append(dir_to_add) @@ -467,7 +467,7 @@ class HelpersManagement: f"already in the excluded directory list for server ID {server_id}" ) - def del_excluded_backup_dir(self, server_id: int, dir_to_del: str): + def del_excluded_backup_dir(self, server_id: str, dir_to_del: str): dir_list = self.get_excluded_backup_dirs(server_id) if dir_to_del in dir_list: dir_list.remove(dir_to_del) diff --git a/app/classes/web/panel_handler.py b/app/classes/web/panel_handler.py index 514ea494..ac5a8b41 100644 --- a/app/classes/web/panel_handler.py +++ b/app/classes/web/panel_handler.py @@ -1243,7 +1243,66 @@ class PanelHandler(BaseHandler): template = "panel/server_schedule_edit.html" elif page == "edit_backup": + server_id = self.get_argument("id", None) + backup_id = self.get_argument("backup_id", None) + page_data["active_link"] = "backups" + page_data["permissions"] = { + "Commands": EnumPermissionsServer.COMMANDS, + "Terminal": EnumPermissionsServer.TERMINAL, + "Logs": EnumPermissionsServer.LOGS, + "Schedule": EnumPermissionsServer.SCHEDULE, + "Backup": EnumPermissionsServer.BACKUP, + "Files": EnumPermissionsServer.FILES, + "Config": EnumPermissionsServer.CONFIG, + "Players": EnumPermissionsServer.PLAYERS, + } + if not self.failed_server: + server_obj = self.controller.servers.get_server_instance_by_id( + server_id + ) + page_data["backup_failed"] = server_obj.last_backup_status() + page_data["user_permissions"] = ( + self.controller.server_perms.get_user_id_permissions_list( + exec_user["user_id"], server_id + ) + ) + server_info = self.controller.servers.get_server_data_by_id(server_id) + page_data["backup_config"] = self.controller.management.get_backup_config( + backup_id + ) + page_data["backups"] = self.controller.management.get_backups_by_server( + server_id, model=True + ) exclusions = [] + page_data["backing_up"] = self.controller.servers.get_server_instance_by_id( + server_id + ).is_backingup + page_data["backup_stats"] = ( + self.controller.servers.get_server_instance_by_id( + server_id + ).send_backup_status() + ) + self.controller.servers.refresh_server_settings(server_id) + try: + page_data["backup_list"] = server.list_backups() + except: + page_data["backup_list"] = [] + page_data["backup_path"] = Helpers.wtol_path( + page_data["backup_config"]["backup_location"] + ) + page_data["server_data"] = self.controller.servers.get_server_data_by_id( + server_id + ) + page_data["server_stats"] = self.controller.servers.get_server_stats_by_id( + server_id + ) + page_data["server_stats"]["server_type"] = ( + self.controller.servers.get_server_type_by_id(server_id) + ) + page_data["exclusions"] = ( + self.controller.management.get_excluded_backup_dirs(backup_id) + ) + # Make exclusion paths relative for page for file in page_data["exclusions"]: if Helpers.is_os_windows(): exclusions.append(file.replace(server_info["path"] + "\\", "")) @@ -1251,6 +1310,12 @@ class PanelHandler(BaseHandler): exclusions.append(file.replace(server_info["path"] + "/", "")) page_data["exclusions"] = exclusions + if not EnumPermissionsServer.BACKUP in page_data["user_permissions"]: + if not superuser: + self.redirect("/panel/error?error=Unauthorized access To Schedules") + return + template = "panel/server_backup_edit.html" + elif page == "edit_user": user_id = self.get_argument("id", None) role_servers = self.controller.servers.get_authorized_servers(user_id) diff --git a/app/frontend/templates/panel/server_backup.html b/app/frontend/templates/panel/server_backup.html index 6a8098c4..c5c0cdaf 100644 --- a/app/frontend/templates/panel/server_backup.html +++ b/app/frontend/templates/panel/server_backup.html @@ -85,7 +85,8 @@ - - diff --git a/app/frontend/templates/panel/server_backup_edit.html b/app/frontend/templates/panel/server_backup_edit.html index 0ffba3c4..c68d521f 100644 --- a/app/frontend/templates/panel/server_backup_edit.html +++ b/app/frontend/templates/panel/server_backup_edit.html @@ -39,111 +39,6 @@ {% include "parts/m_server_controls_list.html %} -
-
-
-
-

{{ translate('serverBackups', 'backups', data['lang']) }}

- {% if data['user_data']['hints'] %} - - {% end %} - -
-
- {% if len(data['backups']) == 0 %} -
- {{ translate('serverBackups', 'no-backup', data['lang']) }} {{ translate('serverBackups', 'newBackup',data['lang']) }}. -
- {% end %} - {% if len(data['backups']) > 0 %} -
- - - - - - - - - - - - {% for backup in data['backups'] %} - - - - - - - - {% end %} - -
{{ translate('serverBackups', 'enabled', data['lang']) }}{{ translate('serverBackups', 'name', data['lang']) }} {{ translate('serverBackups', 'storageLocation', data['lang']) }}{{ translate('serverBackups', 'maxBackups', data['lang']) }}{{ translate('serverBackups', 'actions', data['lang']) }}
- - -

{{backup.backup_name}}

-
-

{{backup.backup_location}}

-
-

{{backup.max_backups}}

-
- - - -
-
-
- - - - - - - - - - {% for backup in data['backups'] %} - - - - - - {% end %} - -
{{ translate('serverBackups', 'enabled', - data['lang']) }}Name - {{ translate('serverBackups', 'edit', data['lang']) - }}
- - -

{{backup.backup_name}}

-
- - - -
-
- {% end %} -
-
-
-

@@ -173,7 +68,7 @@ class="text-muted ml-1"> - {{ translate('serverBackups', 'storageLocationDesc', data['lang']) }} {% end %}
@@ -272,8 +167,10 @@
@@ -309,7 +206,7 @@

-