Commit Graph

1681 Commits

Author SHA1 Message Date
Claudio Ortolina 47ca6fa1d2 Add canonical_tailwind to get correct formatting for tailwind classes 2026-03-20 13:02:32 +00:00
Claudio Ortolina ccc929e939 Deduplicate tracks in ListeningStats queries
When multiple records share MusicBrainz release IDs, the left joins in
ListeningStats fan out — producing duplicate rows per scrobbled track.
Fix by grouping release subqueries on release_id with MIN(record_id)
before joining, so each release maps to exactly one record.
2026-03-20 12:48:40 +00:00
Claudio Ortolina ec318607f1 Fix button/icon sizes in record set show 2026-03-20 10:35:52 +00:00
Claudio Ortolina 715a1e1f69 Consolidate handling of artist joinphrases 2026-03-19 15:09:34 +00:00
Claudio Ortolina 7d55dfd9ae Have the AI always provide at least one link when answering questions 2026-03-19 14:30:04 +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 97f0c5bfc3 Improve scrobbled tracks/album metadata tooltips design 2026-03-18 18:31:55 +00:00
Claudio Ortolina 1ee4d3465a Move /dev/maintenance to /maintenance 2026-03-18 07:44:22 +00:00
Claudio Ortolina 5afb5f9533 Inline similar records in collection show view 2026-03-18 07:30:45 +00:00
Claudio Ortolina 16bcb1f36e Use patch instead of navigate for similar records 2026-03-18 07:25:38 +00:00
Claudio Ortolina 63c95ff1e2 Move all chat related code under chats 2026-03-17 14:30:24 +00:00
Claudio Ortolina 5eb7ccd837 Fix overlapping buttons in chat 2026-03-17 14:10:31 +00:00
Claudio Ortolina 3f95aee7a7 Cap message content 2026-03-17 13:51:38 +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 5a418248ad Use same gaps in stats page
Closes #120
2026-03-16 19:30:52 +00:00
Claudio Ortolina 270762cdb6 Move maintenance menu item, remove redundant title 2026-03-16 19:28:47 +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 3bae241d74 Uniform card corners/shadows
Closes #119
2026-03-16 14:51:04 +00:00
Claudio Ortolina 244e7734a5 Unify genre tag styling in record edit form
Use Fluxon .badge component instead of custom spans to match
the read view styling.

Closes #115
2026-03-16 14:34:35 +00:00
Claudio Ortolina 4370391265 Remove useless space-y directive 2026-03-16 14:15:45 +00:00
Claudio Ortolina 74a2b9bce8 Update and uniform styles for scrobble rules and online templates lists 2026-03-16 12:43:07 +00:00
Claudio Ortolina f1e3b22f91 Make online store templates searchable 2026-03-16 11:56:39 +00:00
Claudio Ortolina 654b172ddb Fix UI inconsistencies across templates
- Replace .separator with .dropdown_separator in 4 dropdown menus
- Change gray-* to zinc-* color classes in online store templates
- Wrap hardcoded page titles in gettext() in online store templates
- Add consistent dark:text-zinc-200 to maintenance h3 subsections
- Add text-zinc-900 dark:text-zinc-200 to scrobble section headers
- Fix heading hierarchy (h1/h2 → h2/h3) in record set items
- Align artist form modal header to text-lg font-semibold
- Use size="xs" prop instead of class override on format badge
- Add external link icon to wishlist online store buttons
2026-03-16 11:37:29 +00:00
Claudio Ortolina 028f111300 Stabilize rate limiter tests by using dependency injection 2026-03-16 11:21:24 +00:00
Claudio Ortolina 4a2b7f4e03 Extract dropdown_nav/1 component in Layouts 2026-03-16 11:13:45 +00:00
Claudio Ortolina d59ee157db Add current section border to top right menu sections 2026-03-16 11:09:31 +00:00
Claudio Ortolina 3fb6c93d9d Add sorting optoins to scrobble rules page 2026-03-16 08:03:47 +00:00
Claudio Ortolina 6d6cf21047 Uniform scrobble rules layout 2026-03-16 08:00:17 +00:00
Claudio Ortolina 43b054b34a Search scrobble rules, improved layout 2026-03-16 07:58:21 +00:00
Claudio Ortolina ac2758aabf Fix more margins 2026-03-15 21:09:52 +00:00
Claudio Ortolina 805f93cd3c Improve wording and layout of scrobbled tracks order buttons 2026-03-15 21:03:11 +00:00
Claudio Ortolina d2cccce9dc Uniform margins 2026-03-15 20:58:50 +00:00
Claudio Ortolina d815928f91 Fix SearchParser catch-all wiping valid filters
The `_, %{}` catch-all in `normalize/1` matched any map, so an
invalid filter (e.g. `format:vin`) would reset the accumulator
even when valid filters were already collected. Add a `map_size`
guard so it only returns `%{query: ""}` for a truly empty
accumulator. Also update the moduledoc.
2026-03-15 18:56:30 +00:00
Claudio Ortolina 4fb148e9db Simplify signatures of scrobbling functions 2026-03-14 22:22:41 +00:00
Claudio Ortolina 69ff926aba Allow WASM evaluation on prod 2026-03-14 18:02:27 +00:00
Claudio Ortolina 2dd6f10a7f Fix CSP error for barcode detection 2026-03-14 17:38:04 +00:00
Claudio Ortolina 4d1ac9652c Link the scrobbled count in stats 2026-03-14 09:59:09 +00:00
Claudio Ortolina 7cdd502701 Streamline print/scrobble buttons 2026-03-14 08:51:19 +00:00
Claudio Ortolina 3d66d7a6d7 Remove unnecessary spacing in the application footer 2026-03-14 07:17:08 +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 be563d8fca Streamline record set items reordering query 2026-03-13 16:26:01 +00:00
Claudio Ortolina 002c81d3b8 Load Tidewave only in dev 2026-03-13 15:13:37 +00:00
Claudio Ortolina 854a6e1816 Allow worker blob URLs in CSP directives
canvas-confetti creates web workers from blob URLs,
which requires an explicit worker-src directive.
2026-03-13 15:01:28 +00:00
Claudio Ortolina 145c5c288c Allow loading img blobs in csp directives 2026-03-13 14:47:35 +00:00
Claudio Ortolina 9e1dbfd530 Re-enable Credo ModuleDoc check
Closes #108
2026-03-13 10:52:01 +00:00
Claudio Ortolina 4977f4631c Show grouped records in records on this day email 2026-03-12 17:23:22 +00:00
Claudio Ortolina dbc6d029b4 Move collected artist IDs query to Collection context
Closes #112
2026-03-12 16:58:31 +00:00