Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 40 additions & 2 deletions components/game-server-nodes/GameServerNodeRow.vue
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,16 @@ import {
DialogHeader,
DialogTitle,
} from "~/components/ui/dialog";
import {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
} from "~/components/ui/alert-dialog";
import { Badge } from "~/components/ui/badge";
import { Button } from "~/components/ui/button";
import {
Expand Down Expand Up @@ -983,7 +993,7 @@ const isSectionExpanded = (section: string) => {
<DropdownMenuSeparator />

<DropdownMenuItem
@click="removeGameNodeServer"
@click="showRemoveNodeDialog = true"
class="text-destructive focus:text-destructive"
>
<Trash2 />
Expand Down Expand Up @@ -1218,7 +1228,7 @@ const isSectionExpanded = (section: string) => {
<DropdownMenuSeparator />

<DropdownMenuItem
@click="removeGameNodeServer"
@click="showRemoveNodeDialog = true"
class="text-destructive focus:text-destructive"
>
<Trash2 />
Expand Down Expand Up @@ -1880,6 +1890,32 @@ const isSectionExpanded = (section: string) => {
</DialogContent>
</Dialog>

<!-- Remove Node Dialog -->
<AlertDialog v-model:open="showRemoveNodeDialog">
<AlertDialogContent>
<AlertDialogHeader>
<AlertDialogTitle>
{{
$t("game_server.remove_node_confirm_title", {
node: gameServerNode.label || gameServerNode.id,
})
}}
</AlertDialogTitle>
<AlertDialogDescription>
{{ $t("game_server.remove_node_confirm_description") }}
</AlertDialogDescription>
</AlertDialogHeader>
<AlertDialogFooter>
<AlertDialogCancel>
{{ $t("common.cancel") }}
</AlertDialogCancel>
<AlertDialogAction variant="destructive" @click="removeGameNodeServer">
{{ $t("game_server.remove_node") }}
</AlertDialogAction>
</AlertDialogFooter>
</AlertDialogContent>
</AlertDialog>

<UpdateGameServerLabel
:game-server-node="gameServerNode"
:open="editLabelSheet"
Expand Down Expand Up @@ -1968,6 +2004,7 @@ interface ComponentData {
portForm: ReturnType<typeof useForm>;
server_regions: ServerRegion[];
removingNode: boolean;
showRemoveNodeDialog: boolean;
}

export default defineComponent({
Expand Down Expand Up @@ -2058,6 +2095,7 @@ export default defineComponent({
editCs2OptionsSheet: false,
server_regions: [],
removingNode: false,
showRemoveNodeDialog: false,
pinBuildIdForm: useForm({
validationSchema: toTypedSchema(
z.object({
Expand Down
18 changes: 18 additions & 0 deletions i18n/locales/ar_SA.json
Original file line number Diff line number Diff line change
Expand Up @@ -2275,6 +2275,22 @@
"reserved_disk_space_existing_gb": "المساحة المطلوبة - تثبيت موجود (GB)",
"reserved_disk_space_existing_gb_description": "الحد الأدنى لمساحة القرص بالـ GB المطلوبة عندما يكون CS2 مثبتًا بالفعل على العقدة. اضبطها على 0 للتعطيل.",
"update_cpu_pinning": "تم تحديث تثبيت CPU",
"danger_zone_title": "منطقة الخطر",
"danger_zone_description": "تحذف هذه الإجراءات كائنات من عنقود Kubernetes لديك، ولا يمكن التراجع عنها.",
"cleanup_nodes_title": "تنظيف العقد المحذوفة",
"cleanup_nodes_description": "يحذف ما لا يزال Kubernetes يحتفظ به لعقد سيرفرات اللعب التي حُذفت من اللوحة: مهام التحديث والبث والتحقق من gamedata الخاصة بها، وطلبات وحدات التخزين، وإدخالات وحدات التخزين، وإدخالات العقد. تبقى الملفات الموجودة على أقراص العقد كما هي. يتم تخطي العقد التي أبلغ Kubernetes عن حالتها بأنها «Ready» خلال آخر 10 دقائق، وكذلك سيرفر اللوحة نفسه. يعمل التنظيف نفسه تلقائيًا أيضًا عند حذف عقدة؛ استخدم هذا الإجراء لكل ما لم يتمكن التنظيف التلقائي من إكماله، مثل عمليات حذف تمت قبل هذا التحديث.",
"cleanup_nodes_button": "نظّف",
"cleanup_nodes_running": "جارٍ التنظيف...",
"cleanup_nodes_dialog_title": "هل تريد تنظيف العقد المحذوفة؟",
"cleanup_nodes_dialog_description": "يحذف هذا مهام التحديث والبث والتحقق من gamedata وطلبات وحدات التخزين وإدخالات وحدات التخزين وإدخالات العقد التي تركتها عقد سيرفرات اللعب المحذوفة. تبقى الملفات الموجودة على أقراص العقد كما هي. يتم تخطي العقد التي أبلغ Kubernetes عن حالتها بأنها «Ready» خلال آخر 10 دقائق، وكذلك سيرفر اللوحة نفسه.",
"cleanup_nodes_nothing": "لا يوجد ما يمكن تنظيفه",
"cleanup_nodes_done": "اكتمل التنظيف",
"cleanup_nodes_done_with_errors": "اكتمل التنظيف مع وجود أخطاء",
"cleanup_nodes_counts": "إدخالات العقد: {nodes}، إدخالات وحدات التخزين: {volumes}، طلبات وحدات التخزين: {volume_claims}، المهام: {jobs}.",
"cleanup_nodes_node_delete_forbidden": "تم الاحتفاظ بإدخالات العقد مع طلبات وحدات التخزين وإدخالات وحدات التخزين الخاصة بها لأن API الخاص باللوحة لا يملك صلاحية حذف عقد Kubernetes. اسحب التحديثات وشغّل سكربت تحديث اللوحة (git pull && ./update.sh)، ثم شغّل هذا الإجراء مرة أخرى.",
"cleanup_nodes_failed_count": "كائنات تعذّر حذفها: {failed}. راجع سجلات API.",
"cleanup_nodes_recently_ready": "العقد المحذوفة التي تم تخطيها لأن Kubernetes أبلغ عن حالتها بأنها «Ready» خلال آخر 10 دقائق: {recently_ready}. شغّل هذا الإجراء مرة أخرى بعد مرور 10 دقائق على توقف Kubernetes عن الإبلاغ عنها بأنها «Ready».",
"cleanup_nodes_failed": "فشل التنظيف",
"player_sessions_section": "جلسات لاعبي سيرفرات المجتمع",
"player_sessions_description": "تسجّل سيرفرات المجتمع التي تشغّل إضافة Player Management من لعب ومتى ومن أي عنوان IP.",
"player_session_retention_days": "الاحتفاظ بسجل الجلسات (أيام)",
Expand Down Expand Up @@ -8508,6 +8524,8 @@
"select_region": "اختر المنطقة",
"no_region": "غير مخصصة",
"remove_node": "احذف العقدة",
"remove_node_confirm_title": "هل تريد حذف {node}؟",
"remove_node_confirm_description": "يؤدي هذا إلى حذف العقدة من اللوحة. بعد مرور 10 دقائق على توقف Kubernetes عن الإبلاغ عنها بأنها «Ready»، تُحذف أيضًا مهام التحديث والبث والتحقق من gamedata الخاصة بها وطلبات وحدات التخزين وإدخالات وحدات التخزين وإدخال العقدة الخاص بها من Kubernetes. تبقى الملفات الموجودة على قرصها كما هي. العقدة التي لا تزال تعمل تضيف نفسها مرة أخرى خلال دقيقة، لكنها تعود معطّلة وبإعدادات مُعادة إلى الوضع الافتراضي؛ احذفها مرة أخرى بعد توقفها. إذا لم تُضف نفسها مرة أخرى وظل Kubernetes يُبلغ عنها بأنها «Ready» بعد 10 دقائق من الحذف، فشغّل «تنظيف العقد المحذوفة» في إعدادات السيرفر بعد مرور 10 دقائق على توقف Kubernetes عن الإبلاغ عنها بأنها «Ready».",
"remove_ports": "احذف المنافذ",
"mode": {
"use_as_match": "استخدمها كسيرفر مباريات",
Expand Down
18 changes: 18 additions & 0 deletions i18n/locales/da_DK.json
Original file line number Diff line number Diff line change
Expand Up @@ -2275,6 +2275,22 @@
"reserved_disk_space_existing_gb": "Krævet diskplads - eksisterende installation (GB)",
"reserved_disk_space_existing_gb_description": "Minimum diskplads i GB krævet, når CS2 allerede er installeret på noden. Sæt til 0 for at slå fra.",
"update_cpu_pinning": "CPU-pinning opdateret",
"danger_zone_title": "Farezone",
"danger_zone_description": "Disse handlinger sletter objekter fra dit Kubernetes-cluster og kan ikke fortrydes.",
"cleanup_nodes_title": "Ryd op i fjernede noder",
"cleanup_nodes_description": "Sletter det, Kubernetes stadig gemmer for spilserver-noder, der er fjernet fra panelet: deres opdaterings-, streaming- og gamedata-valideringsjobs, volume claims, volume-poster og node-poster. Filer på nodernes diske bevares. Noder, som Kubernetes har rapporteret som «Ready» inden for de sidste 10 minutter, springes over, og det samme gør panelets egen server. Den samme oprydning kører også automatisk, når en node fjernes. Brug dette til alt, som den automatiske oprydning ikke kunne gøre færdig, for eksempel fjernelser fra før denne opdatering.",
"cleanup_nodes_button": "Ryd op",
"cleanup_nodes_running": "Rydder op...",
"cleanup_nodes_dialog_title": "Ryd op i fjernede noder?",
"cleanup_nodes_dialog_description": "Dette sletter de opdaterings-, streaming- og gamedata-valideringsjobs, volume claims, volume-poster og node-poster, som fjernede spilserver-noder har efterladt. Filer på nodernes diske bevares. Noder, som Kubernetes har rapporteret som «Ready» inden for de sidste 10 minutter, springes over, og det samme gør panelets egen server.",
"cleanup_nodes_nothing": "Intet at rydde op i",
"cleanup_nodes_done": "Oprydningen er færdig",
"cleanup_nodes_done_with_errors": "Oprydningen er færdig, men med fejl",
"cleanup_nodes_counts": "Node-poster: {nodes}, volume-poster: {volumes}, volume claims: {volume_claims}, jobs: {jobs}.",
"cleanup_nodes_node_delete_forbidden": "Node-poster blev bevaret sammen med deres volume claims og volume-poster, fordi API'et ikke har tilladelse til at slette Kubernetes-noder. Hent og kør panelets opdateringsscript (git pull && ./update.sh), og kør derefter dette igen.",
"cleanup_nodes_failed_count": "Objekter, der ikke kunne fjernes: {failed}. Tjek API'ets logfiler.",
"cleanup_nodes_recently_ready": "Fjernede noder, der blev sprunget over, fordi Kubernetes har rapporteret dem som «Ready» inden for de sidste 10 minutter: {recently_ready}. Kør dette igen, når Kubernetes ikke har rapporteret dem som «Ready» i 10 minutter.",
"cleanup_nodes_failed": "Oprydningen mislykkedes",
"player_sessions_section": "Spillersessioner på Community-Servere",
"player_sessions_description": "Community-servere med Player Management-pluginnet registrerer, hvem der spillede, hvornår og fra hvilken IP.",
"player_session_retention_days": "Gem Sessionshistorik (dage)",
Expand Down Expand Up @@ -8508,6 +8524,8 @@
"select_region": "Vælg region",
"no_region": "Ikke tildelt",
"remove_node": "Fjern node",
"remove_node_confirm_title": "Fjern {node}?",
"remove_node_confirm_description": "Dette fjerner noden fra panelet. Når Kubernetes ikke har rapporteret den som «Ready» i 10 minutter, slettes dens opdaterings-, streaming- og gamedata-valideringsjobs, volume claims, volume-poster og node-post også fra Kubernetes. Filer på dens disk bevares. En node, der stadig kører, tilføjer sig selv igen inden for et minut, men deaktiveret og med nulstillede indstillinger; fjern den igen, når den er nede. Hvis den ikke kommer tilbage, men Kubernetes stadig rapporterer den som «Ready» 10 minutter efter fjernelsen, så kør «Ryd op i fjernede noder» i Serverindstillinger, når Kubernetes ikke har rapporteret den som «Ready» i 10 minutter.",
"remove_ports": "Fjern porte",
"mode": {
"use_as_match": "Brug som kampserver",
Expand Down
18 changes: 18 additions & 0 deletions i18n/locales/de_DE.json
Original file line number Diff line number Diff line change
Expand Up @@ -2275,6 +2275,22 @@
"reserved_disk_space_existing_gb": "Benötigter Speicherplatz – Bestehende Installation (GB)",
"reserved_disk_space_existing_gb_description": "Mindestens benötigter Speicherplatz in GB, wenn CS2 auf dem Node bereits installiert ist. 0 deaktiviert die Prüfung.",
"update_cpu_pinning": "CPU-Pinning aktualisiert",
"danger_zone_title": "Gefahrenzone",
"danger_zone_description": "Diese Aktionen löschen Objekte aus deinem Kubernetes-Cluster. Das lässt sich nicht rückgängig machen.",
"cleanup_nodes_title": "Entfernte Nodes bereinigen",
"cleanup_nodes_description": "Löscht, was Kubernetes für aus dem Panel entfernte Game-Server-Nodes noch vorhält: ihre Update-, Streamer- und Gamedata-Prüfungs-Jobs, Volume-Claims, Volume-Einträge und Node-Einträge. Dateien auf den Festplatten der Nodes bleiben erhalten. Nodes, die Kubernetes in den letzten 10 Minuten als „Ready“ gemeldet hat, werden übersprungen, ebenso der Server, auf dem das Panel selbst läuft. Dieselbe Bereinigung läuft auch automatisch, wenn ein Node entfernt wird. Nutze sie hier für alles, was die automatische Bereinigung nicht abschließen konnte, zum Beispiel für Nodes, die vor diesem Update entfernt wurden.",
"cleanup_nodes_button": "Bereinigen",
"cleanup_nodes_running": "Wird bereinigt …",
"cleanup_nodes_dialog_title": "Entfernte Nodes bereinigen?",
"cleanup_nodes_dialog_description": "Das löscht die Update-, Streamer- und Gamedata-Prüfungs-Jobs, Volume-Claims, Volume-Einträge und Node-Einträge, die entfernte Game-Server-Nodes hinterlassen haben. Dateien auf den Festplatten der Nodes bleiben erhalten. Nodes, die Kubernetes in den letzten 10 Minuten als „Ready“ gemeldet hat, werden übersprungen, ebenso der Server, auf dem das Panel selbst läuft.",
"cleanup_nodes_nothing": "Nichts zu bereinigen",
"cleanup_nodes_done": "Bereinigung abgeschlossen",
"cleanup_nodes_done_with_errors": "Bereinigung mit Fehlern abgeschlossen",
"cleanup_nodes_counts": "Node-Einträge: {nodes}, Volume-Einträge: {volumes}, Volume-Claims: {volume_claims}, Jobs: {jobs}.",
"cleanup_nodes_node_delete_forbidden": "Node-Einträge wurden samt ihren Volume-Claims und Volume-Einträgen behalten, weil die API keine Berechtigung hat, Kubernetes-Nodes zu löschen. Führe das Update-Skript des Panels aus (git pull && ./update.sh) und starte danach diese Bereinigung erneut.",
"cleanup_nodes_failed_count": "Objekte, die nicht entfernt werden konnten: {failed}. Sieh in den API-Logs nach.",
"cleanup_nodes_recently_ready": "Entfernte Nodes, die übersprungen wurden, weil Kubernetes sie in den letzten 10 Minuten als „Ready“ gemeldet hat: {recently_ready}. Führe das erneut aus, sobald Kubernetes sie seit 10 Minuten nicht mehr als „Ready“ meldet.",
"cleanup_nodes_failed": "Bereinigung fehlgeschlagen",
"player_sessions_section": "Community-Spielersitzungen",
"player_sessions_description": "Community-Server mit dem Player-Management-Plugin erfassen, wer wann und von welcher IP gespielt hat.",
"player_session_retention_days": "Sitzungsverlauf Aufbewahren (Tage)",
Expand Down Expand Up @@ -8508,6 +8524,8 @@
"select_region": "Region wählen",
"no_region": "Nicht zugewiesen",
"remove_node": "Node entfernen",
"remove_node_confirm_title": "{node} entfernen?",
"remove_node_confirm_description": "Das entfernt den Node aus dem Panel. Sobald Kubernetes ihn seit 10 Minuten nicht mehr als „Ready“ meldet, werden auch seine Update-, Streamer- und Gamedata-Prüfungs-Jobs, Volume-Claims, Volume-Einträge und sein Node-Eintrag aus Kubernetes gelöscht. Dateien auf seiner Festplatte bleiben erhalten. Ein Node, der noch läuft, fügt sich innerhalb einer Minute wieder hinzu, allerdings deaktiviert und mit zurückgesetzten Einstellungen; entferne ihn erneut, sobald er nicht mehr läuft. Wenn er nicht zurückkommt, Kubernetes ihn aber 10 Minuten nach dem Entfernen noch als „Ready“ meldet, führe „Entfernte Nodes bereinigen“ in den Server-Einstellungen aus, sobald Kubernetes ihn seit 10 Minuten nicht mehr als „Ready“ meldet.",
"remove_ports": "Ports entfernen",
"mode": {
"use_as_match": "Als Match-Server nutzen",
Expand Down
Loading
Loading