Claudio Ortolina
7cdd502701
Streamline print/scrobble buttons
2026-03-14 08:51:19 +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
d057f29ba1
Split ScrobbleActivity into focused modules
...
Move track CRUD/listing to ListeningStats and diagnostics
to Maintenance, leaving ScrobbleActivity for scrobbling only.
Closes #111
2026-03-12 16:51:33 +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
1a62360b21
Group records in records on this day widget
2026-03-12 09:09: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
8d9bf78974
Extract shared TopByPeriod LiveComponent
...
Closes #103
2026-03-12 07:38:58 +00:00
Claudio Ortolina
159d5ad695
Include more maintenance tasks
...
- Asset tasks
- Records on this day email
2026-03-11 09:31:59 +00:00
Claudio Ortolina
fa535393e0
Fix toggling/scrobbling event handlers in scrobble anything show view
2026-03-10 20:04:39 +00:00
Claudio Ortolina
4584b7bcb8
Remove drop down from record set items
...
Have just a bin icon, and rely on drag and drop.
This solves a massive performance issue with the page, which is
traceable to the Fluxon dropdowns, particularly the Class.merge logic
used to merge Tailwind classes
2026-03-08 13:21:33 +00:00
Claudio Ortolina
d76471b03e
Use MDEx to consolidate Markdown handling
2026-03-08 09:31:09 +00:00
Claudio Ortolina
e4d03a19e4
Compute in advance all needed assigns in record_set_card
...
Theory is that this makes change tracking easier, and therefore
rendering more performant.
2026-03-07 23:52:32 +00:00
Claudio Ortolina
52815bde2f
When doing markdown to HTML, sanitize HTML
...
Closes #101
Closes #102
2026-03-07 19:05:37 +00:00
Claudio Ortolina
2e3732e38b
Apply all necessary exclusions to sobelow findings
2026-03-07 18:37:24 +00:00
Claudio Ortolina
effcc3966c
Fix id in record set show page
2026-03-06 20:20:48 +00:00
Claudio Ortolina
c9ee94bd4a
Key record set item ids during rendering
...
Makes live render faster by 20%
2026-03-06 20:02:58 +00:00
Claudio Ortolina
436274a8ef
Extract internal record set card component
2026-03-06 17:02:19 +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
d4376e5fa0
Extract DB queries from MaintenanceLive into context
2026-03-05 18:01:50 +00:00
Claudio Ortolina
4b1f6bb245
Fix inconsistent toast arity in form components
...
Closes #94
2026-03-05 17:06:23 +00:00
Claudio Ortolina
eb8a00ab54
Replace String.to_integer with safe Integer.parse
...
Use Integer.parse/1 instead of String.to_integer/1 on user-supplied
and external API input to prevent ArgumentError crashes on non-numeric
values. Adds fallback defaults or nil returns at each call site.
2026-03-05 14:27:37 +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
88e09a6ad8
Handle errors when storing assets
2026-03-03 08:27:05 +00:00
Claudio Ortolina
a0df11d26f
Use new style for MB link and copy button in artist page
2026-03-01 20:19:46 +00:00
Claudio Ortolina
6836cf5c9e
Integrate refresh of Last.fm data (both per artist and batch)
2026-03-01 09:46:27 +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
3635e113c8
Add Error Tracker link to main menu
2026-02-26 22:07:47 +00:00
Claudio Ortolina
a76ae7169f
Enable universal navigation
2026-02-26 15:10:40 +00:00
Claudio Ortolina
be3a3bbb1c
Load record sets as streams
2026-02-26 14:29:31 +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
65a2305f47
Move database backup action to maintenance page
2026-02-24 16:53:44 +00:00
Claudio Ortolina
60d81e14de
Enable chat for artists
2026-02-22 15:31:09 +00:00
Claudio Ortolina
b9ee7a6ce9
Load record embedding for wishlisted records
2026-02-22 15:14:38 +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
5868fa0219
Display purchased on in record sets record picker
2026-02-21 21:52:46 +00:00
Claudio Ortolina
dd20aaf60d
Replace px units
2026-02-19 10:40:44 +00:00
Claudio Ortolina
c19ca503e5
Remove TODOs around replacing components
2026-02-17 08:09:00 +00:00
Claudio Ortolina
713fef2c81
Use grids for record set items, and fix some button issues
2026-02-15 20:06:09 +00:00