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