Spaces:
Sleeping
Sleeping
Commit ·
17af3a7
1
Parent(s): 814d2c7
auto
Browse files- static/solver.html +9 -3
static/solver.html
CHANGED
|
@@ -99,7 +99,7 @@
|
|
| 99 |
</div>
|
| 100 |
<div class="config-row">
|
| 101 |
<label>Token</label>
|
| 102 |
-
<input type="password" id="solver-token" placeholder="
|
| 103 |
</div>
|
| 104 |
<p style="font-size:12px;color:#888;margin-top:8px;">Model 和 timeout 由仓库 config.json 控制。</p>
|
| 105 |
</div>
|
|
@@ -261,15 +261,20 @@
|
|
| 261 |
} catch (e) { showError('Network error: ' + e.message); }
|
| 262 |
}
|
| 263 |
|
| 264 |
-
// Load config
|
|
|
|
|
|
|
|
|
|
|
|
|
| 265 |
api('/api/config')
|
| 266 |
.then(r => r.json())
|
| 267 |
.then(data => {
|
| 268 |
document.getElementById('solver-url').value = data.solver_url;
|
|
|
|
| 269 |
})
|
| 270 |
.catch(() => {});
|
| 271 |
|
| 272 |
-
// Load saved token
|
| 273 |
const savedToken = localStorage.getItem('solver_token');
|
| 274 |
if (savedToken) {
|
| 275 |
document.getElementById('solver-token').value = savedToken;
|
|
@@ -281,6 +286,7 @@
|
|
| 281 |
async function updateConfig() {
|
| 282 |
const url = document.getElementById('solver-url').value.trim();
|
| 283 |
if (!url) return;
|
|
|
|
| 284 |
const btn = document.querySelector('.config-row button');
|
| 285 |
btn.textContent = 'Fetching...';
|
| 286 |
btn.disabled = true;
|
|
|
|
| 99 |
</div>
|
| 100 |
<div class="config-row">
|
| 101 |
<label>Token</label>
|
| 102 |
+
<input type="password" id="solver-token" placeholder="Enter password">
|
| 103 |
</div>
|
| 104 |
<p style="font-size:12px;color:#888;margin-top:8px;">Model 和 timeout 由仓库 config.json 控制。</p>
|
| 105 |
</div>
|
|
|
|
| 261 |
} catch (e) { showError('Network error: ' + e.message); }
|
| 262 |
}
|
| 263 |
|
| 264 |
+
// Load config — prefer localStorage, fallback to server
|
| 265 |
+
const savedUrl = localStorage.getItem('solver_url');
|
| 266 |
+
if (savedUrl) {
|
| 267 |
+
document.getElementById('solver-url').value = savedUrl;
|
| 268 |
+
}
|
| 269 |
api('/api/config')
|
| 270 |
.then(r => r.json())
|
| 271 |
.then(data => {
|
| 272 |
document.getElementById('solver-url').value = data.solver_url;
|
| 273 |
+
localStorage.setItem('solver_url', data.solver_url);
|
| 274 |
})
|
| 275 |
.catch(() => {});
|
| 276 |
|
| 277 |
+
// Load saved token
|
| 278 |
const savedToken = localStorage.getItem('solver_token');
|
| 279 |
if (savedToken) {
|
| 280 |
document.getElementById('solver-token').value = savedToken;
|
|
|
|
| 286 |
async function updateConfig() {
|
| 287 |
const url = document.getElementById('solver-url').value.trim();
|
| 288 |
if (!url) return;
|
| 289 |
+
localStorage.setItem('solver_url', url);
|
| 290 |
const btn = document.querySelector('.config-row button');
|
| 291 |
btn.textContent = 'Fetching...';
|
| 292 |
btn.disabled = true;
|