From b1b04e536e2f80371775f49ade9e6eec6f7c9d4d Mon Sep 17 00:00:00 2001 From: amcmanu3 Date: Tue, 21 Jun 2022 23:18:17 -0400 Subject: [PATCH 01/18] Fix cannot delete backup on page 2 --- app/frontend/templates/panel/server_backup.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/frontend/templates/panel/server_backup.html b/app/frontend/templates/panel/server_backup.html index d71e0f68..d97c2d14 100644 --- a/app/frontend/templates/panel/server_backup.html +++ b/app/frontend/templates/panel/server_backup.html @@ -375,7 +375,7 @@ $('#backup_table').DataTable({ "order": [[1, "desc"]], - "paging": true, + "paging": false, "lengthChange": false, "searching": true, "ordering": true, From b35968539281617908a0b244ad1a0febeebbbf6d Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 22 Jun 2022 14:51:10 -0400 Subject: [PATCH 02/18] Add clone server confirmation. --- app/frontend/templates/panel/dashboard.html | 40 ++++++++++++++++----- app/translations/en_EN.json | 1 + 2 files changed, 32 insertions(+), 9 deletions(-) diff --git a/app/frontend/templates/panel/dashboard.html b/app/frontend/templates/panel/dashboard.html index b6eb09a2..5b1d74f6 100644 --- a/app/frontend/templates/panel/dashboard.html +++ b/app/frontend/templates/panel/dashboard.html @@ -849,19 +849,41 @@ $(".clone_button").click(function () { server_id = $(this).attr("data-id"); - send_command(server_id, 'clone_server'); - bootbox.dialog({ - backdrop: true, - title: '{% raw translate("dashboard", "sendingCommand", data["lang"]) %}', - message: '
  {% raw translate("dashboard", "bePatientClone", data["lang"]) %}
', - closeButton: false, + bootbox.confirm({ + message: "{{ translate('dashboard', 'cloneConfirm' , data['lang']) }}", + buttons: { + confirm: { + label: "{{ translate('dashboard', 'clone' , data['lang']) }}", + className: 'btn-outline-warning' + }, + cancel: { + label: '{% raw translate("panelConfig", "cancel", data["lang"]) %}', + className: 'btn-secondary' + } + }, + callback: function (result) { + if (result) { + cloneServer(server_id); + } + + } }); - setTimeout(function () { - location.reload(); - }, 5000) }); }); + + function cloneServer(server_id) { + send_command(server_id, 'clone_server'); + bootbox.dialog({ + backdrop: true, + title: '{% raw translate("dashboard", "sendingCommand", data["lang"]) %}', + message: '
  {% raw translate("dashboard", "bePatientClone", data["lang"]) %}
', + closeButton: false, + }); + setTimeout(function () { + location.reload(); + }, 5000) + } diff --git a/app/translations/en_EN.json b/app/translations/en_EN.json index dcaca2a8..4ac03483 100644 --- a/app/translations/en_EN.json +++ b/app/translations/en_EN.json @@ -66,6 +66,7 @@ "cannotSeeOnMobile": "Not seeing everything on mobile?", "cannotSeeOnMobile2": "Try scrolling the table sideways.", "clone": "Clone", + "cloneConfirm": "Are you sure you would like to clone this server? This process may take a while.", "cpuCores": "CPU Cores", "cpuCurFreq": "CPU Current Clock", "cpuMaxFreq": "CPU Maximum Clock", From b3993d1072d5c20a437f1c61d2bba67e9d655c46 Mon Sep 17 00:00:00 2001 From: Silversthorn Date: Wed, 22 Jun 2022 21:36:05 +0200 Subject: [PATCH 03/18] First try to add a better display for Status Page --- app/frontend/templates/panel/dashboard.html | 86 +++---- app/frontend/templates/public/status.html | 238 ++++++++++++++------ app/frontend/templates/public_base.html | 12 +- 3 files changed, 212 insertions(+), 124 deletions(-) diff --git a/app/frontend/templates/panel/dashboard.html b/app/frontend/templates/panel/dashboard.html index b6eb09a2..bd71128f 100644 --- a/app/frontend/templates/panel/dashboard.html +++ b/app/frontend/templates/panel/dashboard.html @@ -60,12 +60,12 @@

+ title="{% raw translate('dashboard', 'cpuCores', data['lang']) %}: {{ data.get('hosts_data').get('cpu_cores') }}
{% raw translate('dashboard', 'cpuCurFreq', data['lang']) %}: {{ data.get('hosts_data').get('cpu_cur_freq') }}
{% raw translate('dashboard', 'cpuMaxFreq', data['lang']) %}: {{ data.get('hosts_data').get('cpu_max_freq') }}"> {{ translate('dashboard', 'cpuUsage', data['lang']) }}: {{ data.get('hosts_data').get('cpu_usage') }}

+ title="{{ translate('dashboard', 'memUsage', data['lang']) }}: {{ data.get('hosts_data').get('mem_usage') }}"> {{ translate('dashboard', 'memUsage', data['lang']) }}: {{ data.get('hosts_data').get('mem_percent') }}%

@@ -116,8 +116,8 @@ {% if len(data['servers']) > 0 %} {% if data['user_data']['hints'] %} + data-content="{{ translate('dashboard', 'cannotSeeOnMobile2', data['lang']) }}" , + data-placement="top"> {% end %} {% end %}
  {{ @@ -156,7 +156,7 @@ {% if server['alert'] %} + href="/panel/server_detail?id={{server['server_data']['server_id']}}"> {{ server['server_data']['server_name'] }}  {% else %} @@ -170,17 +170,17 @@ {% if server['user_command_permission'] %} {% if server['stats']['running'] %} + title="{{ translate('dashboard', 'stop' , data['lang']) }}">   + title="{{ translate('dashboard', 'restart' , data['lang']) }}">   + title="{{ translate('dashboard', 'kill' , data['lang']) }}">   @@ -199,15 +199,15 @@ data['lang']) }} {% else %} + title="{{ translate('dashboard', 'start' , data['lang']) }}">   + title="{{ translate('dashboard', 'clone' , data['lang']) }}">   + title="{{ translate('dashboard', 'kill' , data['lang']) }}">   {% end %} @@ -216,7 +216,7 @@
+ title="{{server['stats']['cpu']}}">
+ aria-valuemin="0" aria-valuemax="100">
{{server['stats']['cpu']}}%
+ title="{{server['stats']['mem']}}">
+ aria-valuemin="0" aria-valuemax="100">
{{server['stats']['mem_percent']}}% - @@ -263,7 +263,7 @@ {% if server['stats']['desc'] != 'False' %}
{{ + style="overflow-wrap: break-word !important; max-width: 85px !important; overflow: scroll;">{{ server['stats']['desc'] }}

{% end %} @@ -287,7 +287,7 @@ {% end %} + data-players="{{ server['stats']['online']}}" data-max="{{ server['stats']['max'] }}"> {% end %} @@ -295,7 +295,7 @@ {% end %} {% if len(data['servers']) > 0 %} - +
{% for server in data['servers'] %} @@ -306,27 +306,27 @@
+ class="btn btn-link d-flex justify-content-start" type="button"> {% if server['stats']['running'] %} {{ translate('dashboard', 'online', data['lang']) }} @@ -348,22 +348,22 @@
+ aria-labelledby="heading-{{server['server_data']['server_id']}}" data-parent="#accordionServers">
{{ translate('dashboard', 'cpuUsage', data['lang']) }}
+ title="{{server['stats']['cpu']}}">
+ aria-valuemax="100">
{{server['stats']['cpu']}}%
@@ -452,7 +452,7 @@
{{ translate('dashboard', 'memUsage', data['lang']) }}
+ title="{{server['stats']['mem']}}">
+ aria-valuemin="0" aria-valuemax="100">
{{server['stats']['mem_percent']}}% - @@ -492,7 +492,7 @@ {% if server['stats']['desc'] != 'False' %}
+ style="overflow-wrap: break-word !important; max-width: 85px !important; overflow: scroll;"> {{ server['stats']['desc'] }}

{% end %} diff --git a/app/frontend/templates/public/status.html b/app/frontend/templates/public/status.html index 2d445f66..399dca54 100644 --- a/app/frontend/templates/public/status.html +++ b/app/frontend/templates/public/status.html @@ -6,76 +6,153 @@ {% block title %}Crafty Controller - {{ translate('dashboard', 'dashboard', data['lang']) }}{% end %} {% block content %} - -
+ +
+ +
{% end %} {% block js %} @@ -90,17 +167,23 @@ } function update_one_server_status(server) { + /* Normal Screen view */ server_players = document.getElementById('server_players_' + server.id); server_motd = document.getElementById('server_motd_' + server.id); server_version = document.getElementById('server_version_' + server.id); server_online_status = document.getElementById('server_online_status_' + server.id); + /* Small Screen view */ + m_server_players = document.getElementById('m_server_players_' + server.id); + m_server_motd = document.getElementById('m_server_motd_' + server.id); + m_server_version = document.getElementById('m_server_version_' + server.id); + m_server_online_status = document.getElementById('m_server_online_status_' + server.id); /* TODO Update each element */ if (server.int_ping_results) { - document.getElementById('sync').innerHTML=''; + document.getElementById('sync').innerHTML = ''; + document.getElementById('m_sync').innerHTML = ''; /* Update Players */ - if (server.players) - { + if (server.players) { server_players.innerHTML = server.online + ` / ` + server.max + ` {{ translate('dashboard', 'max', data['lang']) }}
` } @@ -109,36 +192,44 @@ if (server.desc) { if (server.icon) { motd = `icon `; + m_motd = `icon `; } else { motd = `icon `; + m_motd = `icon `; } motd = motd + `` + server.desc + `
`; + m_motd = m_motd + `
` + server.desc + `
`; server_motd.innerHTML = motd; + m_server_motd.innerHTML = m_motd; } /* Version */ - if (server.version) - { - server_version.innerHTML = server.version + if (server.version) { + server_version.innerHTML = server.version; + m_server_version.innerHTML = server.version; } } else { server_players.innerHTML = ``; server_motd.innerHTML = `Crafty can't get infos from this Server `; - server_version.innerHTML = `` + server_version.innerHTML = ``; + m_server_motd.innerHTML = ` Crafty can't get infos from this Server `; } /* Update Online Status */ var online_status = ""; if (server.running) { online_status = ` {{ translate('dashboard', 'online', data['lang'])}}`; + m_online_status = `` + server.online + ` / ` + server.max + ``; } else { online_status = ` {{ translate('dashboard', 'offline', data['lang'])}}`; + m_online_status = ` {{ translate('dashboard', 'offline', data['lang'])}}`; } server_online_status.innerHTML = online_status; + m_server_online_status.innerHTML = m_online_status; } function update_servers_status(data) { @@ -150,11 +241,10 @@ $(document).ready(function () { console.log("ready!"); - if (webSocket) - { + if (webSocket) { webSocket.on('update_server_status', update_servers_status); } }()); -{% end %} +{% end %} \ No newline at end of file diff --git a/app/frontend/templates/public_base.html b/app/frontend/templates/public_base.html index 1254555d..5a6d9bdb 100644 --- a/app/frontend/templates/public_base.html +++ b/app/frontend/templates/public_base.html @@ -27,13 +27,11 @@
-
-
-
-
- {% block content %} - {% end %} -
+
+
+
+ {% block content %} + {% end %}
From 6328ef4a74e03653a67f517ca9862fd17c831ca8 Mon Sep 17 00:00:00 2001 From: Matze Date: Wed, 22 Jun 2022 22:54:57 +0200 Subject: [PATCH 04/18] reviewed the german translation, fixed some spelling issues and added some missing strings --- app/translations/de_DE.json | 86 ++++++++++++++++++++----------------- 1 file changed, 46 insertions(+), 40 deletions(-) diff --git a/app/translations/de_DE.json b/app/translations/de_DE.json index 4e38a823..97823685 100644 --- a/app/translations/de_DE.json +++ b/app/translations/de_DE.json @@ -67,8 +67,8 @@ "cannotSeeOnMobile2": "Versuchen Sie, die Tabelle seitlich zu verschieben.", "clone": "Klonen", "cpuCores": "CPU Kerne", - "cpuCurFreq": "Momentaner CPU-takt", - "cpuMaxFreq": "Maximaler CPU-takt", + "cpuCurFreq": "Momentaner CPU-Takt", + "cpuMaxFreq": "Maximaler CPU-Takt", "cpuUsage": "CPU-Nutzung", "crashed": "Abgestürzt", "dashboard": "Dashboard", @@ -90,7 +90,7 @@ "sendingCommand": "Übermittlung Ihres Befehls", "server": "Server", "servers": "Server", - "size": "Server-Verzeichniss Größe", + "size": "Serververzeichnis Größe", "start": "Starten", "starting": "Verzögerter Start", "status": "Status", @@ -101,8 +101,8 @@ "datatables": { "i18n": { "aria": { - "sortAscending": ": aktivieren, um die Spalte aufsteigend zu sortieren", - "sortDescending": ": aktivieren, um die Spalte absteigend zu sortieren" + "sortAscending": ": Aktivieren, um die Spalte aufsteigend zu sortieren", + "sortDescending": ": Aktivieren, um die Spalte absteigend zu sortieren" }, "buttons": { "collection": "Sammlung ", @@ -127,20 +127,20 @@ }, "decimal": "", "emptyTable": "Keine Daten in der Tabelle verfügbar", - "info": "Anzeige von _START_ to _END_ of _TOTAL_ Einträge", - "infoEmpty": "Zeigt 0 bis 0 von 0 Einträge", + "info": "Zeige _START_ bis _END_ von insges. _TOTAL_ Einträge(n)", + "infoEmpty": "Zeige 0 bis 0 von insges. 0 Einträgen", "infoFiltered": "(gefiltert von _MAX_ maximalen Einträgen)", "infoPostFix": "", "lengthMenu": "Zeige _MENU_ Einträge", "loadingRecords": "Laden...", "paginate": { - "first": "Erster", - "last": "Letzter", + "first": "Erste", + "last": "Letzte", "next": "Nächste", - "previous": "Vorheriger" + "previous": "Vorherige" }, "processing": "Verarbeiten...", - "search": "Suchen:", + "search": "Suche:", "select": { "cells": { "0": "Klicken Sie auf eine Zelle, um sie auszuwählen", @@ -176,7 +176,8 @@ "not-downloaded": "Crafty kann die auszuführende Datei nicht finden. Ist der Download abgeschlossen? Sind die Berechtigungen für Crafty korrekt?", "portReminder": "Wir haben festgestellt, dass dies das erste Mal ist, dass {} ausgeführt wurde. Stellen Sie sicher, dass Sie Port {} durch Ihren Router/Firewall weiterleiten, um den Fernzugriff aus dem Internet zu ermöglichen.", "start-error": "Der Server {} konnte wegen dem Fehlercode: {} nicht gestartet werden", - "terribleFailure": "Was für ein furchtbarer Fehler!" + "terribleFailure": "Was für ein furchtbarer Fehler!", + "fileTooLarge": "Hochladen fehlgeschlagen. Datei ist zu groß. Wenden Sie sich an Ihren Systemadministrator für weitere Unterstütung." }, "footer": { "allRightsReserved": "Alle Rechte vorbehalten", @@ -194,13 +195,13 @@ "backupComplete": "Backup für Server erfolgreich ausgeführt {}", "backupStarted": "Backup für Server gestartet {}", "downloadLogs": "Supportprotokolle herunterladen?", - "finishedPreparing": "Wir haben die Bereitstellung der Supportprotokolle abgeschlossen. Bitte klicke Herunterladen um diese Herunterzuladen", + "finishedPreparing": "Wir haben die Bereitstellung der Supportprotokolle abgeschlossen. Bitte klicke 'Herunterladen' um diese herunterzuladen", "logout": "Abmelden", "preparingLogs": " Bitte warten, während wir die Protokolle vorbereiten... Wir schicken eine Benachrichtigung, wenn sie fertig sind. Dies kann bei großen Projekten eine Weile dauern.", "supportLogs": "Supportprotokolle" }, "panelConfig": { - "adminControls": "Administrations Werkzeuge", + "adminControls": "Administrations-Werkzeuge", "allowedServers": "Erlaubte Server", "assignedRoles": "Zugewiesene Rollen", "cancel": "Abbrechen", @@ -213,31 +214,31 @@ "pageTitle": "Panel Konfiguration", "role": "Rolle", "roles": "Rollen", - "roleUsers": "Nutzerrollen", + "roleUsers": "Rollen-Benutzer", "save": "Speichern", - "superConfirm": "Nur fortfahren, wenn dieser Nutzer zugang zu ALLEM haben soll (alle Benutzerkonten, Server, Panel-Konfiguration etc.). Er kann allen Benutzern die Super-Benutzer-Rechte entziehen.", + "superConfirm": "Nur fortfahren, wenn dieser Nutzer Zugang zu ALLEM haben soll (alle Benutzerkonten, Server, Panel-Konfiguration etc.). Er kann allen Benutzern die Super-Benutzer-Rechte entziehen.", "superConfirmTitle": "Super-Benutzer Berechtigung erteilen? Sicher, dass diese Aktion ausgeführt werden soll?", "user": "Benutzer", "users": "Benutzer" }, "rolesConfig": { - "config": "Rollen Konfiguration", + "config": "Rollen-Konfiguration", "configDesc": "Hier kann die Konfiguration von Rollen bearbeitet werden", "configUpdate": "Zuletzt aktualisiert: ", "created": "Erstellt: ", "delRole": "Rolle löschen", - "doesNotExist": "Sie können nichts löschen, was noch nicht existiert!", + "doesNotExist": "Sie können nicht löschen, was noch nicht existiert!", "pageTitle": "Rolle bearbeiten", "pageTitleNew": "Neue Rolle", "permAccess": "Zugriff?", - "permName": "Berechtigungs Name", + "permName": "Berechtigungs-Name", "permsServer": "Berechtigungen, die diese Rolle für die angegebenen Server hat", - "roleConfigArea": "Rollenkonfigurationsbereich", + "roleConfigArea": "Rollen-Konfigurationsbereich", "roleDesc": "Wie soll diese Rolle genannt werden?", "roleName": "Name der Rolle: ", - "rolePerms": "Rollenberechtigungen", + "rolePerms": "Rollen-Berechtigungen", "roleServers": "Erlaubte Server", - "roleTitle": "Rollen Einstellungen", + "roleTitle": "Rollen-Einstellungen", "roleUserName": "Benutzername", "roleUsers": "Nutzer mit dieser Rolle: ", "serverAccess": "Zugriff?", @@ -253,7 +254,7 @@ "compress": "Backup komprimieren", "confirm": "Bestätigen", "confirmDelete": "Möchten Sie diese Backup-Datei löschen? Dies kann nicht rückgängig gemacht werden.", - "confirmRestore": "Sicher, dass diese Sicherung wiederherstellgestellt werden soll? Alle aktuellen Serverdateien werden in den Zustand der Sicherung versetzt und können nicht wiederhergestellt werden.", + "confirmRestore": "Sicher, dass dieses Backup wiederherstellgestellt werden soll? Alle aktuellen Serverdateien werden in den Zustand von diesem Backup versetzt und können nicht wiederhergestellt werden.", "currentBackups": "Aktuelle Backups", "delete": "Löschen", "destroyBackup": "Backup löschen \" + file_to_del + \"?", @@ -270,21 +271,22 @@ "save": "Speichern", "size": "Größe", "storageLocation": "Speicherort", - "storageLocationDesc": "Wo wollen Sie die Backups speichern?" + "storageLocationDesc": "Wo wollen Sie die Backups speichern?", + "shutdown": "Server für die Dauer des Backups stoppen" }, "serverConfig": { "bePatientDelete": "Bitte haben Sie etwas Geduld, während wir Ihren Server aus dem Crafty-Panel entfernen. Dieser Bildschirm wird in wenigen Augenblicken geschlossen.", "bePatientDeleteFiles": "Bitte haben Sie etwas Geduld, während wir Ihren Server aus dem Crafty-Panel entfernen und alle Dateien löschen. Dieser Bildschirm wird in wenigen Augenblicken geschlossen.", "bePatientUpdate": "Bitte haben Sie etwas Geduld, während wir den Server aktualisieren. Die Downloadzeiten können je nach Ihrer Internetgeschwindigkeit variieren.
Dieser Bildschirm wird sich in einem Moment aktualisieren", "cancel": "Abbrechen", - "crashTime": "Zeitüberschreitung bei Absturz", + "crashTime": "Zeitüberschreitung nach Absturz", "crashTimeDesc": "Wie lange soll Crafty warten, bevor Crafty den Server als abgestürzt betrachtet?", "deleteFilesQuestion": "Serverdateien vom Rechner löschen?", - "deleteFilesQuestionMessage": "Möchten Sie, dass Crafty alle Serverdateien auf dem Hostrechner löscht?", + "deleteFilesQuestionMessage": "Möchten Sie, dass Crafty alle Serverdateien auf dem Hostrechner löscht?

Das schließt die Server-Backups ein.", "deleteServer": "Server löschen", "deleteServerQuestion": "Server löschen?", "deleteServerQuestionMessage": "Sind Sie sicher, dass Sie diesen Server löschen wollen? Danach gibt es kein Zurück mehr...", - "exeUpdateURL": "Server Ausführbare Update URL", + "exeUpdateURL": "Ausführbare Server Update URL", "exeUpdateURLDesc": "Direkte Download-URL für Updates.", "noDelete": "Nein, zurück", "noDeleteFiles": "Nein, nur aus dem Panel entfernen", @@ -293,25 +295,28 @@ "save": "Speichern", "sendingDelete": "Lösche den Server", "sendingRequest": "Ihre Anfrage senden...", - "serverAutoStart": "Server Automatisch starten", + "serverAutoStart": "Server automatisch starten", "serverAutostartDelay": "Server Autostart-Verzögerung", "serverAutostartDelayDesc": "Verzögerung vor dem automatischen Start (falls unten aktiviert)", "serverCrashDetection": "Erkennung von Serverabstürzen", - "serverExecutable": "Server Ausführbare Datei", + "serverExecutable": "Ausführbare Server Datei", "serverExecutableDesc": "Die ausführbare Datei des Servers", + "javaVersion": "Aktuelle Java Version überschreiben", + "javaVersionDesc": "Wenn Sie die Java-Version überschreiben möchten: Stellen Sie sicher, dass der 'auszuführende Befehl' in Anführungszeichen geschrieben ist (Ohne abschließende 'Java'-Variable)", + "javaNoChange": "Nicht überschreiben", "serverExecutionCommand": "Server Ausführungsbefehl", - "serverExecutionCommandDesc": "Was wird in einem versteckten Terminal gestartet", + "serverExecutionCommandDesc": "Was wird in einer versteckten Konsole gestartet", "serverIP": "Server IP", "serverIPDesc": "Die IP, mit der sich Crafty für Statistiken verbinden soll (versuchen Sie eine echte IP anstelle von 127.0.0.1, wenn Sie Probleme haben)", "serverLogLocation": "Server Log Speicherort", - "serverLogLocationDesc": "Absoluter vollständiger Pfad zur Protokolldatei", + "serverLogLocationDesc": "Pfad zur Protokolldatei", "serverName": "Server Name", "serverNameDesc": "Wie möchten Sie diesen Server nennen", "serverPath": "Server-Arbeitsverzeichnis", "serverPathDesc": "Absoluter vollständiger Pfad (ohne die ausführbare Datei)", "serverPort": "Server Port", "serverPortDesc": "Der Port, mit dem sich Crafty für Statistiken verbinden soll", - "serverStopCommand": "Server Stop Befehl", + "serverStopCommand": "Server Stopp Befehl", "serverStopCommandDesc": "Befehl an das Programm, um es zu stoppen", "stopBeforeDeleting": "Bitte stoppen Sie den Server, bevor Sie ihn löschen", "update": "Server Datei aktualisieren", @@ -343,7 +348,7 @@ "playerControls": "Spieler-Management", "schedule": "Zeitplan", "serverDetails": "Server Details", - "terminal": "Terminal" + "terminal": "Konsole" }, "serverFiles": { "clickUpload": "Klicken Sie hier, um Ihre Dateien auszuwählen", @@ -367,12 +372,13 @@ "noscript": "Der Dateimanager funktioniert nicht ohne JavaScript", "rename": "Umbenennen", "renameItemQuestion": "Wie soll der neue Name lauten?", + "size": "Editorgröße umschalten", "save": "Speichern", "stayHere": "VERLASSEN SIE DIESE SEITE NICHT!", "unsupportedLanguage": "Warnung: Dies ist ein nicht unterstützter Dateityp", "unzip": "Entpacken", "upload": "Hochladen", - "uploadTitle": "Dateien hochladen in: ", + "uploadTitle": "Dateien hochladen nach: ", "waitUpload": "Bitte warten Sie, während wir Ihre Dateien hochladen... Dies kann eine Weile dauern.", "yesDelete": "Ja, ich verstehe die Konsequenzen" }, @@ -441,7 +447,7 @@ "sendCommand": "Befehl senden", "start": "Start", "starting": "Verzögertes Starten", - "stop": "Stop", + "stop": "Stopp", "stopScroll": "Automatisches Scrollen stoppen", "updating": "Aktualisierung..." }, @@ -452,7 +458,7 @@ "autoCreate": "Wenn keine ausgewählt werden, wird Crafty eine erstellen!", "bePatient": "Bitte haben Sie etwas Geduld, da wir ' + (importing ? 'import' : 'download')", "buildServer": "Server erstellen!", - "clickRoot": "Hier klicken, um das root Verzeichniss auszuwählen", + "clickRoot": "Hier klicken, um das Stammverzeichnis auszuwählen", "close": "Schließen", "defaultPort": "25565 (Standard)", "downloading": "Server herunterladen...", @@ -466,14 +472,14 @@ "myNewServer": "Mein neuer Server", "newServer": "Neuen Server erstellen", "quickSettings": "Schnelleinstellungen", - "quickSettingsDescription": "Keine Sorge, Änderungen können später immernoch vorgenommen werden.", + "quickSettingsDescription": "Keine Sorge, Änderungen können später immer noch vorgenommen werden.", "resetForm": "Konfiguration zurücksetzen", "save": "Speichern", "selectRole": "Rolle(n) auswählen", "selectRoot": "Archivstammverzeichnis auswählen", "selectType": "Typ auswählen", "selectVersion": "Version auswählen", - "selectZipDir": "Das Verzeichnis im Archiv wählen, aus dem die Dateien entpacken werden sollen", + "selectZipDir": "Das Verzeichnis im Archiv wählen, aus dem die Dateien entpackt werden sollen", "serverJar": "Server Java Datei", "serverName": "Server Name", "serverPath": "Server Pfad", @@ -513,13 +519,13 @@ "lastUpdate": "Letzte Aktualisierung: ", "leaveBlank": "Um den Benutzer zu bearbeiten, ohne das Passwort zu ändern, lassen Sie das Feld leer.", "member": "Mitglied?", - "notExist": "Sie können nichts löschen, was nicht existiert!", + "notExist": "Sie können nicht löschen, was nicht existiert!", "pageTitle": "Benutzer bearbeiten", "pageTitleNew": "Benutzer erstellen", "password": "Passwort", "permName": "Berechtigungsname", "repeat": "Passwort wiederholen", - "roleName": "Rollen Name", + "roleName": "Rollenname", "super": "Super Benutzer", "userLang": "Sprache des Benutzers", "userName": "Benutzername", From d3164c564eb1fb3948f8247f2095b5dda7f21e91 Mon Sep 17 00:00:00 2001 From: Matze Date: Wed, 22 Jun 2022 23:24:07 +0200 Subject: [PATCH 05/18] corrected a misunderstood translation in string "javaversionDesc" --- app/translations/de_DE.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/translations/de_DE.json b/app/translations/de_DE.json index 97823685..21c160e3 100644 --- a/app/translations/de_DE.json +++ b/app/translations/de_DE.json @@ -302,7 +302,7 @@ "serverExecutable": "Ausführbare Server Datei", "serverExecutableDesc": "Die ausführbare Datei des Servers", "javaVersion": "Aktuelle Java Version überschreiben", - "javaVersionDesc": "Wenn Sie die Java-Version überschreiben möchten: Stellen Sie sicher, dass der 'auszuführende Befehl' in Anführungszeichen geschrieben ist (Ohne abschließende 'Java'-Variable)", + "javaVersionDesc": "Wenn Sie die Java-Version überschreiben möchten: Stellen Sie sicher, dass der 'auszuführende Befehl' in Anführungszeichen geschrieben ist (Ausgenommen die Standard-'java'-Variable)", "javaNoChange": "Nicht überschreiben", "serverExecutionCommand": "Server Ausführungsbefehl", "serverExecutionCommandDesc": "Was wird in einer versteckten Konsole gestartet", From ae731654237c66dd800403522afa4d2ab57af9a5 Mon Sep 17 00:00:00 2001 From: Silversthorn Date: Thu, 23 Jun 2022 18:02:54 +0200 Subject: [PATCH 06/18] smaller Server icon --- app/frontend/templates/public/status.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/frontend/templates/public/status.html b/app/frontend/templates/public/status.html index 399dca54..ace58e59 100644 --- a/app/frontend/templates/public/status.html +++ b/app/frontend/templates/public/status.html @@ -126,7 +126,7 @@ {% if server['stats']['int_ping_results'] != 'False' %}
{% if server['stats']['desc'] != 'False' %} - icon + icon {% end %}
{% if server['stats']['desc'] != 'False' %} @@ -196,7 +196,7 @@ } else { motd = `icon `; - m_motd = `icon `; + m_motd = `icon `; } motd = motd + `` + server.desc + `
`; From db839252ac41cddb02f22b5172f17d91011d04cb Mon Sep 17 00:00:00 2001 From: Silversthorn Date: Thu, 23 Jun 2022 18:07:25 +0200 Subject: [PATCH 07/18] Better Display --- app/frontend/templates/public/status.html | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/frontend/templates/public/status.html b/app/frontend/templates/public/status.html index ace58e59..0a444158 100644 --- a/app/frontend/templates/public/status.html +++ b/app/frontend/templates/public/status.html @@ -117,12 +117,6 @@
-
- {% if server['stats']['version'] != 'False' %} - {{ server['stats']['version'] }} - {% end %} -
-
{% if server['stats']['int_ping_results'] != 'False' %}
{% if server['stats']['desc'] != 'False' %} @@ -137,6 +131,12 @@ {% end %}
+
+
+ {% if server['stats']['version'] != 'False' %} + {{ server['stats']['version'] }} + {% end %} +
{% else %}
From 8fab04878ac0f1d33112ff730aec7952441c77e2 Mon Sep 17 00:00:00 2001 From: Silversthorn Date: Thu, 23 Jun 2022 18:16:17 +0200 Subject: [PATCH 08/18] Update Changelog Status Page --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0aafa844..c3c28bd3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## --- [4.0.4] - 2022/06/21 +### New features + +### Bug fixes + +### Tweaks +- Rework server list on status page display for use on small screens ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/383)) +

+ ## --- [4.0.4-hotfix2] - 2022/06/21 ### Bug fixes - Fix Traceback on schedule config page ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/381)) From b4749f8cafa9085fd3ad1b73c0d6c7505e16b675 Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 23 Jun 2022 19:34:27 -0400 Subject: [PATCH 09/18] Fix 2 bugs: Stats startup after backup Server java version path bug --- app/classes/shared/server.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index 07317ff2..1d8906d1 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -242,7 +242,7 @@ class ServerInstance: "Replacing with full java path." ) # Checks for Oracle Java. Only Oracle Java's helper will cause a re-exec. - if "/Oracle/Java/" in str(shutil.which("java")): + if "/Oracle/Java/" in str(self.helper.wtol_path(shutil.which("java"))): logger.info( "Oracle Java detected. Changing start command to avoid re-exec." ) @@ -938,7 +938,7 @@ class ServerInstance: logger.info( "Backup complete. User had shutdown preference. Starting server." ) - self.start_server(HelperUsers.get_user_id_by_name("system")) + self.run_threaded_server(HelperUsers.get_user_id_by_name("system")) time.sleep(3) self.last_backup_failed = False except: From cf25249a9d4b2ee0efb406a9cd05d774cfb07b5c Mon Sep 17 00:00:00 2001 From: Zedifus Date: Fri, 24 Jun 2022 02:28:05 +0100 Subject: [PATCH 10/18] Fix path issue with `update-alternatives` Sometimes it can be in /sbin, if it is we return `None` which broke upstream frontend. Returning an empty list to resolve this. --- app/classes/shared/helpers.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/classes/shared/helpers.py b/app/classes/shared/helpers.py index 4273c38f..fa3f6aab 100644 --- a/app/classes/shared/helpers.py +++ b/app/classes/shared/helpers.py @@ -124,17 +124,24 @@ class Helpers: # If we get here we're linux so we will use 'update-alternatives' # (If distro does not have update-alternatives then manual input.) + + # Sometimes u-a will be in /sbin on some distros (which is annoying.) + ua_path = "/usr/bin/update-alternatives" + if not os.path.exists(ua_path): + logger.warning("update-alternatives not found! Trying /sbin") + ua_path = "/usr/sbin/update-alternatives" + try: paths = subprocess.check_output( - ["/usr/bin/update-alternatives", "--list", "java"], encoding="utf8" + [ua_path, "--list", "java"], encoding="utf8" ) if re.match("^(/[^/ ]*)+/?$", paths): return paths.split("\n") except Exception as e: - print("Java Detect Error: ", e) logger.error(f"Java Detect Error: {e}") + return [] @staticmethod def float_to_string(gbs: float): @@ -511,7 +518,7 @@ class Helpers: logger.critical(f"Unable to write to {self.root_dir} directory!") sys.exit(1) - # ensure the log directory is there + # the log directory is there try: with suppress(FileExistsError): os.makedirs(os.path.join(self.root_dir, "logs")) From 6ae87ca2afcbbbcba5dc0addac539ef8344dd1e1 Mon Sep 17 00:00:00 2001 From: Zedifus Date: Fri, 24 Jun 2022 02:46:53 +0100 Subject: [PATCH 11/18] Update changelog !382 --- CHANGELOG.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0aafa844..9190bf71 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,14 @@ # Changelog +## --- [4.0.5] - 2022/06/22 +### New features +None +### Bug fixes +- Fix cannot delete backup on page 2 ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/382)) +### Tweaks +None +

+ ## --- [4.0.4-hotfix2] - 2022/06/21 ### Bug fixes - Fix Traceback on schedule config page ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/381)) From 118924eeaa59585144b18d341caaeb10e74cba5d Mon Sep 17 00:00:00 2001 From: Andrew Date: Thu, 23 Jun 2022 21:57:50 -0400 Subject: [PATCH 12/18] Fix one more stop where this as an issue --- app/classes/shared/server.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/classes/shared/server.py b/app/classes/shared/server.py index 1d8906d1..d1ae524c 100644 --- a/app/classes/shared/server.py +++ b/app/classes/shared/server.py @@ -958,7 +958,7 @@ class ServerInstance: logger.info( "Backup complete. User had shutdown preference. Starting server." ) - self.start_server(HelperUsers.get_user_id_by_name("system")) + self.run_threaded_server(HelperUsers.get_user_id_by_name("system")) self.last_backup_failed = True def backup_status(self, source_path, dest_path): From 163c05eee3aecbdfb6680f00fe5882969b425597 Mon Sep 17 00:00:00 2001 From: Zedifus Date: Fri, 24 Jun 2022 03:04:07 +0100 Subject: [PATCH 13/18] Update changelog !384 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index bea6aff3..1a4aac8f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ None - Fix cannot delete backup on page 2 ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/382)) ### Tweaks - Rework server list on status page display for use on small screens ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/383)) +- Add clone server confirmation ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/384))

## --- [4.0.4-hotfix2] - 2022/06/21 From 0a8d338272e6a35c7c97f365ca46691156d25fd8 Mon Sep 17 00:00:00 2001 From: Zedifus Date: Fri, 24 Jun 2022 03:34:10 +0100 Subject: [PATCH 14/18] Update changelog !385 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a4aac8f..1a98e68c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,8 @@ None ### Tweaks - Rework server list on status page display for use on small screens ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/383)) - Add clone server confirmation ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/384)) +### Lang +- German translation review, fixed some spelling issues and added some missing strings ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/385))

## --- [4.0.4-hotfix2] - 2022/06/21 From 509e51ebf37210bacf995c2c8c2e771bc9b2bf33 Mon Sep 17 00:00:00 2001 From: Zedifus Date: Fri, 24 Jun 2022 03:39:49 +0100 Subject: [PATCH 15/18] Update changelog !386 --- CHANGELOG.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a98e68c..9a6b3565 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ None ### Bug fixes - Fix cannot delete backup on page 2 ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/382)) +- Fix server starting up without stats monitoring after backup shutdown. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/386)) +- Fix pathing issue when launching with just "java" ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/386)) ### Tweaks - Rework server list on status page display for use on small screens ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/383)) - Add clone server confirmation ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/384)) From 6dfaacc3061622ce4cb015e25668d32f8ba9407c Mon Sep 17 00:00:00 2001 From: Zedifus Date: Fri, 24 Jun 2022 03:46:44 +0100 Subject: [PATCH 16/18] Update changelog !387 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9a6b3565..dff3c9d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ None - Fix cannot delete backup on page 2 ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/382)) - Fix server starting up without stats monitoring after backup shutdown. ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/386)) - Fix pathing issue when launching with just "java" ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/386)) +- Fix path issue with update-alternatives ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/387)) ### Tweaks - Rework server list on status page display for use on small screens ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/383)) - Add clone server confirmation ([Merge Request](https://gitlab.com/crafty-controller/crafty-4/-/merge_requests/384)) From 48cd5916ed5a251293461834084f88b808ed1906 Mon Sep 17 00:00:00 2001 From: Zedifus Date: Fri, 24 Jun 2022 03:56:31 +0100 Subject: [PATCH 17/18] Revert internal comment Must've changed this accidentally --- app/classes/shared/helpers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/classes/shared/helpers.py b/app/classes/shared/helpers.py index fa3f6aab..e1d9c3c0 100644 --- a/app/classes/shared/helpers.py +++ b/app/classes/shared/helpers.py @@ -518,7 +518,7 @@ class Helpers: logger.critical(f"Unable to write to {self.root_dir} directory!") sys.exit(1) - # the log directory is there + # ensure the log directory is there try: with suppress(FileExistsError): os.makedirs(os.path.join(self.root_dir, "logs")) From 9915899ecdc48290a95873b881dc1339e6508abe Mon Sep 17 00:00:00 2001 From: Zedifus Date: Fri, 24 Jun 2022 04:07:22 +0100 Subject: [PATCH 18/18] Correct changelog date 4.0.5 --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index dff3c9d6..e8c79d46 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,6 @@ # Changelog -## --- [4.0.5] - 2022/06/22 +## --- [4.0.5] - 2022/06/24 ### New features None ### Bug fixes