feat: hide-downloaded filter + reset list + config export/import
Three companion features around the 4.5.22 already-downloaded badge. 1. "Hide downloaded" toggle in the VOD filter row. Persisted to localStorage so power users who keep it on across sessions don't re-flip it on every launch. Filter applies before the title-search filter so the match counter stays consistent. 2. "Reset downloaded list" button in a new Backup & Maintenance settings card. Confirm-dialog before clearing, IPC returns the removed count for a "cleared N entries" toast. Renderer refreshes its config copy + re-renders the VOD grid so badges disappear immediately. No files are touched. 3. Config export / import via dialog.show*Dialog. Export strips client_secret (should never travel as plain text via cloud sync), tags the file with __exportVersion + __exportedAt. Import runs the JSON through normalizeConfigTemplates so out-of-range fields fall back to defaults; if the imported file lacks client_secret, the existing value is preserved. After import the renderer reloads config + relocalizes if language changed + re-renders streamers / settings form / VOD grid. DE + EN locale strings for every label, button, toast, and confirm dialog. New backupCardTitle / backupCardIntro section header in Settings. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
56d4e0904f
commit
e2c0e3a2bf
@@ -257,6 +257,10 @@
|
||||
<option value="duration_asc">Shortest first</option>
|
||||
</select>
|
||||
<span id="vodFilterCount" style="color: var(--text-secondary); font-size:12px; min-width:80px;"></span>
|
||||
<label id="vodHideDownloadedLabel" style="display:flex; align-items:center; gap:6px; color: var(--text-secondary); font-size:12px; cursor:pointer; user-select:none;" title="">
|
||||
<input type="checkbox" id="vodHideDownloadedToggle" onchange="onVodHideDownloadedChange()" style="accent-color: var(--accent); cursor:pointer;">
|
||||
<span id="vodHideDownloadedText">Hide downloaded</span>
|
||||
</label>
|
||||
</div>
|
||||
<div id="vodBulkBar" class="vod-bulk-bar" style="display:none; align-items:center; gap:10px; padding:8px 12px; background: rgba(145, 70, 255, 0.12); border:1px solid rgba(145, 70, 255, 0.4); border-radius:6px; margin-bottom:12px;">
|
||||
<span id="vodBulkCount" style="color: var(--text); font-size:13px; font-weight:600;">0 selected</span>
|
||||
@@ -558,6 +562,16 @@
|
||||
<pre id="debugLogOutput" class="log-panel">Lade...</pre>
|
||||
</div>
|
||||
|
||||
<div class="settings-card">
|
||||
<h3 id="backupCardTitle">Sicherung & Wartung</h3>
|
||||
<p id="backupCardIntro" style="color: var(--text-secondary); font-size:13px; margin-bottom:12px; line-height:1.5;">Konfiguration sichern, auf einem anderen Geraet wiederherstellen, oder die Liste der bereits heruntergeladenen VODs zuruecksetzen.</p>
|
||||
<div class="form-row" style="margin-bottom: 10px; flex-wrap: wrap;">
|
||||
<button class="btn-secondary" id="btnExportConfig" onclick="exportConfigToFile()">Konfiguration exportieren</button>
|
||||
<button class="btn-secondary" id="btnImportConfig" onclick="importConfigFromFile()">Konfiguration importieren</button>
|
||||
<button class="btn-secondary" id="btnResetDownloadedIds" onclick="resetDownloadedIds()">Downloaded-VODs zuruecksetzen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="settings-card">
|
||||
<h3 id="runtimeMetricsTitle">Runtime Metrics</h3>
|
||||
<div class="form-row" style="margin-bottom: 10px; align-items: center;">
|
||||
|
||||
Reference in New Issue
Block a user