fix: use r.album.sortName for album name — Navidrome only exposes sortName on album objects
Song objects carry sortName for title only, no album/artist sort fields. Album sort is only available on the album object itself (r.album.sortName). Updated loadAlbumDetail to use the fresh API response album, not the nav album. Simplified dispAlbum to not check non-existent song sort fields. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
1 parent
228f58d6d5
commit
b4ece2db85
2 files changed
+5
-7
No files matched your search
+3
-5
@@ -1,6 +1,6 @@
|
||||
import { S } from '../state.js';
|
||||
import { esc, toast } from '../utils.js';
|
||||
import { api, coverUrl, itunesSearch, itunesLookupAlbum, itunesLookupArtistSongs, itunesLookupArtistAlbums, fetchRomajiIndex, dispArtistById, dispAlbumName, dispAlbum, cacheArtistSortNames } from '../api.js';
|
||||
import { api, coverUrl, itunesSearch, itunesLookupAlbum, itunesLookupArtistSongs, itunesLookupArtistAlbums, fetchRomajiIndex, dispArtistById, dispAlbumName, cacheArtistSortNames } from '../api.js';
|
||||
import { makeCard, makeAlbumCard, makeGlobalTrackItem, makeSongItem } from '../ui/components.js';
|
||||
import { playQueue, dlSongLocal, toggleStar, parseArtists } from '../player/player.js';
|
||||
import { showCtxMenu, openDlModal } from '../ui/ui.js';
|
||||
@@ -395,11 +395,9 @@ 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.`;
|
||||
// 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]) {
|
||||
const s0 = songs[0];
|
||||
console.log('[sort-debug] song[0] ALL sort keys:', Object.fromEntries(Object.entries(s0).filter(([k]) => k.toLowerCase().includes('sort'))));
|
||||
console.log('[sort-debug] r.album ALL sort keys:', Object.fromEntries(Object.entries(r.album).filter(([k]) => k.toLowerCase().includes('sort'))));
|
||||
document.getElementById('album-detail-name').textContent = dispAlbum(songs[0]) || dispAlbumName(album);
|
||||
artistEl.innerHTML = parseArtists(songs[0])
|
||||
.map(a => `<span class="song-link" onclick="event.stopPropagation();s_goArtist(event,'${esc(a.originalName||a.name)}','${esc(a.id||'')}')">${esc(dispArtistById(a.id, a.name))}</span>`)
|
||||
.join('<span style="color:var(--text3)"> • </span>') || '';
|
||||
|
||||
Reference in new issue
Block a user