Track menus and Recording Source picker #43

Closed
opened 2026-10-07 19:44:15 +02:00 by SBDeveloper · 1 comment
Owner

Parent

Part of #32

What to build

Track rows show only play and favourite on hover. A ⋯ button and a right-click open one shared menu: play next, add to queue, add to Playlist, favourite, go to album, go to artist, make offline. Rows show Recordings, with a Source picker, pin and un-group in the menu. Tracks drag onto sidebar Playlists. Rows show an offline marker.

Acceptance criteria

  • One menu component used by every Track list
  • Menu actions for a Recording choose or pin a Source and un-group it
  • Offline marker visible on Tracks and Playlists
  • Old inline buttons removed
  • Verified by running the app

Blocked by

  • #29 (Recordings, ISRC)
  • #40 (sidebar)
  • #31 (offline UI wiring, so the offline marker is not built twice)
## Parent Part of #32 ## What to build Track rows show only play and favourite on hover. A `⋯` button and a right-click open one shared menu: play next, add to queue, add to Playlist, favourite, go to album, go to artist, make offline. Rows show Recordings, with a Source picker, pin and un-group in the menu. Tracks drag onto sidebar Playlists. Rows show an offline marker. ## Acceptance criteria - [ ] One menu component used by every Track list - [ ] Menu actions for a Recording choose or pin a Source and un-group it - [ ] Offline marker visible on Tracks and Playlists - [ ] Old inline buttons removed - [ ] Verified by running the app ## Blocked by - #29 (Recordings, ISRC) - #40 (sidebar) - #31 (offline UI wiring, so the offline marker is not built twice)
Author
Owner

Implemented in fd3e7c1 and the follow-up commit.

  • One shared Track menu (⋯ button and right-click) on Library, Browse, Offline, Queue and Playlist rows: play next, add to queue, add to Playlist, favourite, go to album, go to artist, make offline.
  • Library Tracks view shows Recordings; the menu has a "Play from" Source picker (pins), "Use Source ranking" (unpin) and "Un-group". Core gained ungroup_recording / regroup_recording (persisted) and Recording.ungrouped, so an un-grouped Track offers "Group with matching Tracks".
  • Old inline queue/playlist/offline/play-next buttons removed; rows show play, favourite and ⋯ on hover. Offline marker shows on Track and Playlist rows (pulses while caching).
  • Dragging onto sidebar Playlists unchanged (already worked).

Tests: cargo test (core) all green, vitest 67 passing, svelte-check clean.

Not done / caveats:

  • Not verified by running the app (acceptance criterion open).
  • Go to album / artist open a search ("artist album" / artist): Tracks carry no album/artist ids, so real pages need a plugin API change.
  • Source picker / un-group appear only in the Library Tracks view; other lists show the plain Track menu.
Implemented in fd3e7c1 and the follow-up commit. - One shared Track menu (⋯ button and right-click) on Library, Browse, Offline, Queue and Playlist rows: play next, add to queue, add to Playlist, favourite, go to album, go to artist, make offline. - Library Tracks view shows Recordings; the menu has a "Play from" Source picker (pins), "Use Source ranking" (unpin) and "Un-group". Core gained `ungroup_recording` / `regroup_recording` (persisted) and `Recording.ungrouped`, so an un-grouped Track offers "Group with matching Tracks". - Old inline queue/playlist/offline/play-next buttons removed; rows show play, favourite and ⋯ on hover. Offline marker shows on Track and Playlist rows (pulses while caching). - Dragging onto sidebar Playlists unchanged (already worked). Tests: `cargo test` (core) all green, vitest 67 passing, svelte-check clean. Not done / caveats: - **Not verified by running the app** (acceptance criterion open). - Go to album / artist open a search ("artist album" / artist): Tracks carry no album/artist ids, so real pages need a plugin API change. - Source picker / un-group appear only in the Library Tracks view; other lists show the plain Track menu.
Sign in to join this conversation.
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
SBDeveloper/medley#43
No description provided.