Claudio Ortolina
016c4691be
Canonicalize tailwind classes
2026-04-21 14:22:41 +01:00
Claudio Ortolina
563135fcea
Remove dead nil fallback on play_count
2026-04-21 12:48:17 +01:00
Claudio Ortolina
9851a5c6bf
Use cart with barcode scanner
2026-04-20 15:46:40 +01:00
Claudio Ortolina
3f5ce060b1
Implement ML-143: Cart-style multi record import
...
Closes ML-143.
2026-04-20 15:15:29 +01:00
Claudio Ortolina
464e627a63
Remove unnecessary padding from detail views
2026-04-16 22:54:39 +01:00
Claudio Ortolina
fea1231304
Replace refresh scrobble list icon
...
Makes it for a better animation
2026-04-15 22:52:28 +01:00
Claudio Ortolina
c816f2de4a
Add scrobbled tracks search parser
...
Introduces ListeningStats.SearchParser with NimbleParsec supporting
record:, album_mbid:, artist_mbid:, artist:, album:, track: filters.
Links scrobble count on record page to filtered scrobbled tracks view.
2026-04-15 14:56:38 +01:00
Claudio Ortolina
e43bccb9bc
Extract shared index logic into LiveHelpers.IndexActions
...
Closes #150
2026-04-13 23:09:22 +01:00
Claudio Ortolina
76438360d7
Load collection summary asynchronously on mount
2026-04-13 13:11:15 +01:00
Claudio Ortolina
5512ac0837
Hide button text on mobile
2026-04-13 12:53:57 +01:00
Claudio Ortolina
3b8415d8c4
Add Collection Chat to universal search
2026-04-13 10:15:43 +01:00
Claudio Ortolina
a509248625
Wire up Chat component in CollectionLive.Index
2026-04-13 10:12:49 +01:00
Claudio Ortolina
8f8eb0a656
Enable quick actions from universal search
2026-03-29 23:07:53 +01:00
Claudio Ortolina
8c7f2f5703
Make sure toasts are synced
2026-03-24 14:01:56 +00:00
Claudio Ortolina
ca228db598
Extract RecordHelpers
...
Closes #123
2026-03-22 09:21:00 +00:00
Claudio Ortolina
ef617efe86
Refactor params parsing out of live views
...
Closes #125
2026-03-22 07:47:45 +00:00
Claudio Ortolina
47ca6fa1d2
Add canonical_tailwind to get correct formatting for tailwind classes
2026-03-20 13:02:32 +00:00
Claudio Ortolina
1001610472
First pass at having a chat count in the entity pages
2026-03-19 12:28:58 +00:00
Claudio Ortolina
5afb5f9533
Inline similar records in collection show view
2026-03-18 07:30:45 +00:00
Claudio Ortolina
63c95ff1e2
Move all chat related code under chats
2026-03-17 14:30:24 +00:00
Claudio Ortolina
a86c9ad6fc
Remove dead code
2026-03-17 13:50:34 +00:00
Claudio Ortolina
8fd8dde73d
Persist chat history
2026-03-17 13:50:01 +00:00
Claudio Ortolina
a459666126
Autosize all icon buttons
2026-03-16 15:09:05 +00:00
Claudio Ortolina
62359092d8
Uniform play icon sizes
...
Closes #121
2026-03-16 14:54:54 +00:00
Claudio Ortolina
d2cccce9dc
Uniform margins
2026-03-15 20:58:50 +00:00
Claudio Ortolina
4fb148e9db
Simplify signatures of scrobbling functions
2026-03-14 22:22:41 +00:00
Claudio Ortolina
1dd7974cc7
Use socket assigns instead of threading IDs via JS.push
...
Extends the same optimization from the previous commit to
all remaining show page handlers across collection, wishlist,
and artist LiveViews. Also simplifies bare JS.push() calls
to plain phx-click strings.
2026-03-13 16:48:12 +00:00
Claudio Ortolina
0b9d008ecb
No need to thread the record ID when we can use the record directly
2026-03-13 16:29:11 +00:00
Claudio Ortolina
ee4d2555ee
Move scrobble queries from Records to ListeningStats
...
Closes #110
2026-03-12 16:32:10 +00:00
Claudio Ortolina
d6553ae061
Uniform record detail page title logic
2026-03-12 14:58:25 +00:00
Claudio Ortolina
a6348fe647
Streamline record detail actions, and add a quick scrobble everything button
2026-03-12 08:26:25 +00:00
Claudio Ortolina
cd0101ba4a
Make page_title/2 private in all LiveViews
...
The Index modules were calling Show.page_title/2 for modal edit
routes. Inlined the logic as private functions in each Index
module and removed the now-unused Show aliases.
Closes #104
2026-03-12 07:44:39 +00:00
Claudio Ortolina
08f7565d44
Replace inspect(reason) with friendly error messages
...
Closes #81
2026-03-05 20:25:13 +00:00
Claudio Ortolina
6d72df3905
Extract apply_fallback_index to shared helper
...
Closes #92
2026-03-05 19:50:50 +00:00
Claudio Ortolina
6d451481b7
Remove obsolete color extraction strategies
2026-03-03 16:01:25 +00:00
Claudio Ortolina
1d3361c425
BETA: accurate color extractor
2026-03-03 15:41:24 +00:00
Claudio Ortolina
d5238eb35c
Stabilize record detail layout
2026-02-28 09:55:47 +00:00
Claudio Ortolina
49b7c3c955
Extract common elements from record detail pages
2026-02-28 09:46:31 +00:00
Claudio Ortolina
871f4b3554
Extract ListeningStats out of ScrobbleActivity
2026-02-27 12:16:38 +00:00
Claudio Ortolina
c6d778c1cd
Render debug information in side sheet with highlighting
2026-02-26 11:16:55 +00:00
Claudio Ortolina
0257ea8b7c
Render genres with badges
2026-02-26 10:08:08 +00:00
Claudio Ortolina
b412017ed6
Show calendar icon in record detail release date
2026-02-26 10:08:08 +00:00
Claudio Ortolina
bfbb74d601
BETA: new layout for record details page
2026-02-26 08:49:40 +00:00
Claudio Ortolina
e9b9717b08
Inline templates inside LV modules
2026-02-24 17:20:21 +00:00
Claudio Ortolina
60d81e14de
Enable chat for artists
2026-02-22 15:31:09 +00:00
Claudio Ortolina
8d38512712
Fix review blockers in record chat
...
- Add Task.Supervisor to app supervision tree
- Use tagged tuples instead of rescue for error handling
- Pass embedding_text from parent LiveView as prop
- Remove dead Completion struct fields
- Extract socket assigns before Task closure
- Log errors server-side, show generic user message
- Make build_system_prompt private, remove thin wrapper
- Extract do_send_message for retry reuse
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 10:20:58 +00:00
Claudio Ortolina
6e6e419801
Add record chat sheet with OpenAI streaming
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-22 10:13:05 +00:00
Claudio Ortolina
8862e1d374
Show record sets in records detail pages
2026-02-13 12:00:12 +00:00
Claudio Ortolina
43fd570d10
Extract pagination helpers
2026-02-09 11:09:45 +00:00
Claudio Ortolina
a7056aa8d9
Extract some reused components
2026-02-07 17:23:13 +00:00