Commit Graph

500 Commits

Author SHA1 Message Date
Claudio Ortolina 69e71191b0 In record list, move format, type and purchase date to new line 2025-01-01 21:08:20 +00:00
Claudio Ortolina d194a54760 Adds API to return a random record from the collection 2025-01-01 19:28:49 +00:00
Claudio Ortolina 5cd57fdde4 Install Error Tracker to track production issues 2025-01-01 17:11:17 +00:00
Claudio Ortolina 8bd7197d18 Show purchase date in collection view 2025-01-01 16:45:43 +00:00
Claudio Ortolina 6a9d54f735 Link to wishlisted albums in scrobble activity 2025-01-01 16:15:02 +00:00
Claudio Ortolina 5973206da3 Link to collected albums in scrobble activity 2025-01-01 16:11:14 +00:00
Claudio Ortolina 48a4b308cc Move comment to right spot 2025-01-01 11:21:03 +00:00
Claudio Ortolina c1ea5bd69c Extract cover cache duration 2024-12-31 15:58:35 +00:00
Claudio Ortolina f58c82e1fd Refactor cover controller to reuse common pieces 2024-12-31 15:54:49 +00:00
Claudio Ortolina 97533416f7 Support arbitrary resizing in cover controller 2024-12-31 11:58:30 +00:00
Claudio Ortolina 6a51251d55 Consolidate hashing into Cover module 2024-12-31 11:57:33 +00:00
Claudio Ortolina 68b2d48228 Return thumb_url in latest record response 2024-12-31 11:39:36 +00:00
Claudio Ortolina 467961128b Validate order attribute values in pagination component 2024-12-29 21:22:42 +00:00
Claudio Ortolina 65b4f5c06b Fix flash colors in dark mode 2024-12-29 21:06:23 +00:00
Claudio Ortolina 85b403817f Move model definition into completion struct 2024-12-29 20:58:09 +00:00
Claudio Ortolina c7e1be2f2f Fix hover and active states for order selector 2024-12-29 16:55:47 +00:00
Claudio Ortolina bb560e4356 Fix alignment of sorting options and count 2024-12-29 15:50:30 +00:00
Claudio Ortolina 6427710029 Enable sorting options in collection view 2024-12-29 15:47:37 +00:00
Claudio Ortolina 1534d28c9e Wire buttons with view 2024-12-29 15:31:26 +00:00
Claudio Ortolina 48e2f4e2e3 Add collection sorting buttons (inactive) 2024-12-29 15:22:51 +00:00
Claudio Ortolina 17d1a87f3c Use sum_by instead of plain reduce
Makes it for slightly simpler code.
2024-12-28 13:37:55 +00:00
Claudio Ortolina 48d8590c9b Remove duplication in stats live lifecycle 2024-12-27 21:04:07 +00:00
Claudio Ortolina b503662c2e Reduce size of stats live socket
No need to store all artists IDs in the socket, instead it's enough to
intersect them with the scrobbled artist IDs.
2024-12-27 20:27:32 +00:00
Claudio Ortolina db57195a0a Map Last.fm error codes to error atoms 2024-12-27 19:54:10 +00:00
Claudio Ortolina 1a0e505e51 Rework error messages for failed playcount/bio fetch 2024-12-27 17:57:36 +00:00
Claudio Ortolina 2e8d72fe8f Rename "Basics" -> "Records" in stats page 2024-12-27 08:33:24 +00:00
Claudio Ortolina 6bcce558c4 Restyle flash messages 2024-12-25 19:22:38 +00:00
Claudio Ortolina 2e73e810ea Remove flash message for client error 2024-12-25 19:08:43 +00:00
Claudio Ortolina 2571d1dfd3 Use link+navigate instead of a+href
Makes application more performant as it avoids re-establishing a
connection.
2024-12-24 14:42:58 +00:00
Claudio Ortolina e7a8a2c019 No need to provide a "" default 2024-12-24 14:15:47 +00:00
Claudio Ortolina 326b226d96 Remove unnecessary fallback to empty image version string
Images always have a hash now, so fallback is not needed anymore.
2024-12-23 23:30:57 +00:00
Claudio Ortolina eabae0654f Add missing version parameter to stats artwork image tag 2024-12-23 23:30:14 +00:00
Claudio Ortolina b88b77cb78 Group status labels in scrobble activity 2024-12-23 17:49:15 +00:00
Claudio Ortolina 1102c40d16 Remove back links from detail views
Never used them, can be removed
2024-12-23 17:16:27 +00:00
Claudio Ortolina f71fa6fa25 Make search smaller on desktop, full width on mobile 2024-12-23 17:11:39 +00:00
Claudio Ortolina 8b877e7ede Shrink input text size at smallest viewport 2024-12-23 17:08:44 +00:00
Claudio Ortolina fe05efb06d Prevent pinch to zoom
I wouldn't normally do this, but I'm the only user and I'm ok with it.
2024-12-23 17:04:31 +00:00
Claudio Ortolina 3e07b50bdf Add red accent to navigation menu 2024-12-23 16:38:04 +00:00
Claudio Ortolina 97f26e0cd2 Serve covers under API namespace as well 2024-12-22 22:15:24 +00:00
Claudio Ortolina f1af38606a Protect API behind a bearer token 2024-12-22 18:32:04 +00:00
Claudio Ortolina c18379801f Rename function 2024-12-22 18:23:15 +00:00
Claudio Ortolina cf3761ca79 Fold RequireLogin plug into Auth module 2024-12-22 16:12:31 +00:00
Claudio Ortolina 341d276db5 Include artists and cover in latest record JSON 2024-12-22 15:55:41 +00:00
Claudio Ortolina 53e8d88b6a Rename auth_password -> login_password 2024-12-21 14:57:44 +00:00
Claudio Ortolina 7214597aeb Update translations 2024-12-21 14:57:44 +00:00
Claudio Ortolina 98087ae568 Extract MusicLibraryWeb.Auth module 2024-12-21 14:48:32 +00:00
Claudio Ortolina 4f456322fc Bootstrap the /api namespace 2024-12-21 14:38:39 +00:00
Claudio Ortolina 4be2330891 Fix prompt to avoid the result being returned in a code block
Not sure why this is needed, considering that the API call clearly
specifies the `json_object` response format.
2024-12-19 21:05:02 +00:00
Claudio Ortolina 9dce1cacb9 Where possible, use built-in JSON instead of Jason
Note that it's not possible to replace any call where we encode and
pretty print, as JSON doesn't have such functionality.
2024-12-19 20:18:09 +00:00
Claudio Ortolina 45df749200 No need to create a range when total_pages is 0
Fixes:

warning: Range.new/2 and first..last default to a step of -1 when last < first.
Use Range.new(first, last, -1) or first..last//-1, or pass 1 if that was your intention
2024-12-19 19:07:08 +00:00