Spaces:
Running
Running
Upload folder using huggingface_hub
Browse files- static/dashboard.html +49 -0
static/dashboard.html
CHANGED
|
@@ -88,6 +88,13 @@
|
|
| 88 |
border-color: rgba(15, 23, 42, 0.10);
|
| 89 |
color: rgba(2, 6, 23, 0.9);
|
| 90 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 91 |
.view-section {
|
| 92 |
transition: opacity 0.2s;
|
| 93 |
}
|
|
@@ -2426,6 +2433,31 @@
|
|
| 2426 |
opt.innerText = k;
|
| 2427 |
select.appendChild(opt);
|
| 2428 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2429 |
}
|
| 2430 |
|
| 2431 |
async function loadProviders() {
|
|
@@ -2453,6 +2485,20 @@
|
|
| 2453 |
opt.innerText = k;
|
| 2454 |
select.appendChild(opt);
|
| 2455 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2456 |
} catch (e) {
|
| 2457 |
if (!warnedProviderFallback) {
|
| 2458 |
warnedProviderFallback = true;
|
|
@@ -2485,6 +2531,7 @@
|
|
| 2485 |
if (error) throw error;
|
| 2486 |
await loadProviders();
|
| 2487 |
document.getElementById('saved-providers').value = name;
|
|
|
|
| 2488 |
} catch (e) {
|
| 2489 |
// Fallback to local storage if table isn't available.
|
| 2490 |
const saved = JSON.parse(localStorage.getItem('chat_providers') || '{}');
|
|
@@ -2492,6 +2539,7 @@
|
|
| 2492 |
localStorage.setItem('chat_providers', JSON.stringify(saved));
|
| 2493 |
loadProvidersFromLocalStorage();
|
| 2494 |
document.getElementById('saved-providers').value = name;
|
|
|
|
| 2495 |
}
|
| 2496 |
}
|
| 2497 |
|
|
@@ -2521,6 +2569,7 @@
|
|
| 2521 |
|
| 2522 |
function loadSelectedProvider(name) {
|
| 2523 |
if (!name) return;
|
|
|
|
| 2524 |
const config = providerCache[name];
|
| 2525 |
if (config) {
|
| 2526 |
document.getElementById('chat-api-key').value = config.apiKey || '';
|
|
|
|
| 88 |
border-color: rgba(15, 23, 42, 0.10);
|
| 89 |
color: rgba(2, 6, 23, 0.9);
|
| 90 |
}
|
| 91 |
+
|
| 92 |
+
/* Dashboard cards/surfaces in light mode (Tailwind arbitrary opacity classes) */
|
| 93 |
+
[data-theme="light"] .bg-gray-800\\/60 { background-color: rgba(255, 255, 255, 0.92) !important; }
|
| 94 |
+
[data-theme="light"] .bg-gray-900\\/40 { background-color: rgba(15, 23, 42, 0.03) !important; }
|
| 95 |
+
[data-theme="light"] .bg-gray-900\\/30 { background-color: rgba(15, 23, 42, 0.03) !important; }
|
| 96 |
+
|
| 97 |
+
[data-theme="light"] .shadow-xl { box-shadow: 0 18px 45px rgba(2, 6, 23, 0.08) !important; }
|
| 98 |
.view-section {
|
| 99 |
transition: opacity 0.2s;
|
| 100 |
}
|
|
|
|
| 2433 |
opt.innerText = k;
|
| 2434 |
select.appendChild(opt);
|
| 2435 |
});
|
| 2436 |
+
|
| 2437 |
+
const remembered = getRememberedProvider();
|
| 2438 |
+
if (remembered && providerCache[remembered]) {
|
| 2439 |
+
select.value = remembered;
|
| 2440 |
+
loadSelectedProvider(remembered);
|
| 2441 |
+
} else {
|
| 2442 |
+
const keys = Object.keys(providerCache);
|
| 2443 |
+
if (keys.length === 1) {
|
| 2444 |
+
select.value = keys[0];
|
| 2445 |
+
rememberActiveProvider(keys[0]);
|
| 2446 |
+
loadSelectedProvider(keys[0]);
|
| 2447 |
+
}
|
| 2448 |
+
}
|
| 2449 |
+
}
|
| 2450 |
+
|
| 2451 |
+
function rememberActiveProvider(name) {
|
| 2452 |
+
if (!name) {
|
| 2453 |
+
localStorage.removeItem('active_provider_name_v1');
|
| 2454 |
+
return;
|
| 2455 |
+
}
|
| 2456 |
+
localStorage.setItem('active_provider_name_v1', name);
|
| 2457 |
+
}
|
| 2458 |
+
|
| 2459 |
+
function getRememberedProvider() {
|
| 2460 |
+
return localStorage.getItem('active_provider_name_v1') || '';
|
| 2461 |
}
|
| 2462 |
|
| 2463 |
async function loadProviders() {
|
|
|
|
| 2485 |
opt.innerText = k;
|
| 2486 |
select.appendChild(opt);
|
| 2487 |
});
|
| 2488 |
+
|
| 2489 |
+
// Restore remembered provider selection if available
|
| 2490 |
+
const remembered = getRememberedProvider();
|
| 2491 |
+
if (remembered && providerCache[remembered]) {
|
| 2492 |
+
select.value = remembered;
|
| 2493 |
+
loadSelectedProvider(remembered);
|
| 2494 |
+
} else if (!select.value) {
|
| 2495 |
+
const keys = Object.keys(providerCache);
|
| 2496 |
+
if (keys.length === 1) {
|
| 2497 |
+
select.value = keys[0];
|
| 2498 |
+
rememberActiveProvider(keys[0]);
|
| 2499 |
+
loadSelectedProvider(keys[0]);
|
| 2500 |
+
}
|
| 2501 |
+
}
|
| 2502 |
} catch (e) {
|
| 2503 |
if (!warnedProviderFallback) {
|
| 2504 |
warnedProviderFallback = true;
|
|
|
|
| 2531 |
if (error) throw error;
|
| 2532 |
await loadProviders();
|
| 2533 |
document.getElementById('saved-providers').value = name;
|
| 2534 |
+
rememberActiveProvider(name);
|
| 2535 |
} catch (e) {
|
| 2536 |
// Fallback to local storage if table isn't available.
|
| 2537 |
const saved = JSON.parse(localStorage.getItem('chat_providers') || '{}');
|
|
|
|
| 2539 |
localStorage.setItem('chat_providers', JSON.stringify(saved));
|
| 2540 |
loadProvidersFromLocalStorage();
|
| 2541 |
document.getElementById('saved-providers').value = name;
|
| 2542 |
+
rememberActiveProvider(name);
|
| 2543 |
}
|
| 2544 |
}
|
| 2545 |
|
|
|
|
| 2569 |
|
| 2570 |
function loadSelectedProvider(name) {
|
| 2571 |
if (!name) return;
|
| 2572 |
+
rememberActiveProvider(name);
|
| 2573 |
const config = providerCache[name];
|
| 2574 |
if (config) {
|
| 2575 |
document.getElementById('chat-api-key').value = config.apiKey || '';
|