diff --git a/src/components.js b/src/components.js
index 9a39b32..826939f 100644
--- a/src/components.js
+++ b/src/components.js
@@ -27,7 +27,7 @@ export function makeAlbumCard(a) {
}
// ─── SONG LIST ITEM (library) ───
-export function makeSongItem(s, idx, list, { noArtistLink = false, noAlbumLink = false } = {}) {
+export function makeSongItem(s, idx, list, { noArtistLink = false } = {}) {
const el = document.createElement('div');
if(s.starred && !s._starred) s._starred = true;
el.className = 'song-item' + (S.queue[S.qIdx]?.id === s.id ? ' playing' : '');
@@ -40,10 +40,7 @@ export function makeSongItem(s, idx, list, { noArtistLink = false, noAlbumLink =
: `${esc(a.name)}`
).join(' • ')
: '';
- // Hide album in subtitle when it's identical to the track title (common for singles)
- const albumHtml = !noAlbumLink && (s.albumId||s.album) && s.album !== s.title
- ? ` · ${esc(s.album||'')}`
- : '';
+
const playsHtml = S.cfg.showPlayCount
? `${s.playCount ? s.playCount.toLocaleString() + '×' : '—'}`
: '';
@@ -51,7 +48,7 @@ export function makeSongItem(s, idx, list, { noArtistLink = false, noAlbumLink =
${cv ? `

` : '
♪
'}
${esc(s.title)}
-
${artistHtml}${albumHtml}
+
${artistHtml}
${formatDur(s.duration)}
diff --git a/src/ui.js b/src/ui.js
index b7499d7..aa711be 100644
--- a/src/ui.js
+++ b/src/ui.js
@@ -135,6 +135,7 @@ export function showCtxMenu(e, song, list, idx) {
.catch(err => toast('Fehler: ' + err.message));
}},
{ sep: true },
+ { icon: '💿', label: 'Zum Album', fn: () => song.albumId && navigate('album-detail', { id: song.albumId, name: song.album||'', artist: song.artist||'', artistId: song.artistId||'', coverArt: song.coverArt||'' }) },
{ icon: 'ℹ', label: 'Song-Info', fn: () => showSongInfo(song) },
{ icon: '⬇', label: 'Herunterladen', fn: () => dlSongLocal(song) },
];
diff --git a/src/views.js b/src/views.js
index d4f417a..24bb497 100644
--- a/src/views.js
+++ b/src/views.js
@@ -644,7 +644,7 @@ export async function loadAlbumDetail(album) {
toast(`⬇ ${songs.length} Titel Download gestartet`);
};
sl.innerHTML = '';
- songs.forEach((s,i) => sl.appendChild(makeSongItem(s, i, songs, { noAlbumLink: true })));
+ songs.forEach((s,i) => sl.appendChild(makeSongItem(s, i, songs)));
} catch(e) { sl.innerHTML = `
${e.message}
`; }
}
@@ -711,7 +711,7 @@ export async function loadPlaylistDetail(pl) {
sl.innerHTML = '';
const plSearch = document.getElementById('playlist-search');
if (plSearch) plSearch.value = '';
- songs.forEach((s,i) => sl.appendChild(makeSongItem(s, i, songs, { noArtistLink: true, noAlbumLink: true })));
+ songs.forEach((s,i) => sl.appendChild(makeSongItem(s, i, songs, { noArtistLink: true })));
_setupReorderMode(sl, songs, S._currentPlaylist);
} catch(e) { sl.innerHTML = `
${e.message}
`; }
}
@@ -880,7 +880,7 @@ export async function loadStarred(sort = _starredSort) {
else if (sort === 'plays') songs.sort((a, b) => (b.playCount||0) - (a.playCount||0));
el.innerHTML = '';
if(!songs.length) { el.innerHTML = '
'; return; }
- songs.forEach((s,i) => el.appendChild(makeSongItem(s, i, songs, { noArtistLink: true, noAlbumLink: true })));
+ songs.forEach((s,i) => el.appendChild(makeSongItem(s, i, songs, { noArtistLink: true })));
} catch(e) { el.innerHTML = `
${e.message}
`; }
}