Claudio Ortolina
53ec2e4dc9
Remove autofocus to fix mobile scroll issue
2026-03-21 21:41:13 +00:00
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