Upload via Git Manager GUI
This commit is contained in:
@@ -7,6 +7,7 @@ let selectedId = null;
|
|||||||
let statuses = {};
|
let statuses = {};
|
||||||
let previousStatuses = {};
|
let previousStatuses = {};
|
||||||
let settingsVisible = false;
|
let settingsVisible = false;
|
||||||
|
let editingId = null; // Welcher Server gerade bearbeitet wird
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', init);
|
document.addEventListener('DOMContentLoaded', init);
|
||||||
$('btnAdd')?.addEventListener('click', handleAdd);
|
$('btnAdd')?.addEventListener('click', handleAdd);
|
||||||
@@ -200,7 +201,6 @@ function updateDetailForServer(srv, force = false) {
|
|||||||
const ping = d.ping || d.latency;
|
const ping = d.ping || d.latency;
|
||||||
$('detailPing').textContent = typeof ping === 'number' ? ping + ' ms' : '-';
|
$('detailPing').textContent = typeof ping === 'number' ? ping + ' ms' : '-';
|
||||||
|
|
||||||
// MOTD
|
|
||||||
const motdRaw = d.motd || (d.network && d.network.motd) || '';
|
const motdRaw = d.motd || (d.network && d.network.motd) || '';
|
||||||
if (motdRaw) {
|
if (motdRaw) {
|
||||||
const motdEl = $('motdBar');
|
const motdEl = $('motdBar');
|
||||||
@@ -251,8 +251,6 @@ function updateBackendServers(list) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ── Player list ──
|
// ── Player list ──
|
||||||
// Versucht den Server-Namen aus den Daten zu lesen.
|
|
||||||
// Wenn dein Plugin "server" im Spieler-Objekt mitgibt, wird es als Tag angezeigt.
|
|
||||||
function updatePlayerList(players) {
|
function updatePlayerList(players) {
|
||||||
const grid = $('detailPlayerList');
|
const grid = $('detailPlayerList');
|
||||||
grid.innerHTML = '';
|
grid.innerHTML = '';
|
||||||
@@ -272,7 +270,6 @@ function updatePlayerList(players) {
|
|||||||
name = p.name || p.username || p.player || '';
|
name = p.name || p.username || p.player || '';
|
||||||
uuid = p.uuid || null;
|
uuid = p.uuid || null;
|
||||||
prefix = p.prefix || p.group || '';
|
prefix = p.prefix || p.group || '';
|
||||||
// Mögliche Felder: server, current_server, connected_server
|
|
||||||
serverName = p.server || p.current_server || p.connected_server || null;
|
serverName = p.server || p.current_server || p.connected_server || null;
|
||||||
} else {
|
} else {
|
||||||
name = String(p);
|
name = String(p);
|
||||||
@@ -333,29 +330,77 @@ function updateServerListStatuses() {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ── Edit / Add Mode ──
|
||||||
|
function enterEditMode(server) {
|
||||||
|
editingId = server.id;
|
||||||
|
$('settingsTitle').textContent = 'Server bearbeiten';
|
||||||
|
$('btnAddServer').textContent = 'Änderungen speichern';
|
||||||
|
|
||||||
|
$('inputName').value = server.name || '';
|
||||||
|
$('inputUrl').value = server.url || '';
|
||||||
|
$('inputWpSite').value = server.wpSite || '';
|
||||||
|
$('inputWpServerId').value = server.wpServerId || '';
|
||||||
|
}
|
||||||
|
|
||||||
|
function exitEditMode() {
|
||||||
|
editingId = null;
|
||||||
|
$('settingsTitle').textContent = 'Neuen Server hinzufügen';
|
||||||
|
$('btnAddServer').textContent = 'Hinzufügen';
|
||||||
|
$('inputName').value = '';
|
||||||
|
$('inputUrl').value = '';
|
||||||
|
$('inputWpSite').value = '';
|
||||||
|
$('inputWpServerId').value = '';
|
||||||
|
}
|
||||||
|
|
||||||
// ── Actions ──
|
// ── Actions ──
|
||||||
async function handleAdd() {
|
async function handleAdd() {
|
||||||
const name = $('inputName').value.trim();
|
const name = $('inputName').value.trim();
|
||||||
const url = $('inputUrl').value.trim();
|
const url = $('inputUrl').value.trim();
|
||||||
const wpSite = $('inputWpSite').value.trim();
|
const wpSite = $('inputWpSite').value.trim();
|
||||||
const wpServerId = $('inputWpServerId').value.trim();
|
const wpServerId = $('inputWpServerId').value.trim();
|
||||||
if (!url && !wpSite) return;
|
|
||||||
const s = { id: uid(), name: name || url || wpSite, url: url || null, wpSite: wpSite || null, wpServerId: wpServerId || null };
|
if (!url && !wpSite) {
|
||||||
|
alert('Bitte eine URL oder WordPress-Einstellungen angeben.');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (editingId) {
|
||||||
|
// === BEARBEITEN ===
|
||||||
|
const srv = servers.find(s => s.id === editingId);
|
||||||
|
if (srv) {
|
||||||
|
srv.name = name || url || wpSite;
|
||||||
|
if (url) srv.url = url;
|
||||||
|
if (wpSite) srv.wpSite = wpSite;
|
||||||
|
if (wpServerId) srv.wpServerId = wpServerId;
|
||||||
|
}
|
||||||
|
exitEditMode();
|
||||||
|
} else {
|
||||||
|
// === NEU HINZUFÜGEN ===
|
||||||
|
const s = {
|
||||||
|
id: uid(),
|
||||||
|
name: name || url || wpSite,
|
||||||
|
url: url || null,
|
||||||
|
wpSite: wpSite || null,
|
||||||
|
wpServerId: wpServerId || null
|
||||||
|
};
|
||||||
servers.push(s);
|
servers.push(s);
|
||||||
|
}
|
||||||
|
|
||||||
await saveServersToStorage();
|
await saveServersToStorage();
|
||||||
$('inputName').value = $('inputUrl').value = $('inputWpSite').value = $('inputWpServerId').value = '';
|
|
||||||
renderServerList();
|
renderServerList();
|
||||||
|
if (selectedId) renderDetail(selectedId);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleEdit() {
|
async function handleEdit() {
|
||||||
if (!selectedId) return;
|
if (!selectedId) return;
|
||||||
const srv = servers.find(s => s.id === selectedId);
|
const srv = servers.find(s => s.id === selectedId);
|
||||||
if (!srv) return;
|
if (!srv) return;
|
||||||
const newName = prompt('Name:', srv.name);
|
|
||||||
if (newName !== null) srv.name = newName.trim();
|
settingsVisible = true;
|
||||||
await saveServersToStorage();
|
applySettingsVisibility();
|
||||||
renderServerList();
|
await saveSettingsVisibility();
|
||||||
renderDetail(selectedId);
|
|
||||||
|
enterEditMode(srv);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function handleDelete() {
|
async function handleDelete() {
|
||||||
@@ -365,6 +410,7 @@ async function handleDelete() {
|
|||||||
await saveServersToStorage();
|
await saveServersToStorage();
|
||||||
renderServerList();
|
renderServerList();
|
||||||
renderDetail(null);
|
renderDetail(null);
|
||||||
|
exitEditMode();
|
||||||
}
|
}
|
||||||
|
|
||||||
async function manualRefresh() {
|
async function manualRefresh() {
|
||||||
|
|||||||
Reference in New Issue
Block a user