ui polish and importer logging tuning

This commit is contained in:
Bryan Van Deusen
2026-01-28 09:36:59 -05:00
parent 0bf1961175
commit d0fcde38e8
12 changed files with 110 additions and 133 deletions
+13 -7
View File
@@ -1,4 +1,4 @@
// /app/static/js/modal-pagination.js
// /app/static/js/view-modal.js
document.addEventListener('DOMContentLoaded', () => {
const modal = document.getElementById('imageModal');
@@ -140,10 +140,12 @@ document.addEventListener('DOMContentLoaded', () => {
overlay.innerHTML = visibleTags.map(t => {
const displayName = getTagDisplayNameForOverlay(t.name, t.kind);
const icon = getTagIcon(t.kind);
const encodedName = encodeURIComponent(t.name);
const escapedName = t.name.replace(/"/g, '"');
const escapedDisplay = displayName.replace(/</g, '&lt;').replace(/>/g, '&gt;');
return `<a class="tag-chip" href="/gallery?tag=${encodedName}" title="Filter by ${escapedName}" onclick="event.stopPropagation()">${escapedDisplay}</a>`;
const prefix = icon !== '#' ? icon + ' ' : '#';
return `<a class="tag-chip" href="/gallery?tag=${encodedName}" title="Filter by ${escapedName}" onclick="event.stopPropagation()">${prefix}${escapedDisplay}</a>`;
}).join('');
} catch (e) {
console.error('Failed to refresh tags for image', imageId, e);
@@ -243,10 +245,8 @@ document.addEventListener('DOMContentLoaded', () => {
addToSeriesStatus.textContent = '✓ Saved';
setTimeout(() => { addToSeriesStatus.textContent = ''; }, 2000);
}
// Update the series info section with new data
showSeriesInfo(j.series_page);
// Re-enable the button
if (addToSeriesBtn) addToSeriesBtn.disabled = false;
// Fully reload series info to show updated management interface
await loadSeriesInfo(imageId);
} else {
if (addToSeriesStatus) addToSeriesStatus.textContent = j.error || 'Error';
if (addToSeriesBtn) addToSeriesBtn.disabled = false;
@@ -292,7 +292,13 @@ document.addEventListener('DOMContentLoaded', () => {
showAddToSeries(j.series_page);
} else {
// Show add-to-series option when not in a series
showAddToSeries();
// Auto-select if image has exactly one series tag
const seriesTags = j.series_tags || [];
if (seriesTags.length === 1) {
showAddToSeries({ series_tag_id: seriesTags[0].id, page_number: 1 });
} else {
showAddToSeries();
}
}
} catch {
// ignore