Dark-Alex-17
87edf1fb9e
test: wire the handler property tests and make the proptest recipe run them
...
handler_proptest.rs was committed without ever being declared as a module, and it imported a list_size strategy that did not exist, so it never compiled. The proptest recipe filtered on a test name substring that matched no test.
Declare the module, add the two strategies it needs, and pass both property test filters to libtest so the recipe runs the ui and handler property tests.
2026-09-16 14:28:30 -06:00
Dark-Alex-17
29f043f5c7
feat: scaffold Readarr support across the state, app, handler, UI, and CLI layers
...
Promote Route::Readarr from a unit stub to a tuple variant and wire Readarr
through every layer, mirroring the Lidarr tree. Readarr appears as a fourth
servarr tab and its library view renders the Authors table.
Adds ReadarrData and its modals, the tick and context clue modules, the
top-level ReadarrHandler, ReadarrUi with the Authors library view, and an
empty ReadarrCommand behind ReadarrCliHandler. The default port is 8787.
Promoting the route variant compiles cleanly without any of the arms that
give it behaviour, so all six of those sites are wired explicitly here:
App::on_tick, handlers::handle_events, handle_prompt_toggle,
ServarrContextClueProvider, ui(), and verify_config_present_for_cli. Each was
checked by removing the arm and confirming its covering assertion then fails.
ReadarrEvent and ReadarrCommand are both declared empty. They gain variants
alongside the network calls and CLI commands that use them, which keeps each
later change to a single function.
Adding the tab changes the rendered tab bar, so 13 existing snapshots
regenerate. The only delta in each is that single tab bar line.
This scaffold adds 24 dead_code warnings, all inside the Readarr tree and
none outside it. They clear as the handlers, UI, network events, and CLI
commands that consume these items land: block arrays awaiting their accepts
implementations and BlockSelectionState seeding, modal and state fields
awaiting their handlers, the CLI handler fields awaiting an inhabited command
enum, and the top-level handler fields awaiting sub-handlers. The count must
strictly decrease from here, so a later increase is a defect rather than
transient noise. The 12 pre-existing collapsible_match warnings are unrelated
and untouched.
2026-08-20 15:28:49 -06:00
Dark-Alex-17
03d134bec9
refactor: Refactored several usages of sort_by_key and match guards to utilize newer Rust version APIs
2026-06-25 13:18:43 -06:00
Dark-Alex-17
5556e48fc0
fix: Improved the system notification feature so it can persist between modals
2026-02-04 08:18:04 -07:00
Dark-Alex-17
af573cac2a
feat: Added support for a system-wide notification popup mechanism that works across Servarrs
2026-02-03 17:03:12 -07:00
Dark-Alex-17
bc3aeefa6e
feat: TUI support for Lidarr library
2026-01-05 13:10:30 -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
35dce0bf01
refactor: Migrated the handle_table_events macro into a trait for better IDE support, created a TableEventAdapter wrapper for the KeyEventHandlers to make it so that the trait can be used properly and a simple function to replace the previous call to the handle_table_events macro
2025-12-04 16:03:58 -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
00ab0f27f7
feat: Refactor all keybinding tips into a dynamically changing menu that can be invoked via '?' [ #32 ]
2025-08-12 16:27:34 -06:00
Dark-Alex-17
cf00d7992e
fix: Updated the name of the should_ignore_quit_key to ignore_special_keys_for_textbox_input to give a better idea of what the flag is used for; also added alt keybinding for backspace
2025-03-27 15:21:44 -06:00
Dark-Alex-17
0048d71b74
feat: Support alternative keymappings for all keys, featuring hjkl movements
2025-03-17 22:02:15 -06:00
Dark-Alex-17
fd35106df8
refactor: Renamed KeyEventHandler::with to KeyEventHandler::new to keep with Rust best practices and conventions
2025-01-18 12:43:25 -07:00
Dark-Alex-17
368d5d3db7
fix: Cancel all requests when switching Servarr tabs to both improve performance and fix issue #15
2024-12-17 14:36:49 -07:00
Dark-Alex-17
ed2211586e
refactor(handlers): Refactored the handlers to all use the handle_table_events macro when appropriate and created tests for the macro so tests don't have to be duplicated across each handler
2024-12-11 17:03:52 -07:00
Dark-Alex-17
47b609369b
refactor(handler): Created a macro to handle all table key events to reduce code duplication and make future implementations faster; Only refactored the Sonarr library to use it thus far
2024-12-07 19:20:13 -07:00
Dark-Alex-17
c3fb5dcd5f
feat(handlers): Sonarr key support for the Series table
2024-12-01 13:48:48 -07:00
Dark-Alex-17
f7c96d81e9
refactor(BlockSelectionState): Refactored so selection of blocks in 2x2 grids is more intuitive and added left() and right() methods to aid this effort.
2024-11-30 12:22:46 -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
d84e7dfcab
Refactored to require handlers to specify the components they rely on and to specify when they are ready. This fixes a lot of bugs with the UI when users try to press buttons while the application is still loading.
2024-07-17 19:55:10 -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
519778c0ca
Partial implementation of Tasks and Logs and test refactor
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
207b8a8c80
Mostly completed tags implementation; still need to add the UI option for the Add Movie popup, and I still need to fix the REALLY FAST horizontal scrolling issue (I'm thinking just %2 everything to slow it down). Oh, and also need to convert the quality profile Hashmap into a BiMap
2023-08-08 10:50:05 -06:00
Dark-Alex-17
6866f90329
Added support for adding movies directly from the collection details UI, refactored to support contexts for different routes, and fixed the horizontal scrolling bug with the get_width_with_margin function.
2023-08-08 10:50:05 -06:00
Dark-Alex-17
d358935386
Optimized copy-able types
2023-08-08 10:50:05 -06:00
Dark-Alex-17
69964b7f02
Added tests for the movie_details handler and created some more test utilities and macros
2023-08-08 10:50:05 -06:00
Dark-Alex-17
1181449cbf
Updated test names to be more consistent with each other and added collection details tests
2023-08-08 10:50:05 -06:00
Dark-Alex-17
52739f4da0
Added unit tests for the add_movie_handler and added an additional test to radarr handles to ensure proper delegation. Also added a few macros for testing scrolling and home/end in all handlers to make life easier for those tests.
2023-08-08 10:50:05 -06:00
Dark-Alex-17
befd4bc15a
Added Makefile and tests for the main radarr_handler
2023-08-08 10:50:05 -06:00
Dark-Alex-17
c15bda5885
Started writing more tests in the handlers
2023-08-08 10:50:05 -06:00
Dark-Alex-17
0f9dc639a8
Cleaned up some code with some macros
2023-08-08 10:50:05 -06:00
Dark-Alex-17
960319c3e7
Successful implementation of movie adding and deleting, and refactored network logic to be more reusable later
2023-08-08 10:50:04 -06:00
Dark-Alex-17
cd0cf2e04a
Added delete movie functionality
2023-08-08 10:50:04 -06:00
Dark-Alex-17
24a36443e9
Refactored filtering and searching logic to be more clean and added home/end support in tables.
2023-08-08 10:50:04 -06:00
Dark-Alex-17
a304367e0e
Refactored handlers and UI to have a separate radarr module, and implemented movie search functionality for existing movies.
2023-08-08 10:50:04 -06:00
Dark-Alex-17
3f378fb25a
Refactored things a bit and added help text support
2023-08-08 10:50:04 -06:00
Dark-Alex-17
43e35da49f
Added horizontally scrollable text
2023-08-08 10:50:04 -06:00
Dark-Alex-17
44db47f8ee
Added error windows with scrolling text, and a colorized Radarr logo. Also added header row with header tabs
2023-08-08 10:50:04 -06:00
Dark-Alex-17
ec980ea32c
Full popup description functionality
2023-08-08 10:50:04 -06:00
Dark-Alex-17
b24e0cdccd
Almost kinda functional description box
2023-08-08 10:50:04 -06:00
Dark-Alex-17
d39acb0683
Added better support for contexts now and improved base Radarr UI
2023-08-08 10:50:04 -06:00
Dark-Alex-17
1ebf481326
Initial Radarr ui!
2023-08-08 10:50:04 -06:00
Dark-Alex-17
0d4e283c21
Base working commit with a UI thread (Tokio), Network thread (Tokio), and an input events thread (std).
2023-08-08 10:50:03 -06:00