diff --git a/app/classes/shared/controller.py b/app/classes/shared/controller.py index 1370ec06..8e72f36a 100644 --- a/app/classes/shared/controller.py +++ b/app/classes/shared/controller.py @@ -88,9 +88,11 @@ class Controller: if s['auto_start']: db_helper.set_waiting_start(s['server_id'], True) + + db_helper.get_waiting_start(s['server_id']) - server_stats = db_helper.get_server_stats_by_id(s['server_id']) - print(server_stats['waiting_start']) + server_stats = db_helper.get_all_servers_stats() + self.refresh_server_settings(s['server_id']) console.info("Loaded Server: ID {} | Name: {} | Autostart: {} | Delay: {} ".format( s['server_id'], diff --git a/app/classes/shared/models.py b/app/classes/shared/models.py index 92e70348..fda5536b 100644 --- a/app/classes/shared/models.py +++ b/app/classes/shared/models.py @@ -469,6 +469,11 @@ class db_shortcuts: with database.atomic(): Server_Stats.update(waiting_start=value).where(Server_Stats.server_id == server_id).execute() + @staticmethod + def get_waiting_start(server_id): + waiting_start = Server_Stats.select().where(Server_Stats.server_id == server_id).get() + return waiting_start.waiting_start + @staticmethod def get_TTL_without_player(server_id): last_stat = Server_Stats.select().where(Server_Stats.server_id == server_id).order_by(Server_Stats.created.desc()).first() diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index 9ac44473..36fe5852 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -195,7 +195,6 @@ class Server: if helper.check_internet(): loc_server_port = db_helper.get_server_stats_by_id(self.server_id)['server_port'] if helper.check_port(loc_server_port): - db_helper.set_waiting_start(self.server_id, False) websocket_helper.broadcast('send_start_reload', { }) else: @@ -207,7 +206,7 @@ class Server: 'error': translation.translate('error', 'internet') }) - + db_helper.set_waiting_start(self.server_id, False) self.process = pexpect.spawn(self.server_command, cwd=self.server_path, timeout=None, encoding='utf-8') out_buf = ServerOutBuf(self.process, self.server_id) diff --git a/app/classes/web/panel_handler.py b/app/classes/web/panel_handler.py index 19108c48..5a686e04 100644 --- a/app/classes/web/panel_handler.py +++ b/app/classes/web/panel_handler.py @@ -123,6 +123,8 @@ class PanelHandler(BaseHandler): elif page == 'dashboard': if exec_user['superuser'] == 1: page_data['servers'] = db_helper.get_all_servers_stats() + for data in page_data['servers']: + data['stats']['waiting_start'] = db_helper.get_waiting_start(int(data['stats']['server_id']['server_id'])) else: user_auth = db_helper.get_authorized_servers_stats(exec_user_id) logger.debug("ASFR: {}".format(user_auth)) @@ -172,6 +174,7 @@ class PanelHandler(BaseHandler): # server_data isn't needed since the server_stats also pulls server data page_data['server_data'] = db_helper.get_server_data_by_id(server_id) page_data['server_stats'] = db_helper.get_server_stats_by_id(server_id) + page_data['waiting_start'] = db_helper.get_waiting_start(server_id) page_data['get_players'] = lambda: self.controller.stats.get_server_players(server_id) page_data['active_link'] = subpage page_data['permissions'] = { diff --git a/app/frontend/templates/panel/dashboard.html b/app/frontend/templates/panel/dashboard.html index c4e1808e..71e1b74c 100644 --- a/app/frontend/templates/panel/dashboard.html +++ b/app/frontend/templates/panel/dashboard.html @@ -132,7 +132,7 @@ {% elif server['stats']['updating']%} {{ translate('serverTerm', 'updating') }} {% elif server['stats']['waiting_start']%} - {{ translate('serverTerm', 'starting') }} + {{ translate('dashboard', 'starting') }} {% else %} diff --git a/app/frontend/templates/panel/server_term.html b/app/frontend/templates/panel/server_term.html index 0b660a29..93980d04 100644 --- a/app/frontend/templates/panel/server_term.html +++ b/app/frontend/templates/panel/server_term.html @@ -54,6 +54,12 @@ + {% elif data['waiting_start'] %} +
{% else %}