修改数据源查询逻辑
This commit is contained in:
@@ -37,6 +37,8 @@
|
||||
sourceDesc: document.getElementById('sourceDesc'),
|
||||
btnTest: document.getElementById('btnTest'),
|
||||
btnAdd: document.getElementById('btnAdd'),
|
||||
isOverviewSource: document.getElementById('isOverviewSource'),
|
||||
isDetailSource: document.getElementById('isDetailSource'),
|
||||
isServerSource: document.getElementById('isServerSource'),
|
||||
formMessage: document.getElementById('formMessage'),
|
||||
sourceItems: document.getElementById('sourceItems'),
|
||||
@@ -2382,17 +2384,22 @@
|
||||
}
|
||||
|
||||
window.editRoute = function (id, source_id, source, dest, target) {
|
||||
let route = null;
|
||||
if (source_id === undefined && allStoredLatencyRoutes) {
|
||||
route = allStoredLatencyRoutes.find(r => r.id === id);
|
||||
}
|
||||
|
||||
editingRouteId = id;
|
||||
dom.routeSourceSelect.value = source_id;
|
||||
dom.routeSourceInput.value = source;
|
||||
dom.routeDestInput.value = dest;
|
||||
dom.routeTargetInput.value = target;
|
||||
dom.routeSourceSelect.value = route ? route.source_id : (source_id || '');
|
||||
dom.routeSourceInput.value = route ? route.latency_source : (source || '');
|
||||
dom.routeDestInput.value = route ? route.latency_dest : (dest || '');
|
||||
dom.routeTargetInput.value = route ? route.latency_target : (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');
|
||||
// Select the tab 'latency' (not 'routes')
|
||||
const tab = Array.from(dom.modalTabs).find(t => t.dataset.tab === 'latency');
|
||||
if (tab) tab.click();
|
||||
};
|
||||
|
||||
@@ -2621,9 +2628,11 @@
|
||||
<span class="source-status ${source.status === 'online' ? 'source-status-online' : 'source-status-offline'}">
|
||||
${source.status === 'online' ? '在线' : '离线'}
|
||||
</span>
|
||||
<span class="source-type-badge ${source.is_server_source ? 'type-server' : 'type-other'}" title="${source.is_server_source ? '该数据源用于展示服务器列表和指标' : '该数据源仅用于特定目的(如 Blackbox 延迟),不参与服务器列表统计'}">
|
||||
${source.type === 'blackbox' ? 'Blackbox' : (source.is_server_source ? '服务器看板' : '独立数据源')}
|
||||
</span>
|
||||
${source.type === 'blackbox' ? '<span class="source-type-badge type-other">Blackbox</span>' : `
|
||||
${source.is_overview_source ? '<span class="source-type-badge type-server" style="background: var(--accent-indigo);">总览</span>' : ''}
|
||||
${source.is_detail_source ? '<span class="source-type-badge type-server" style="background: var(--accent-emerald);">详情</span>' : ''}
|
||||
${!source.is_overview_source && !source.is_detail_source ? '<span class="source-type-badge type-other">独立数据源</span>' : ''}
|
||||
`}
|
||||
</div>
|
||||
<div class="source-item-url">${escapeHtml(source.url)}</div>
|
||||
${source.description ? `<div class="source-item-desc">${escapeHtml(source.description)}</div>` : ''}
|
||||
@@ -2698,13 +2707,20 @@
|
||||
// ---- Add Source ----
|
||||
let editingSourceId = null;
|
||||
|
||||
window.editSource = function(source) {
|
||||
window.editSource = function(sourceOrId) {
|
||||
let source = sourceOrId;
|
||||
if (typeof sourceOrId !== 'object' && allStoredSources) {
|
||||
source = allStoredSources.find(s => s.id === sourceOrId);
|
||||
}
|
||||
if (!source) return;
|
||||
|
||||
editingSourceId = source.id;
|
||||
dom.sourceName.value = source.name || '';
|
||||
dom.sourceUrl.value = source.url || '';
|
||||
dom.sourceType.value = source.type || 'prometheus';
|
||||
dom.sourceDesc.value = source.description || '';
|
||||
dom.isServerSource.checked = !!source.is_server_source;
|
||||
if (dom.isOverviewSource) dom.isOverviewSource.checked = !!source.is_overview_source;
|
||||
if (dom.isDetailSource) dom.isDetailSource.checked = !!source.is_detail_source;
|
||||
|
||||
// Toggle Blackbox UI
|
||||
if (source.type === 'blackbox') {
|
||||
@@ -2736,7 +2752,8 @@
|
||||
dom.sourceUrl.value = '';
|
||||
dom.sourceType.value = 'prometheus';
|
||||
dom.sourceDesc.value = '';
|
||||
dom.isServerSource.checked = true;
|
||||
if (dom.isOverviewSource) dom.isOverviewSource.checked = true;
|
||||
if (dom.isDetailSource) dom.isDetailSource.checked = true;
|
||||
dom.serverSourceOption.style.display = 'flex';
|
||||
dom.btnAdd.textContent = '添加';
|
||||
|
||||
@@ -2757,7 +2774,9 @@
|
||||
const type = dom.sourceType.value;
|
||||
const description = dom.sourceDesc.value.trim();
|
||||
// Default to false for blackbox, otherwise use checkbox
|
||||
const is_server_source = type === 'blackbox' ? false : dom.isServerSource.checked;
|
||||
const is_overview_source = type === 'blackbox' ? false : dom.isOverviewSource.checked;
|
||||
const is_detail_source = type === 'blackbox' ? false : dom.isDetailSource.checked;
|
||||
const is_server_source = is_overview_source || is_detail_source;
|
||||
|
||||
if (!name || !url) {
|
||||
showMessage('请填写名称和URL', 'error');
|
||||
@@ -2775,7 +2794,7 @@
|
||||
const response = await fetch(urlPath, {
|
||||
method: method,
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({ name, url, description, is_server_source, type })
|
||||
body: JSON.stringify({ name, url, description, is_server_source, is_overview_source, is_detail_source, type })
|
||||
});
|
||||
|
||||
if (response.ok) {
|
||||
|
||||
Reference in New Issue
Block a user