Spaces:
Sleeping
Sleeping
cyberai-1 commited on
Commit Β·
b4502d9
1
Parent(s): 89dfd64
add the cicle barre
Browse files- index.html +27 -1
index.html
CHANGED
|
@@ -190,6 +190,23 @@ header {
|
|
| 190 |
.btn-run:hover { background:#f5ff70;box-shadow:0 0 40px rgba(232,255,71,.35); }
|
| 191 |
.btn-run:disabled { background:var(--dim);color:var(--bg);cursor:not-allowed;box-shadow:none; }
|
| 192 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 193 |
/* ββ DASHBOARD βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */
|
| 194 |
#dashPage { display:none;padding:0; }
|
| 195 |
|
|
@@ -682,6 +699,11 @@ header {
|
|
| 682 |
</button>
|
| 683 |
</div>
|
| 684 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 685 |
<!-- ββ DASHBOARD PAGE ββββββββββββββββββββββββββββββββββββββββββββββββββββββ -->
|
| 686 |
<div id="dashPage">
|
| 687 |
|
|
@@ -1028,10 +1050,14 @@ async function loadAndRender() {
|
|
| 1028 |
}
|
| 1029 |
allRows = [];
|
| 1030 |
let pending = csvFiles.length + remoteCsvFiles.length;
|
|
|
|
| 1031 |
|
| 1032 |
const done = () => {
|
| 1033 |
pending--;
|
| 1034 |
-
if (pending === 0)
|
|
|
|
|
|
|
|
|
|
| 1035 |
};
|
| 1036 |
|
| 1037 |
csvFiles.forEach(f => {
|
|
|
|
| 190 |
.btn-run:hover { background:#f5ff70;box-shadow:0 0 40px rgba(232,255,71,.35); }
|
| 191 |
.btn-run:disabled { background:var(--dim);color:var(--bg);cursor:not-allowed;box-shadow:none; }
|
| 192 |
|
| 193 |
+
/* ββ LOADING SPINNER βββββββββββββββββββββββββββββββββββββββββββββββββββββββ */
|
| 194 |
+
.spinner {
|
| 195 |
+
display:none;position:fixed;inset:0;z-index:999;
|
| 196 |
+
background:rgba(5,7,10,.95);backdrop-filter:blur(4px);
|
| 197 |
+
align-items:center;justify-content:center;
|
| 198 |
+
}
|
| 199 |
+
.spinner.active { display:flex; }
|
| 200 |
+
.spinner-circle {
|
| 201 |
+
width:60px;height:60px;border:4px solid var(--dim);
|
| 202 |
+
border-top-color:var(--accent);border-right-color:var(--accent);
|
| 203 |
+
border-radius:50%;animation:spin .8s linear infinite;
|
| 204 |
+
}
|
| 205 |
+
@keyframes spin {
|
| 206 |
+
from { transform:rotate(0deg); }
|
| 207 |
+
to { transform:rotate(360deg); }
|
| 208 |
+
}
|
| 209 |
+
|
| 210 |
/* ββ DASHBOARD βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ */
|
| 211 |
#dashPage { display:none;padding:0; }
|
| 212 |
|
|
|
|
| 699 |
</button>
|
| 700 |
</div>
|
| 701 |
|
| 702 |
+
<!-- Loading Spinner -->
|
| 703 |
+
<div class="spinner" id="loadingSpinner">
|
| 704 |
+
<div class="spinner-circle"></div>
|
| 705 |
+
</div>
|
| 706 |
+
|
| 707 |
<!-- ββ DASHBOARD PAGE ββββββββββββββββββββββββββββββββββββββββββββββββββββββ -->
|
| 708 |
<div id="dashPage">
|
| 709 |
|
|
|
|
| 1050 |
}
|
| 1051 |
allRows = [];
|
| 1052 |
let pending = csvFiles.length + remoteCsvFiles.length;
|
| 1053 |
+
document.getElementById('loadingSpinner').classList.add('active');
|
| 1054 |
|
| 1055 |
const done = () => {
|
| 1056 |
pending--;
|
| 1057 |
+
if (pending === 0) {
|
| 1058 |
+
document.getElementById('loadingSpinner').classList.remove('active');
|
| 1059 |
+
buildDashboard();
|
| 1060 |
+
}
|
| 1061 |
};
|
| 1062 |
|
| 1063 |
csvFiles.forEach(f => {
|