Commit Graph

1693 Commits

Author SHA1 Message Date
Claudio Ortolina 6dce8ec82e Load history for chats if there's any 2026-03-21 21:37:19 +00:00
Claudio Ortolina 83c9d710ef Change color of Top 20 release years chart 2026-03-21 20:57:40 +00:00
Claudio Ortolina ce7886743b Fix formatting of tracks in release component 2026-03-21 20:53:56 +00:00
Claudio Ortolina b85ce0831c Move filters/selectors to the side of the title 2026-03-21 18:26:39 +00:00
Claudio Ortolina 19428b85f2 Move records on this day to the left, re-position filter 2026-03-21 18:12:00 +00:00
Claudio Ortolina b12e70f471 Refactor charts to use plain HTML
More responsive, less edge cases, and simpler to maintain.
2026-03-21 18:00:06 +00:00
Claudio Ortolina a479d60da3 Link top 20 years chart 2026-03-21 09:27:53 +00:00
Claudio Ortolina 59ce580b99 Can filter records by release year 2026-03-21 09:21:21 +00:00
Claudio Ortolina 5a27fc46ac Add Top 20 Release Years widget 2026-03-21 09:02:25 +00:00
Claudio Ortolina 55aa7aa9d3 Move records on this day near top_* sections 2026-03-21 08:38:45 +00:00
Claudio Ortolina 56d9d6bfd7 Use MDEx streaming to render chat content 2026-03-20 23:42:10 +00:00
Claudio Ortolina 529a9c181d Replace PhoenixHTMLHelpers with Markdown rendering 2026-03-20 15:58:35 +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 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