Commit Graph

57 Commits

Author SHA1 Message Date
b1afdaf541 feat: Added CLI and TUI support for editing Lidarr artists 2026-01-07 12:01:03 -07:00
3c1634d1e3 testing 2026-01-07 10:45:49 -07:00
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
ad58912baf test: Updated Rust edition to 2024 and refactored network module tests to be more idiomatic 2025-12-03 14:49:27 -07:00
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
0048d71b74 feat: Support alternative keymappings for all keys, featuring hjkl movements 2025-03-17 22:02:15 -06:00
b757d66d7a fix: Addressed rustfmt complaints 2025-01-18 15:33:56 -07:00
652bbcd5d4 refactor: Refactored a handful of Option calls to use take instead 2025-01-18 13:00:21 -07:00
fd35106df8 refactor: Renamed KeyEventHandler::with to KeyEventHandler::new to keep with Rust best practices and conventions 2025-01-18 12:43:25 -07:00
f139db07d9 feat(app): Dispatch support for all relevant Sonarr blocks 2024-11-27 17:06:20 -07:00
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
6cadf70c1e Added full support for managing the blocklist 2024-02-15 16:20:03 -07:00
adda82f7f3 Refactored table filtering and searching so that they are now relative to the table being filtered/searched on. Also created two new widgets for error messages and popups to make life easier moving forward. Going to refactor table sorting into StatefulTable's as well so all tables can be searched, filtered, and sorted moving forwards. 2024-02-11 19:02:18 -07:00
907fa9a2ec Refactored unnecessary data fields into Options to make the code cleaner, and to reduce the memory usage of the application 2023-08-14 13:02:50 -06:00
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
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
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
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
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
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
52f22312f3 Added field_type to Radarr events to dynamically display fields at runtime. Also updated the keybinding for events in the systems tab to reuse the 'e' key. 2023-08-08 10:50:07 -06:00
72194fe668 Implemented the ability to view indexers 2023-08-08 10:50:07 -06:00
0c7fc88e22 Added the ability to view Radarr updates and remapped the events queue key to 'z' 2023-08-08 10:50:07 -06:00
b2e475200c Implemented full system browsing support with logs, events, and tasks. 2023-08-08 10:50:06 -06:00
519778c0ca Partial implementation of Tasks and Logs and test refactor 2023-08-08 10:50:06 -06:00
4fb83c114a Cleaned up the block selection logic to use the new BlockSelectionState struct 2023-08-08 10:50:06 -06:00
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
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
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
9142d5ab3e Added the Root Folders tab 2023-08-08 10:50:06 -06:00
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
514fd2244a Added horizontal scrolling for long movie titles, a refresh key, and fixed the network issues so that network requests are sent once every 20 seconds by default to not stress out the server. 2023-08-08 10:50:06 -06:00
7f3dd18478 Full support for editing movies and managing tags 2023-08-08 10:50:06 -06:00
c946d916ad Functional tags implementation for adding movies! Still need to fix weird loading bug when searching a movie that shows an error too soon before results are loaded, need to fix the horizontal scrolling issue, and I need to change the quality profile map to use the BiMap 2023-08-08 10:50:05 -06:00
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
652dc0f2c4 Completed edit movies implementation, cleaned up the Movies table, and fixed a bug when adding a movie from the CollectionDetails screen. 2023-08-08 10:50:05 -06:00
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
9375382a12 Fixed bug so users can now search on filtered movies and collections. 2023-08-08 10:50:05 -06:00
dcc251ae01 Cleaned up active radarr block delegation to not have giant match arms and instead just check an array, and fixed a UI bug that shows an error message if a movie is already in a user's library. 2023-08-08 10:50:05 -06:00
d358935386 Optimized copy-able types 2023-08-08 10:50:05 -06:00
69964b7f02 Added tests for the movie_details handler and created some more test utilities and macros 2023-08-08 10:50:05 -06:00
1181449cbf Updated test names to be more consistent with each other and added collection details tests 2023-08-08 10:50:05 -06:00
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
befd4bc15a Added Makefile and tests for the main radarr_handler 2023-08-08 10:50:05 -06:00
c15bda5885 Started writing more tests in the handlers 2023-08-08 10:50:05 -06:00
0f9dc639a8 Cleaned up some code with some macros 2023-08-08 10:50:05 -06:00
6735849518 Fully functional manual searching capabilities and refresh capabilities for all movies, downloads, and collections 2023-08-08 10:50:05 -06:00
1ad1b16668 Refresh, disk scan, and trigger auto-scan support and partial implementation for manual searches 2023-08-08 10:50:05 -06:00
69981857d8 Added delete download functionality 2023-08-08 10:50:04 -06:00
b748d27a06 Partial implementation for additional add-movie details. Need to implement selection menus now but that's it! 2023-08-08 10:50:04 -06:00