Refactored the movie_details_popup data into the MovieDetailsModal so things are neater and to follow the same format I've already established for other modals
This commit is contained in:
@@ -1,12 +1,29 @@
|
||||
use crate::models::radarr_models::{Collection, MinimumAvailability, Monitor, Movie, RootFolder};
|
||||
use crate::models::radarr_models::{
|
||||
Collection, Credit, MinimumAvailability, Monitor, Movie, MovieHistoryItem, Release, ReleaseField,
|
||||
RootFolder,
|
||||
};
|
||||
use crate::models::servarr_data::radarr::radarr_data::RadarrData;
|
||||
use crate::models::{HorizontallyScrollableText, StatefulList};
|
||||
use crate::models::{HorizontallyScrollableText, ScrollableText, StatefulList, StatefulTable};
|
||||
use strum::IntoEnumIterator;
|
||||
|
||||
#[cfg(test)]
|
||||
#[path = "modals_tests.rs"]
|
||||
mod modals_tests;
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct MovieDetailsModal {
|
||||
pub movie_details: ScrollableText,
|
||||
pub file_details: String,
|
||||
pub audio_details: String,
|
||||
pub video_details: String,
|
||||
pub movie_history: StatefulTable<MovieHistoryItem>,
|
||||
pub movie_cast: StatefulTable<Credit>,
|
||||
pub movie_crew: StatefulTable<Credit>,
|
||||
pub movie_releases: StatefulTable<Release>,
|
||||
pub movie_releases_sort: StatefulList<ReleaseField>,
|
||||
pub sort_ascending: Option<bool>,
|
||||
}
|
||||
|
||||
#[derive(Default)]
|
||||
pub struct EditMovieModal {
|
||||
pub minimum_availability_list: StatefulList<MinimumAvailability>,
|
||||
|
||||
@@ -6,11 +6,11 @@ use crate::app::radarr::radarr_context_clues::{
|
||||
SYSTEM_CONTEXT_CLUES,
|
||||
};
|
||||
use crate::models::radarr_models::{
|
||||
AddMovieSearchResult, Collection, CollectionMovie, Credit, DiskSpace, DownloadRecord, Indexer,
|
||||
IndexerSettings, Movie, MovieHistoryItem, QueueEvent, Release, ReleaseField, RootFolder, Task,
|
||||
AddMovieSearchResult, Collection, CollectionMovie, DiskSpace, DownloadRecord, Indexer,
|
||||
IndexerSettings, Movie, QueueEvent, RootFolder, Task,
|
||||
};
|
||||
use crate::models::servarr_data::radarr::modals::{
|
||||
AddMovieModal, EditCollectionModal, EditMovieModal,
|
||||
AddMovieModal, EditCollectionModal, EditMovieModal, MovieDetailsModal,
|
||||
};
|
||||
use crate::models::{
|
||||
BlockSelectionState, HorizontallyScrollableText, Route, ScrollableText, StatefulList,
|
||||
@@ -43,15 +43,6 @@ pub struct RadarrData<'a> {
|
||||
pub indexer_settings: Option<IndexerSettings>,
|
||||
pub quality_profile_map: BiMap<u64, String>,
|
||||
pub tags_map: BiMap<u64, String>,
|
||||
pub movie_details: ScrollableText,
|
||||
pub file_details: String,
|
||||
pub audio_details: String,
|
||||
pub video_details: String,
|
||||
pub movie_history: StatefulTable<MovieHistoryItem>,
|
||||
pub movie_cast: StatefulTable<Credit>,
|
||||
pub movie_crew: StatefulTable<Credit>,
|
||||
pub movie_releases: StatefulTable<Release>,
|
||||
pub movie_releases_sort: StatefulList<ReleaseField>,
|
||||
pub collections: StatefulTable<Collection>,
|
||||
pub filtered_collections: StatefulTable<Collection>,
|
||||
pub collection_movies: StatefulTable<CollectionMovie>,
|
||||
@@ -69,7 +60,7 @@ pub struct RadarrData<'a> {
|
||||
pub edit_movie_modal: Option<EditMovieModal>,
|
||||
pub edit_collection_modal: Option<EditCollectionModal>,
|
||||
pub edit_root_folder: Option<HorizontallyScrollableText>,
|
||||
pub sort_ascending: Option<bool>,
|
||||
pub movie_details_modal: Option<MovieDetailsModal>,
|
||||
pub prompt_confirm: bool,
|
||||
pub delete_movie_files: bool,
|
||||
pub add_list_exclusion: bool,
|
||||
@@ -100,16 +91,7 @@ impl<'a> RadarrData<'a> {
|
||||
}
|
||||
|
||||
pub fn reset_movie_info_tabs(&mut self) {
|
||||
self.file_details = String::default();
|
||||
self.audio_details = String::default();
|
||||
self.video_details = String::default();
|
||||
self.movie_details = ScrollableText::default();
|
||||
self.movie_history = StatefulTable::default();
|
||||
self.movie_cast = StatefulTable::default();
|
||||
self.movie_crew = StatefulTable::default();
|
||||
self.movie_releases = StatefulTable::default();
|
||||
self.movie_releases_sort = StatefulList::default();
|
||||
self.sort_ascending = None;
|
||||
self.movie_details_modal = None;
|
||||
self.movie_info_tabs.index = 0;
|
||||
}
|
||||
}
|
||||
@@ -130,15 +112,6 @@ impl<'a> Default for RadarrData<'a> {
|
||||
indexer_settings: None,
|
||||
quality_profile_map: BiMap::default(),
|
||||
tags_map: BiMap::default(),
|
||||
file_details: String::default(),
|
||||
audio_details: String::default(),
|
||||
video_details: String::default(),
|
||||
movie_details: ScrollableText::default(),
|
||||
movie_history: StatefulTable::default(),
|
||||
movie_cast: StatefulTable::default(),
|
||||
movie_crew: StatefulTable::default(),
|
||||
movie_releases: StatefulTable::default(),
|
||||
movie_releases_sort: StatefulList::default(),
|
||||
collections: StatefulTable::default(),
|
||||
filtered_collections: StatefulTable::default(),
|
||||
collection_movies: StatefulTable::default(),
|
||||
@@ -154,7 +127,7 @@ impl<'a> Default for RadarrData<'a> {
|
||||
edit_movie_modal: None,
|
||||
edit_collection_modal: None,
|
||||
edit_root_folder: None,
|
||||
sort_ascending: None,
|
||||
movie_details_modal: None,
|
||||
is_searching: false,
|
||||
is_filtering: false,
|
||||
prompt_confirm: false,
|
||||
|
||||
@@ -87,15 +87,6 @@ mod tests {
|
||||
assert!(radarr_data.indexer_settings.is_none());
|
||||
assert!(radarr_data.quality_profile_map.is_empty());
|
||||
assert!(radarr_data.tags_map.is_empty());
|
||||
assert!(radarr_data.file_details.is_empty());
|
||||
assert!(radarr_data.audio_details.is_empty());
|
||||
assert!(radarr_data.video_details.is_empty());
|
||||
assert!(radarr_data.movie_details.get_text().is_empty());
|
||||
assert!(radarr_data.movie_history.items.is_empty());
|
||||
assert!(radarr_data.movie_cast.items.is_empty());
|
||||
assert!(radarr_data.movie_crew.items.is_empty());
|
||||
assert!(radarr_data.movie_releases.items.is_empty());
|
||||
assert!(radarr_data.movie_releases_sort.items.is_empty());
|
||||
assert!(radarr_data.collections.items.is_empty());
|
||||
assert!(radarr_data.filtered_collections.items.is_empty());
|
||||
assert!(radarr_data.collection_movies.items.is_empty());
|
||||
@@ -111,7 +102,7 @@ mod tests {
|
||||
assert!(radarr_data.edit_movie_modal.is_none());
|
||||
assert!(radarr_data.edit_collection_modal.is_none());
|
||||
assert!(radarr_data.edit_root_folder.is_none());
|
||||
assert!(radarr_data.sort_ascending.is_none());
|
||||
assert!(radarr_data.movie_details_modal.is_none());
|
||||
assert!(!radarr_data.is_searching);
|
||||
assert!(!radarr_data.is_filtering);
|
||||
assert!(!radarr_data.prompt_confirm);
|
||||
|
||||
@@ -4,10 +4,32 @@ pub mod utils {
|
||||
AddMovieSearchResult, Collection, CollectionMovie, Credit, Movie, MovieHistoryItem, Release,
|
||||
ReleaseField,
|
||||
};
|
||||
use crate::models::servarr_data::radarr::modals::MovieDetailsModal;
|
||||
use crate::models::servarr_data::radarr::radarr_data::RadarrData;
|
||||
use crate::models::{HorizontallyScrollableText, ScrollableText};
|
||||
|
||||
pub fn create_test_radarr_data<'a>() -> RadarrData<'a> {
|
||||
let mut movie_details_modal = MovieDetailsModal {
|
||||
movie_details: ScrollableText::with_string("test movie details".to_owned()),
|
||||
..MovieDetailsModal::default()
|
||||
};
|
||||
movie_details_modal
|
||||
.movie_history
|
||||
.set_items(vec![MovieHistoryItem::default()]);
|
||||
movie_details_modal
|
||||
.movie_cast
|
||||
.set_items(vec![Credit::default()]);
|
||||
movie_details_modal
|
||||
.movie_crew
|
||||
.set_items(vec![Credit::default()]);
|
||||
movie_details_modal
|
||||
.movie_releases
|
||||
.set_items(vec![Release::default()]);
|
||||
movie_details_modal
|
||||
.movie_releases_sort
|
||||
.set_items(vec![ReleaseField::default()]);
|
||||
movie_details_modal.sort_ascending = Some(true);
|
||||
|
||||
let mut radarr_data = RadarrData {
|
||||
is_searching: true,
|
||||
is_filtering: true,
|
||||
@@ -16,25 +38,10 @@ pub mod utils {
|
||||
search: Some("test search".into()),
|
||||
filter: Some("test filter".into()),
|
||||
edit_root_folder: Some("test path".into()),
|
||||
file_details: "test file details".to_owned(),
|
||||
audio_details: "test audio details".to_owned(),
|
||||
video_details: "test video details".to_owned(),
|
||||
movie_details: ScrollableText::with_string("test movie details".to_owned()),
|
||||
movie_details_modal: Some(movie_details_modal),
|
||||
..RadarrData::default()
|
||||
};
|
||||
radarr_data
|
||||
.movie_history
|
||||
.set_items(vec![MovieHistoryItem::default()]);
|
||||
radarr_data.movie_cast.set_items(vec![Credit::default()]);
|
||||
radarr_data.movie_crew.set_items(vec![Credit::default()]);
|
||||
radarr_data
|
||||
.movie_releases
|
||||
.set_items(vec![Release::default()]);
|
||||
radarr_data.movie_info_tabs.index = 1;
|
||||
radarr_data
|
||||
.movie_releases_sort
|
||||
.set_items(vec![ReleaseField::default()]);
|
||||
radarr_data.sort_ascending = Some(true);
|
||||
radarr_data
|
||||
.filtered_movies
|
||||
.set_items(vec![Movie::default()]);
|
||||
@@ -79,16 +86,7 @@ pub mod utils {
|
||||
#[macro_export]
|
||||
macro_rules! assert_movie_info_tabs_reset {
|
||||
($radarr_data:expr) => {
|
||||
assert!($radarr_data.file_details.is_empty());
|
||||
assert!($radarr_data.audio_details.is_empty());
|
||||
assert!($radarr_data.video_details.is_empty());
|
||||
assert!($radarr_data.movie_details.get_text().is_empty());
|
||||
assert!($radarr_data.movie_history.items.is_empty());
|
||||
assert!($radarr_data.movie_cast.items.is_empty());
|
||||
assert!($radarr_data.movie_crew.items.is_empty());
|
||||
assert!($radarr_data.movie_releases.items.is_empty());
|
||||
assert!($radarr_data.movie_releases_sort.items.is_empty());
|
||||
assert!($radarr_data.sort_ascending.is_none());
|
||||
assert!($radarr_data.movie_details_modal.is_none());
|
||||
assert_eq!($radarr_data.movie_info_tabs.index, 0);
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user