Commit Graph
75 Commits
Author SHA1 Message Date
Dark-Alex-17 9822597b56 fix(radarr): model the movie status as an enum
Movie.status and AddMovieSearchResult.status were bare Strings compared
against the literal "released" in the row-style decorator and in the
movie details style function. They now carry a MovieStatus enum with the
five values Radarr actually sends (tba, announced, inCinemas, released,
deleted), shaped like MinimumAvailability and DownloadStatus, and guarded
with from_json_or_default so an unrecognised status degrades to Tba
instead of failing the whole fetch.

Radarr never sends "Downloaded" as a movie status; its web UI derives
that label from released plus hasFile. Every fixture that carried
"Downloaded" now holds released, the value it was standing in for, so
none of them degrade to the default through the guard.

The status is never rendered as text in the Radarr tree, so no snapshot
changes; the CLI JSON output is unchanged since the enum serializes to
the same camelCase strings. The style_from_download_status tests now
exercise the unreleased arm, which previously had no case, in place of a
duplicated unmonitored-missing row.
2026-09-17 18:06:37 -06:00
Dark-Alex-17 7b6d595397 fix(radarr): model the download status as a DownloadStatus enum
Radarr was the only tree still holding DownloadRecord.status as a bare
String and comparing it against literals. It now carries its own
DownloadStatus enum, shaped exactly like the Sonarr, Lidarr and Readarr
copies, and is guarded with from_json_or_default so an unrecognised
status degrades to Unknown instead of failing the whole queue fetch.

The row-style decorator and get_movie_status compare against the enum
variants. The status cell is never rendered in the Radarr tree, so no
snapshot changes; the CLI JSON output is unchanged for every real value
since the enum serializes to the same camelCase strings.
2026-09-17 15:46:49 -06:00
Dark-Alex-17 fdc331865e feat: Full support for filtering disks and aggregating root folders in the UI's 'Stats' block 2026-01-26 11:10:59 -07:00
Dark-Alex-17 f388dccc08 feat: proper collapsing of root folder paths in the stats layer of the UI 2026-01-22 14:44:48 -07:00
Dark-Alex-17 d8f7febfe1 feat: Improved disk-space UI and CLI that shows the actual path being monitored instead of just a disk number
Check / stable / fmt (push) Has been cancelled
Check / beta / clippy (push) Has been cancelled
Check / stable / clippy (push) Has been cancelled
Check / nightly / doc (push) Has been cancelled
Check / 1.89.0 / check (push) Has been cancelled
Test Suite / ubuntu / beta (push) Has been cancelled
Test Suite / ubuntu / stable (push) Has been cancelled
Test Suite / macos-latest / stable (push) Has been cancelled
Test Suite / windows-latest / stable (push) Has been cancelled
Test Suite / ubuntu / stable / coverage (push) Has been cancelled
2026-01-22 09:36:58 -07:00
Dark-Alex-17 ad9e2b3671 feat: Created a History tab in the Radarr UI and created a list history command and mark-history-item-as-failed command for Radarr 2026-01-13 12:35:54 -07:00
Dark-Alex-17 f0ed71b436 build: Upgraded to Ratatui v0.30.0 and fixed a new security vulnerability [#13] 2026-01-07 17:15:54 -07:00
Dark-Alex-17 c072c57bbb style: Applied uniform formatting across all new UI test files 2025-12-15 20:18:28 -07:00
Dark-Alex-17 316ed64315 test: Created snapshot tests for all Radarr UI modules 2025-12-15 20:17:09 -07:00
Dark-Alex-17 82f30f126d test: Implemented UI snapshot tests 2025-12-12 15:44:11 -07:00
Dark-Alex-17 ad58912baf test: Updated Rust edition to 2024 and refactored network module tests to be more idiomatic 2025-12-03 14:49:27 -07:00
Dark-Alex-17 02870043ec style: Addressed updated linter complaints 2025-08-07 19:49:11 -06:00
Dark-Alex-17 00cdeee5c6 feat(ui): Full Sonarr system tab support
Signed-off-by: Alex Clarke <alex.j.tusa@gmail.com>
2024-12-04 17:41:30 -07:00
Dark-Alex-17 9b2040059d fix(ui): Fixed a potential rare bug in the UI where the application would panic if the height of the downloads window is 0. 2024-11-29 16:31:51 -07:00
Dark-Alex-17 08f190fc6e feat(ui): Initial UI support for switching to Sonarr tabs 2024-11-29 15:58:19 -07:00
Dark-Alex-17 f139db07d9 feat(app): Dispatch support for all relevant Sonarr blocks 2024-11-27 17:06:20 -07:00
Dark-Alex-17 a881d1f33a feat(network): Support for listing disk space on a Sonarr instance 2024-11-22 15:54:11 -07:00
Dark-Alex-17 16538a3158 feat(network): Support for fetching all Sonarr root folders 2024-11-21 16:37:23 -07:00
Dark-Alex-17 93d78701ce fix:fixed divide by zero panic when download size is unknown 2024-11-03 15:36:26 -07:00
Dark-Alex-17 a0fe51c57b Added help that's always visible for modals with new shortcuts for accepting all modals, or closing all modals without the need of seeing the UI 2024-11-03 14:25:33 -07:00
Dark-Alex-17 946d02102c Fixed rustfmt issues 2024-10-30 15:43:53 -06:00
Dark-Alex-17 6bdefa6ba5 Updated library colors to match the web UI 2024-03-16 14:40:57 -06:00
Dark-Alex-17 6cadf70c1e Added full support for managing the blocklist 2024-02-15 16:20:03 -07:00
Dark-Alex-17 51b789fd0f Refactored tables and loading blocks to use the new dedicated widgets for Tables and Loading blocks 2024-02-10 19:23:19 -07:00
Dark-Alex-17 9b0c272e76 Completed the refactor and upgrade to Ratatui v0.26. Next up: Refactoring all of the "draw_" functions into custom widgets for more ergonomic and extensible DevX 2024-02-08 13:58:45 -07:00
Dark-Alex-17 c6f51ab9b6 Upgraded to Ratatui 0.26 and did a partial refactor to clean up the UI module. Created the ManagarrStyle trait to make it cleaner to use consistent styles across the project. Still need to update the layouts to be consistent with the newer and nicer format. That's a tomorrow problem 2024-02-07 17:33:17 -07:00
Dark-Alex-17 76e21e7697 Added 'Test All Indexers' table and functionality to the Indexers tab, and upgraded to Ratatui 0.24.0 and cleaned up code for newer Ratatui version 2023-11-25 17:36:30 -07:00
Dark-Alex-17 b16a58deae Updated Ratatui, created custom deserialization logic for i64s to make life easier, and used string interpolation where possible to reduce the lines needed to write log messages or create formatted text 2023-09-07 17:20:38 -06:00
Dark-Alex-17 f7cb832095 Refactored the filter and search logic to follow the established modal logic and added some refactored functions to the UI module as well to clean up the UI code too 2023-08-10 16:43:57 -06:00
Dark-Alex-17 ce12ebd301 Refactored the HorizontallyScrollableText struct to handle Unicode strings more uniformly and to not rely on byte boundaries but instead to rely on Unicode char boundaries 2023-08-08 14:15:23 -06:00
Dark-Alex-17 77fd9e621f Did a lot of things in this one: Cleaned up a bit of leftover unused code from yesterday; deprecated the use of drain() on HorizontallyScrollableText; Refactored the uses of search and filter to be wrapped in Options; Fixed a race condition when closing the Add Movie modals in rapid succession; upgraded to ratatui 0.22.0; Fixed a bug in attempting to close an empty root folder; fixed a bug in attempting to close an empty filter; fixed a bug in attempting to close an empty search; fixed a bug in attempting to close an empty filter without resetting the view; fixed a bug in attempting to delete a movie after dynamically added one and updating the main library table 2023-08-08 10:50:07 -06:00
Dark-Alex-17 2d624e2648 Refactored the Edit/Add modals into their own structs so that adding similar modals in the future is more consistent, uses less RAM (since it's wrapped in an Option now), and is easier to implement. This comes with an initial example of the IndexerSettings UI that needs its own modal now. The modal has been created but it is still not used just yet so that's the next step. 2023-08-08 10:50:07 -06:00
Dark-Alex-17 618ba09b02 Refactored the RadarrData and ActiveRadarrBlock structs into their own file in models/servarr_data to make things neater and cleaner and easier to build on 2023-08-08 10:50:07 -06:00
Dark-Alex-17 cf11527fef Refactored the UI module and the handlers module to do a more chain-of-responsibility method to manage the UI's and handlers for different key events. Also, initial work for indexer settings as well 2023-08-08 10:50:07 -06:00
Dark-Alex-17 2b9ddd0d1e Added network support for updating all indexer settings, editing specific indexer settings, deleting an indexer; Also added keybindings for all of the above that change the current route. Added full support for deleting an indexer; still need to add an indexer_handler to handle the add, edit, and settings functionalities 2023-08-08 10:50:07 -06:00
Dark-Alex-17 72194fe668 Implemented the ability to view indexers 2023-08-08 10:50:07 -06:00
Dark-Alex-17 b2e475200c Implemented full system browsing support with logs, events, and tasks. 2023-08-08 10:50:06 -06:00
Dark-Alex-17 519778c0ca Partial implementation of Tasks and Logs and test refactor 2023-08-08 10:50:06 -06:00
Dark-Alex-17 9d943a266e Created the DrawUi trait and refactored the UI logic to delegate to different modules to draw parts of the UI to ensure future UI components follow a similar pattern and structure. Additionally, cleaned up the _BLOCKS constants in the Radarr module to be static instead of const's so that less data is copied around during compilation and the arrays all share the same memory reference. 2023-08-08 10:50:06 -06:00
Dark-Alex-17 4fb83c114a Cleaned up the block selection logic to use the new BlockSelectionState struct 2023-08-08 10:50:06 -06:00
Dark-Alex-17 be698ebbd4 Tweaked a minor formatting issue in the status ui to make the Radarr Version and Uptime bold 2023-08-08 10:50:06 -06:00
Dark-Alex-17 435926f6f0 Added two new checkboxes to the delete movie UI that allows users to specify to delete the file and/or add an exclusion for the selected film on deletion. Also fixed the refresh bug in the root folders UI where you have to manually refresh to get the changes to show before 20 seconds. Also cleaned up code a bit and removed some unnecessary clone calls and references-dereferences since the types were copyable and not necessary to be referenced since they were all dereferenced anyway and copied. Made sense to just cut out the middleman on the copies. 2023-08-08 10:50:06 -06:00
Dark-Alex-17 b7d00f4827 Added root folders free space to the stats for Radarr, and fixed a weird spacing bug with the downloads context (was using Min instead of Length) 2023-08-08 10:50:06 -06:00
Dark-Alex-17 c606fe8573 Added full support for managing root folders, and also for changing the root folder when adding a movie 2023-08-08 10:50:06 -06:00
Dark-Alex-17 a564710aee Added the ability to add and delete root folders, and added a body to the error message logs and dialog box if a body is returned from the Servarr 2023-08-08 10:50:06 -06:00
Dark-Alex-17 9142d5ab3e Added the Root Folders tab 2023-08-08 10:50:06 -06:00
Dark-Alex-17 cacc452fa1 Fixed search and filter boxes to look better in 16:9 aspect ratios 2023-08-08 10:50:06 -06:00
Dark-Alex-17 b9771ab108 Updated UI layout to have the Radarr logo on the right and shrunk the context row so the managarr UI looks better on 16:9 aspect ratio systems as well as 16:10 2023-08-08 10:50:06 -06:00
Dark-Alex-17 bf5ecbd5a6 Implemented the ability to edit collections and fixed a refresh bug so screens will automatically refresh when users edit movies or collections 2023-08-08 10:50:06 -06:00
Dark-Alex-17 173e81fc17 Fixed downloads output path horizontal scrolling bug 2023-08-08 10:50:06 -06:00