feat(music): complete music UI overhaul - bugs, UX, missing features & styling

- Fix dead buttons (fa-edit/fa-share → fa-pen/fa-share-alt matching icon registry)
- Fix volume icon, shuffle bias, queue removal, repeat-one CSS
- Replace native prompt/confirm/alert with Modal system
- Add click-to-select, dblclick-to-play, playback error notifications
- Add loading indicators, success toasts, close player button
- Implement remove track from playlist (DELETE endpoint)
- Implement drag & drop track reorder (PUT reorder endpoint)
- Implement manage shares dialog (GET/DELETE shares endpoints)
- Implement cover art upload & display (cover_file_id in UpdatePlaylistDto)
- Implement public/private toggle (is_public in UpdatePlaylistDto)
- Mount get_audio_metadata route in backend routes.rs
- Redesign empty state: full-width centered onboarding when 0 playlists
- Move create button into sidebar header as compact + button
- Add music.css to build.rs production CSS bundle
- Add 16+ i18n keys in en.json and es.json
- Add CSS for drag handles, track remove, cover overlay, shares dialog, public badge
This commit is contained in:
Diocrafts
2026-04-11 10:59:01 +02:00
parent 6880edf641
commit 3ce8ec25d6
7 changed files with 1166 additions and 241 deletions
+18 -1
View File
@@ -24,6 +24,7 @@
"create_playlist": "Create Playlist",
"playlists": "Playlists",
"no_playlists": "No playlists yet",
"empty_hint": "Create your first playlist to start organizing your music",
"select_playlist": "Select a playlist",
"select_hint": "Choose a playlist from the sidebar or create a new one",
"add_tracks": "Add Tracks",
@@ -62,7 +63,23 @@
"artist": "Artist",
"album": "Album",
"tracks": "tracks",
"error": "Error"
"share_with_user": "User ID or email",
"playback_error": "Playback failed",
"error": "Error",
"remove": "Remove",
"track_removed": "Track removed",
"manage_shares": "Manage Shares",
"no_shares": "No shares yet",
"remove_share": "Remove share",
"can_write": "Can edit",
"read_only": "Read only",
"public": "Public",
"private": "Private",
"toggle_public": "Visibility",
"make_public": "Make public",
"make_private": "Make private",
"set_cover": "Set cover",
"cover_updated": "Cover updated"
},
"actions": {
"search": "Search files...",