From db4a30085bf53e1e2e5abbd552940dbce0d5b7dc Mon Sep 17 00:00:00 2001 From: Byron Gamatos Date: Tue, 23 Jun 2026 18:05:41 +0200 Subject: [PATCH] feat(v3 library): clickable arrangement badges in tree view (#582) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The v3 library tree rows showed no arrangement badges, unlike the grid/card view. Render the same clickable chips in tree rows so both views match, and clicking a specific arrangement opens THAT arrangement in the highway. Extract the grid's chip markup into a shared arrChipsHtml(song) (one ').join(''); + } + function songCard(song) { const fav = song.favorite; const key = cardKey(song); @@ -410,8 +421,7 @@ const checkbox = state.selectMode ? '' : ''; - const arrChips = (song.arrangements || []).slice(0, 4).map((a) => - '').join(''); + const arrChips = arrChipsHtml(song); // Plugin-contributed card actions placed 'inline' (in the hover action // row) or 'overlay' (centered over the art). Menu-placed actions live in // the ⋮ menu (openCardMenu); rendering these here means plugins using @@ -720,10 +730,11 @@ '' + esc(a.name) + '' + esc(a.song_count) + '' + '
' + (a.albums || []).map((al) => '
' + esc(al.name || 'Unknown') + '
' + - (al.songs || []).map((s) => { const k = cardKey(s); const fl = fmtLabel(s); return ( + (al.songs || []).map((s) => { const k = cardKey(s); const fl = fmtLabel(s); const chips = arrChipsHtml(s); return ( '
' + '' + '' + esc(s.title) + '' + + (chips ? '' : '') + (fl ? '' + fl + '' : '') + accuracyBadge(k, 'tree') + '' +