Add maintenance: purge orphaned source image KV entries
When a source image file is deleted without going through the API (e.g. the old bin delete bug), the KV entry remains and shows a broken image. The new maintenance action scans all source image entries, removes any whose file is missing on disk, and reports how many were cleaned up. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -2509,6 +2509,25 @@ async function init() {
|
||||
}
|
||||
});
|
||||
|
||||
document.getElementById('maint-purge-sources').addEventListener('click', async () => {
|
||||
maint_dropdown.hidden = true;
|
||||
maint_toggle.textContent = '⏳';
|
||||
maint_toggle.disabled = true;
|
||||
try {
|
||||
const result = await api.maintenance_purge_missing_sources();
|
||||
if (result.removed.length > 0) {
|
||||
all_sources = all_sources.filter(s => !result.removed.includes(s.id));
|
||||
render();
|
||||
}
|
||||
alert(`Removed ${result.removed.length} orphaned entr${result.removed.length === 1 ? 'y' : 'ies'} of ${result.total} checked.`);
|
||||
} catch (err) {
|
||||
alert(`Error: ${err.message}`);
|
||||
} finally {
|
||||
maint_toggle.textContent = '⚙';
|
||||
maint_toggle.disabled = false;
|
||||
}
|
||||
});
|
||||
|
||||
window.addEventListener('popstate', () => { parse_url(); render(); });
|
||||
|
||||
await load_all();
|
||||
|
||||
Reference in New Issue
Block a user