()
| 562 | } |
| 563 | |
| 564 | async function saveAutoQuickRefreshSettings() { |
| 565 | if (!elements.saveAutoQuickRefreshBtn) return; |
| 566 | const enabled = Boolean(elements.autoQuickRefreshEnabled?.checked); |
| 567 | const interval = Math.max(5, Math.min(1440, Number(elements.autoQuickRefreshInterval?.value || 30))); |
| 568 | const retryLimit = Math.max(0, Math.min(5, Number(elements.autoQuickRefreshRetry?.value || 2))); |
| 569 | const runNow = enabled && Boolean(elements.autoQuickRefreshRunNow?.checked); |
| 570 | |
| 571 | const btn = elements.saveAutoQuickRefreshBtn; |
| 572 | const originalText = btn.textContent; |
| 573 | btn.disabled = true; |
| 574 | btn.textContent = '保存中...'; |
| 575 | |
| 576 | try { |
| 577 | await api.post('/settings/auto-quick-refresh', { |
| 578 | enabled, |
| 579 | interval_minutes: interval, |
| 580 | retry_limit: retryLimit, |
| 581 | run_now: runNow, |
| 582 | }, { |
| 583 | requestKey: 'settings:auto-quick-refresh:update', |
| 584 | cancelPrevious: true, |
| 585 | timeoutMs: 20000, |
| 586 | retry: 0, |
| 587 | }); |
| 588 | toast.success(runNow ? '设置已保存,已触发一次立即执行' : '定时自动一键刷新设置已保存'); |
| 589 | autoQuickRefreshFormDirty = false; |
| 590 | closeAutoQuickRefreshModal(); |
| 591 | await loadAutoQuickRefreshSettings({ silent: true }); |
| 592 | } catch (error) { |
| 593 | toast.error('保存定时设置失败: ' + error.message); |
| 594 | } finally { |
| 595 | btn.disabled = false; |
| 596 | btn.textContent = originalText; |
| 597 | } |
| 598 | } |
| 599 | |
| 600 | // 加载统计信息 |
| 601 | async function loadStats() { |
nothing calls this directly
no test coverage detected