Dlogo
This commit is contained in:
@@ -6,6 +6,7 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="description" content="LDNET-GA">
|
||||
<title>LDNET-GA</title>
|
||||
<link rel="icon" id="siteFavicon" href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>📊</text></svg>">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link
|
||||
@@ -448,8 +449,16 @@
|
||||
<input type="text" id="siteTitleInput" placeholder="例:数据可视化展示大屏">
|
||||
</div>
|
||||
<div class="form-group" style="margin-top: 15px;">
|
||||
<label for="logoUrlInput">Logo URL (图片链接,为空则显示默认图标)</label>
|
||||
<input type="url" id="logoUrlInput" placeholder="https://example.com/logo.png">
|
||||
<label for="logoUrlInput">Logo URL (白天/默认,支持图片链接)</label>
|
||||
<input type="url" id="logoUrlInput" placeholder="https://example.com/logo_light.png">
|
||||
</div>
|
||||
<div class="form-group" style="margin-top: 15px;">
|
||||
<label for="logoUrlDarkInput">Logo URL (黑夜模式,可为空则使用默认)</label>
|
||||
<input type="url" id="logoUrlDarkInput" placeholder="https://example.com/logo_dark.png">
|
||||
</div>
|
||||
<div class="form-group" style="margin-top: 15px;">
|
||||
<label for="faviconUrlInput">Favicon URL (浏览器标签页图标)</label>
|
||||
<input type="url" id="faviconUrlInput" placeholder="https://example.com/favicon.ico">
|
||||
</div>
|
||||
<div class="settings-section" style="margin-top: 25px; border-top: 1px solid var(--border-color); padding-top: 20px;">
|
||||
<h4 style="font-size: 0.85rem; color: var(--accent-indigo); margin-bottom: 15px; text-transform: uppercase; letter-spacing: 0.5px;">界面外观 (Appearance)</h4>
|
||||
|
||||
@@ -41,6 +41,8 @@
|
||||
formMessage: document.getElementById('formMessage'),
|
||||
sourceItems: document.getElementById('sourceItems'),
|
||||
serverSourceOption: document.getElementById('serverSourceOption'),
|
||||
faviconUrlInput: document.getElementById('faviconUrlInput'),
|
||||
logoUrlDarkInput: document.getElementById('logoUrlDarkInput'),
|
||||
// Site Settings
|
||||
modalTabs: document.querySelectorAll('.modal-tab'),
|
||||
tabContents: document.querySelectorAll('.tab-content'),
|
||||
@@ -53,6 +55,7 @@
|
||||
logoIconContainer: document.getElementById('logoIconContainer'),
|
||||
defaultThemeInput: document.getElementById('defaultThemeInput'),
|
||||
show95BandwidthInput: document.getElementById('show95BandwidthInput'),
|
||||
siteFavicon: document.getElementById('siteFavicon'),
|
||||
// Auth & Theme elements
|
||||
themeToggle: document.getElementById('themeToggle'),
|
||||
sunIcon: document.querySelector('.sun-icon'),
|
||||
@@ -487,6 +490,8 @@
|
||||
if (dom.p95TypeSelect) dom.p95TypeSelect.value = window.SITE_SETTINGS.p95_type || 'tx';
|
||||
if (dom.icpFilingInput) dom.icpFilingInput.value = window.SITE_SETTINGS.icp_filing || '';
|
||||
if (dom.psFilingInput) dom.psFilingInput.value = window.SITE_SETTINGS.ps_filing || '';
|
||||
if (dom.logoUrlDarkInput) dom.logoUrlDarkInput.value = window.SITE_SETTINGS.logo_url_dark || '';
|
||||
if (dom.faviconUrlInput) dom.faviconUrlInput.value = window.SITE_SETTINGS.favicon_url || '';
|
||||
// Latency routes loaded separately in openSettings or on startup
|
||||
}
|
||||
|
||||
@@ -551,6 +556,10 @@
|
||||
localStorage.setItem('theme', theme);
|
||||
updateThemeIcons(theme);
|
||||
updateMap2DTheme(theme);
|
||||
// After theme toggle, re-apply site settings to handle potential logo change
|
||||
if (window.SITE_SETTINGS) {
|
||||
applySiteSettings(window.SITE_SETTINGS);
|
||||
}
|
||||
}
|
||||
|
||||
function applyTheme(theme) {
|
||||
@@ -564,6 +573,19 @@
|
||||
document.documentElement.classList.toggle('light-theme', isLight);
|
||||
updateThemeIcons(actualTheme);
|
||||
updateMap2DTheme(actualTheme);
|
||||
|
||||
// After theme change, re-apply site settings to handle potential logo change
|
||||
if (window.SITE_SETTINGS) {
|
||||
applySiteSettings(window.SITE_SETTINGS);
|
||||
}
|
||||
}
|
||||
|
||||
function updateFavicon(url) {
|
||||
if (!url) return;
|
||||
const link = dom.siteFavicon || document.querySelector("link[rel*='icon']");
|
||||
if (link) {
|
||||
link.href = url;
|
||||
}
|
||||
}
|
||||
|
||||
function updateThemeIcons(theme) {
|
||||
@@ -1655,6 +1677,8 @@
|
||||
}
|
||||
if (dom.icpFilingInput) dom.icpFilingInput.value = settings.icp_filing || '';
|
||||
if (dom.psFilingInput) dom.psFilingInput.value = settings.ps_filing || '';
|
||||
if (dom.logoUrlDarkInput) dom.logoUrlDarkInput.value = settings.logo_url_dark || '';
|
||||
if (dom.faviconUrlInput) dom.faviconUrlInput.value = settings.favicon_url || '';
|
||||
|
||||
// Apply to UI
|
||||
applySiteSettings(settings);
|
||||
@@ -1693,8 +1717,14 @@
|
||||
}
|
||||
|
||||
// Logo Icon
|
||||
if (settings.logo_url) {
|
||||
dom.logoIconContainer.innerHTML = `<img src="${escapeHtml(settings.logo_url)}" alt="Logo" class="logo-icon-img">`;
|
||||
let logoToUse = settings.logo_url;
|
||||
const currentTheme = document.documentElement.classList.contains('light-theme') ? 'light' : 'dark';
|
||||
if (currentTheme === 'dark' && settings.logo_url_dark) {
|
||||
logoToUse = settings.logo_url_dark;
|
||||
}
|
||||
|
||||
if (logoToUse) {
|
||||
dom.logoIconContainer.innerHTML = `<img src="${escapeHtml(logoToUse)}" alt="Logo" class="logo-icon-img">`;
|
||||
} else {
|
||||
// Restore default SVG
|
||||
dom.logoIconContainer.innerHTML = `
|
||||
@@ -1713,6 +1743,9 @@
|
||||
`;
|
||||
}
|
||||
|
||||
// Favicon
|
||||
updateFavicon(settings.favicon_url);
|
||||
|
||||
// P95 setting
|
||||
if (settings.show_95_bandwidth !== undefined || settings.p95_type !== undefined) {
|
||||
if (networkChart) {
|
||||
@@ -1786,7 +1819,9 @@
|
||||
show_95_bandwidth: dom.show95BandwidthInput.value === "1" ? 1 : 0,
|
||||
p95_type: dom.p95TypeSelect.value,
|
||||
ps_filing: dom.psFilingInput ? dom.psFilingInput.value : '',
|
||||
icp_filing: dom.icpFilingInput ? dom.icpFilingInput.value : ''
|
||||
icp_filing: dom.icpFilingInput ? dom.icpFilingInput.value : '',
|
||||
logo_url_dark: dom.logoUrlDarkInput ? dom.logoUrlDarkInput.value.trim() : '',
|
||||
favicon_url: dom.faviconUrlInput ? dom.faviconUrlInput.value.trim() : ''
|
||||
};
|
||||
|
||||
// If user sets default to auto, we should clear their manual override or set it to auto
|
||||
|
||||
Reference in New Issue
Block a user