diff --git a/src/api.js b/src/api.js index 9593111..3d9c165 100644 --- a/src/api.js +++ b/src/api.js @@ -133,12 +133,10 @@ export async function ensureArtistSortMap() { _artistSortFetch = apiCached('getArtists') .then(r => { const all = (r?.artists?.index || []).flatMap(i => i.artist || []); - console.log('[sort-debug] getArtists sample (first 3):', all.slice(0,3).map(a => ({ id: a.id, name: a.name, sortName: a.sortName }))); cacheArtistSortNames(all); - console.log('[sort-debug] _artistSortMap size:', _artistSortMap?.size); _artistSortFetch = null; }) - .catch(e => { console.warn('[sort-debug] ensureArtistSortMap error:', e); _artistSortFetch = null; }); + .catch(e => { console.warn('ensureArtistSortMap error:', e); _artistSortFetch = null; }); return _artistSortFetch; } diff --git a/src/ui/metadata.js b/src/ui/metadata.js index fbb7897..8372a52 100644 --- a/src/ui/metadata.js +++ b/src/ui/metadata.js @@ -1,6 +1,6 @@ import { S } from '../state.js'; import { esc, formatDur, toast } from '../utils.js'; -import { api, coverUrl, fetchRomajiIndex, romajiLookup, getRomajiOverrides } from '../api.js'; +import { api, coverUrl, fetchRomajiIndex, romajiLookup, getRomajiOverrides, invalidateRomajiIndex, invalidateApiCache } from '../api.js'; // Circular — safe (only used inside function bodies) import { loadPlaylists, loadPlaylistDetail } from '../views/views.js'; import { showConfirm } from './modals.js'; @@ -270,6 +270,8 @@ export async function saveMetadata() { if (!r.ok) throw new Error(d.error || `HTTP ${r.status}`); status.textContent = '✅ Gespeichert! Navidrome scannt…'; toast('✅ Metadaten gespeichert'); + invalidateRomajiIndex(); + invalidateApiCache('getArtists'); setTimeout(() => { _leaveEditMode(); closeInfoModal(); }, 1500); } catch (e) { status.textContent = '❌ Fehler: ' + e.message; diff --git a/src/views/detail.js b/src/views/detail.js index e89e235..a2b55cd 100644 --- a/src/views/detail.js +++ b/src/views/detail.js @@ -396,8 +396,6 @@ export async function loadAlbumDetail(album) { const songs = r.album?.song || []; const totalMin = Math.round(songs.reduce((s,t) => s+(t.duration||0), 0) / 60); document.getElementById('album-detail-stats').textContent = `${songs.length} Titel · ${r.album.year||''} · ${totalMin} Min.`; - console.log('[sort-debug] r.album full:', JSON.stringify(r.album)); - if (songs[0]) console.log('[sort-debug] songs[0] full:', JSON.stringify(songs[0])); // r.album has sortName (album sort tag) — use it; nav album may not have sortName document.getElementById('album-detail-name').textContent = dispAlbumName(r.album); if (songs[0]) {