允许编辑配置
This commit is contained in:
@@ -75,6 +75,7 @@
|
||||
routeTargetInput: document.getElementById('routeTargetInput'),
|
||||
btnAddRoute: document.getElementById('btnAddRoute'),
|
||||
latencyRoutesList: document.getElementById('latencyRoutesList'),
|
||||
btnCancelEditRoute: document.getElementById('btnCancelEditRoute'),
|
||||
detailDiskTotal: document.getElementById('detailDiskTotal'),
|
||||
// Server Details Modal
|
||||
serverDetailModal: document.getElementById('serverDetailModal'),
|
||||
@@ -131,6 +132,7 @@
|
||||
}
|
||||
|
||||
let myMap2D = null;
|
||||
let editingRouteId = null;
|
||||
|
||||
// ---- Initialize ----
|
||||
function init() {
|
||||
@@ -163,6 +165,10 @@
|
||||
});
|
||||
}
|
||||
|
||||
if (dom.btnCancelEditRoute) {
|
||||
dom.btnCancelEditRoute.onclick = cancelEditRoute;
|
||||
}
|
||||
|
||||
dom.settingsModal.addEventListener('click', (e) => {
|
||||
if (e.target === dom.settingsModal) closeSettings();
|
||||
});
|
||||
@@ -1541,11 +1547,40 @@
|
||||
<span>目标: ${escapeHtml(route.latency_target)}</span>
|
||||
</div>
|
||||
</div>
|
||||
<button class="btn btn-delete" onclick="deleteLatencyRoute(${route.id})" style="padding: 4px 10px; font-size: 0.72rem;">删除</button>
|
||||
<div class="route-actions" style="display: flex; gap: 8px;">
|
||||
<button class="btn btn-test" onclick="editRoute(${route.id}, ${route.source_id}, '${escapeHtml(route.latency_source)}', '${escapeHtml(route.latency_dest)}', '${escapeHtml(route.latency_target)}')" style="padding: 4px 10px; font-size: 0.72rem;">编辑</button>
|
||||
<button class="btn btn-delete" onclick="deleteLatencyRoute(${route.id})" style="padding: 4px 10px; font-size: 0.72rem;">删除</button>
|
||||
</div>
|
||||
</div>
|
||||
`).join('');
|
||||
}
|
||||
|
||||
window.editRoute = function(id, source_id, source, dest, target) {
|
||||
editingRouteId = id;
|
||||
dom.routeSourceSelect.value = source_id;
|
||||
dom.routeSourceInput.value = source;
|
||||
dom.routeDestInput.value = dest;
|
||||
dom.routeTargetInput.value = target;
|
||||
|
||||
dom.btnAddRoute.textContent = '保存修改';
|
||||
dom.btnCancelEditRoute.style.display = 'block';
|
||||
|
||||
// Select the tab just in case (though it's already there)
|
||||
const tab = Array.from(dom.modalTabs).find(t => t.dataset.tab === 'routes');
|
||||
if (tab) tab.click();
|
||||
};
|
||||
|
||||
function cancelEditRoute() {
|
||||
editingRouteId = null;
|
||||
dom.routeSourceSelect.value = "";
|
||||
dom.routeSourceInput.value = "";
|
||||
dom.routeDestInput.value = "";
|
||||
dom.routeTargetInput.value = "";
|
||||
|
||||
dom.btnAddRoute.textContent = '添加线路';
|
||||
dom.btnCancelEditRoute.style.display = 'none';
|
||||
}
|
||||
|
||||
async function addLatencyRoute() {
|
||||
if (!user) {
|
||||
showSiteMessage('请先登录及进行身份验证', 'error');
|
||||
@@ -1563,21 +1598,24 @@
|
||||
return;
|
||||
}
|
||||
|
||||
const url = editingRouteId ? `/api/latency-routes/${editingRouteId}` : '/api/latency-routes';
|
||||
const method = editingRouteId ? 'PUT' : 'POST';
|
||||
|
||||
try {
|
||||
const response = await fetch('/api/latency-routes', {
|
||||
method: 'POST',
|
||||
const response = await fetch(url, {
|
||||
method,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ source_id: parseInt(source_id), latency_source, latency_dest, latency_target })
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
showSiteMessage('线路添加成功', 'success');
|
||||
dom.routeSourceInput.value = '';
|
||||
dom.routeDestInput.value = '';
|
||||
dom.routeTargetInput.value = '';
|
||||
showSiteMessage(editingRouteId ? '线路更新成功' : '线路添加成功', 'success');
|
||||
cancelEditRoute();
|
||||
loadLatencyRoutes();
|
||||
fetchLatency();
|
||||
} else {
|
||||
const err = await response.json();
|
||||
showSiteMessage(`操作失败: ${err.error}`, 'error');
|
||||
if (response.status === 401) openLoginModal();
|
||||
}
|
||||
} catch (err) {
|
||||
|
||||
Reference in New Issue
Block a user