Commit Graph
303 Commits
Author SHA1 Message Date
Admin b4b08aa3fd feat(backend): add playlist cover endpoint and relax description validation
Adds GET /playlists/{id}/cover (mirrors the track cover endpoint) so
uploaded playlist pictures can actually be served. Also drops the
NotEmpty rule on playlist description, which rejected the blank
description the frontend treats as optional; CreatePlayList now falls
back to the domain's default text instead.
2026-07-15 16:09:40 +02:00
Admin a10426b3f1 feat(frontend): hide playlists if the user doesn't have any 2026-07-14 19:24:41 +02:00
Admin f101ce69a0 Changes 2026-07-14 19:11:58 +02:00
Admin cb7aa32567 fix(frontend): change max recent tracks 2026-07-14 18:51:42 +02:00
Admin 92aec73b9d feat(frontend): persistent player volume 2026-07-14 18:48:57 +02:00
Admin 79119fe3fa style(frontend): drop card background on explore results, match home track style 2026-07-14 14:30:19 +02:00
Admin 26f2c92bec style(frontend): make explore search bar span full width 2026-07-14 14:28:54 +02:00
Admin 1e21c6dad9 feat(frontend): search tracks live as you type on explore page 2026-07-14 14:27:38 +02:00
Admin 2208453775 style(frontend): restore original card sizes and stretch all home grids full width 2026-07-14 14:24:28 +02:00
Admin d05dc74f90 style(frontend): let recently-played cards fill the full page width 2026-07-14 14:22:55 +02:00
Admin fc298ac1dd style(frontend): enlarge recently-played section on home page 2026-07-14 14:20:51 +02:00
Admin 597fc7387a fix(frontend): give duration and remove-track their own grid columns 2026-07-14 14:11:36 +02:00
Admin 054160d68b style(frontend): move remove-track button to the far right of the row 2026-07-14 14:08:45 +02:00
Admin 815aca64bc fix(frontend): contain NowPlaying indicator inside playlist play button 2026-07-14 14:06:48 +02:00
Admin 095088fb65 style(frontend): polish playlist page header, back link and action buttons 2026-07-14 14:04:31 +02:00
Admin c4aea1f7a1 feat(frontend): show track duration in a Spotify-style table on playlist page 2026-07-14 14:00:23 +02:00
Admin 4ebcd69eeb feat(backend): expose track duration and listen count in track response 2026-07-14 13:54:12 +02:00
Admin 877f2c42a4 refactor(backend): rename AudioTranscoderConfiguration/Service to AudioConfiguration/AudioService 2026-07-14 13:54:08 +02:00
Admin 7ac105f113 refactor(backend): return AudioTranscodeResult with status code and duration 2026-07-14 13:49:28 +02:00
Admin 71c0bfa418 feat(backend): add migration for Track.Duration column 2026-07-14 13:48:05 +02:00
Admin 1711012541 feat(backend): extract audio duration during transcoding and persist to track 2026-07-14 13:47:52 +02:00
Admin d889aa63c5 chore(frontend): allow dev server to fall back to a free port 2026-07-14 13:26:11 +02:00
Admin 5905f56e84 feat(frontend): show recently played from listening history on home 2026-07-14 13:26:08 +02:00
Admin 5fe0f6ff32 fix(backend): order listening history by recency and cap to 15 tracks 2026-07-14 13:26:04 +02:00
Admin 2abca7f08d fix(frontend): apply display font to page titles missing it 2026-07-14 13:23:56 +02:00
Admin b372028e0a refactor(frontend): drop downloads/import nav, promote library above upload 2026-07-14 13:23:51 +02:00
Admin e4830ad73f feat(frontend): drive seek bar with rAF for smooth playback progress 2026-07-14 13:23:44 +02:00
Admin 9b866cb5f1 docs: add project README and frontend pages notes 2026-07-14 04:55:44 +02:00
Admin 0f776078f3 refactor(frontend): tidy Navbar, Footer and document shell
Align Navbar and Footer with the new design tokens and enable stable scrollbar gutter on the document.
2026-07-14 04:55:44 +02:00
Admin dd41d23144 chore(frontend): add font/icon deps and dev config
Add @fontsource-variable (manrope/sora/inter), @lucide/svelte and @types/node, mark @lucide/svelte as noExternal for SSR, and add the dev-server launch config.
2026-07-14 04:55:39 +02:00
Admin c544a6c78c feat(frontend): rework home page with recent, latest and playlists
Add SSR data loading for the home page and rebuild its layout (greeting hero, recently played, new releases, user playlists).
2026-07-14 04:55:12 +02:00
Admin 0b4e61b3ab feat(frontend): add (app) route group and rework auth routing
Move authenticated pages under an (app) group with a Sidebar shell, add /auth/login and page-based /login, drop the old explore page and login +server endpoint, and add the server upload helper.
2026-07-14 04:55:04 +02:00
Admin 1f531ea70e feat(frontend): rework audio player and shared UI components
Expand the player store, split player controls (transport, seek, volume, track info), add Cover/PlaylistArt/NowPlaying UI primitives and a cover image proxy route.
2026-07-14 04:54:51 +02:00
Admin 458c20335e feat(frontend): add theme tokens and dynamic accent palette
Introduce theme.css design tokens, color/palette helpers, and global layout styles (scrollbars, animations, home gradient).
2026-07-14 04:54:45 +02:00
Admin 54484d9fd4 feat(tracks): add track cover endpoint
Serve cover images via GET /tracks/{id}/cover with a size parameter, streamed from storage with long-lived immutable cache headers.
2026-07-14 04:54:40 +02:00
Admin 5c1edc0dc7 feat(tracks): add user listening history
Record a listening-history entry when a stream ticket is issued and expose GET /users/{id}/listening-history to read it back.
2026-07-14 04:54:35 +02:00
Admin bbc115ca84 feat(frontend): play tracks from the explore page 2026-07-06 02:40:44 +02:00
Admin c04d79beb0 feat(frontend): music player component with separated controls and stream proxy 2026-07-06 02:40:44 +02:00
Admin e34347e450 refactor(application): drop redundant default values on query records 2026-07-06 02:23:35 +02:00
Admin 7aa5350484 fix(playlists): reject empty/whitespace name and description on update 2026-07-06 02:20:47 +02:00
Admin 1769df12d5 refactor(search): treat empty search strings as no filter (string.IsNullOrEmpty) 2026-07-06 02:12:58 +02:00
Admin 7f439b168b feat(frontend): add /explore page with track listing and name search 2026-07-06 02:05:47 +02:00
Admin 5cca9a80dd chore(frontend): regenerate api types with track name search 2026-07-06 02:04:04 +02:00
Admin fabd26e42f feat(tracks): support search by name in GetTracks 2026-07-06 02:04:01 +02:00
Admin 047d5da319 chore(frontend): generate backend API types from live OpenAPI spec 2026-07-06 01:54:28 +02:00
Admin 72a7d13f6d feat(frontend): add typed backend API client (openapi-fetch) with codegen script 2026-07-06 01:52:25 +02:00
Admin dadeac3571 refactor(frontend): require refresh/id token in Session, validate at callback boundary 2026-07-05 23:57:19 +02:00
Admin 757c74b899 refactor(frontend): restrict insecure HTTP issuer to dev / explicit opt-in 2026-07-05 23:56:35 +02:00
Admin b9d14412e6 refactor(frontend): make SessionUser fields non-null and normalize claims at boundary 2026-07-05 23:45:18 +02:00
Admin 539fad1d22 refactor(frontend): centralize configurable auth/session values in config.ts 2026-07-05 23:43:50 +02:00