feat(models): Added an additional History tab to the mocked tabs for viewing all Sonarr history at once

This commit is contained in:
2024-11-20 13:24:44 -07:00
parent 9d782af020
commit bd2d2875a5
3 changed files with 71 additions and 56 deletions
+68 -55
View File
@@ -4,7 +4,10 @@ use strum::EnumIter;
use crate::models::{
servarr_models::{Indexer, QueueEvent},
sonarr_models::{BlocklistItem, DownloadRecord, IndexerSettings, Season, Series},
sonarr_models::{
BlocklistItem, DownloadRecord, IndexerSettings, Season, Series, SonarrHistoryItem,
SonarrHistoryWrapper,
},
stateful_list::StatefulList,
stateful_table::StatefulTable,
HorizontallyScrollableText, Route,
@@ -19,6 +22,7 @@ mod sonarr_data_tests;
pub struct SonarrData {
pub blocklist: StatefulTable<BlocklistItem>,
pub downloads: StatefulTable<DownloadRecord>,
pub history: StatefulTable<SonarrHistoryWrapper>,
pub indexers: StatefulTable<Indexer>,
pub indexer_settings: Option<IndexerSettings>,
pub logs: StatefulList<HorizontallyScrollableText>,
@@ -27,6 +31,7 @@ pub struct SonarrData {
pub seasons: StatefulTable<Season>,
pub season_details_modal: Option<SeasonDetailsModal>,
pub series: StatefulTable<Series>,
pub series_history: Option<StatefulTable<SonarrHistoryItem>>,
pub start_time: DateTime<Utc>,
pub version: String,
}
@@ -36,14 +41,16 @@ impl Default for SonarrData {
SonarrData {
blocklist: StatefulTable::default(),
downloads: StatefulTable::default(),
history: StatefulTable::default(),
indexers: StatefulTable::default(),
indexer_settings: None,
logs: StatefulList::default(),
quality_profile_map: BiMap::new(),
queued_events: StatefulTable::default(),
seasons: StatefulTable::default(),
series: StatefulTable::default(),
season_details_modal: None,
series: StatefulTable::default(),
series_history: None,
start_time: DateTime::default(),
version: String::new(),
}
@@ -53,73 +60,79 @@ impl Default for SonarrData {
#[derive(Clone, Copy, PartialEq, Eq, Debug, Default, EnumIter)]
pub enum ActiveSonarrBlock {
#[default]
Series,
UpdateAndScanSeriesPrompt,
EditSeriesPrompt,
SeriesSortPrompt,
SearchSeries,
SearchSeriesError,
FilterSeries,
FilterSeriesError,
DeleteSeriesPrompt,
DeleteSeriesConfirmPrompt,
AutomaticallySearchSeriesPrompt,
UpdateAllSeriesPrompt,
SeriesDetails,
SeriesHistory,
HistoryDetails,
MarkHistoryItemAsFailurePrompt,
MarkHistoryItemAsFailureConfirmPrompt,
SearchSeason,
SearchSeasonError,
AutomaticallySearchSeasonPrompt,
SeasonDetails,
SeasonHistory,
ManualSeasonSearch,
ManualSeasonSearchSortPrompt,
ManualSeasonSearchConfirmPrompt,
DeleteEpisodeFilePrompt,
EpisodeDetails,
EpisodesSortPrompt,
SearchEpisodes,
SearchEpisodesError,
FilterEpisodes,
FilterEpisodesError,
AutomaticallySearchEpisodePrompt,
EditEpisodePrompt,
EpisodeHistory,
EpisodeFile,
ManualEpisodeSearch,
ManualEpisodeSearchSortPrompt,
ManualEpisodeSearchConfirmPrompt,
AddRootFolderPrompt,
AddSeriesAlreadyInLibrary,
AddSeriesConfirmPrompt,
AddSeriesEmptySearchResults,
AddSeriesPrompt,
AddSeriesSearchInput,
AddSeriesSearchResults,
AddSeriesAlreadyInLibrary,
AddSeriesEmptySearchResults,
AddSeriesConfirmPrompt,
Downloads,
DeleteDownloadPrompt,
AllIndexerSettingsPrompt,
AutomaticallySearchEpisodePrompt,
AutomaticallySearchSeasonPrompt,
AutomaticallySearchSeriesPrompt,
Blocklist,
BlocklistClearAllItemsPrompt,
BlocklistItemDetails,
BlocklistSortPrompt,
DeleteBlocklistItemPrompt,
RootFolders,
AddRootFolderPrompt,
DeleteRootFolderPrompt,
Indexers,
DeleteDownloadPrompt,
DeleteEpisodeFilePrompt,
DeleteIndexerPrompt,
DeleteRootFolderPrompt,
DeleteSeriesConfirmPrompt,
DeleteSeriesPrompt,
Downloads,
EditEpisodePrompt,
EditIndexerPrompt,
AllIndexerSettingsPrompt,
TestIndexer,
TestAllIndexers,
EditSeriesPrompt,
EpisodeDetails,
EpisodeFile,
EpisodeHistory,
EpisodesSortPrompt,
FilterEpisodes,
FilterEpisodesError,
FilterHistory,
FilterHistoryError,
FilterSeries,
FilterSeriesError,
History,
HistoryDetails,
HistorySortPrompt,
Indexers,
ManualEpisodeSearch,
ManualEpisodeSearchConfirmPrompt,
ManualEpisodeSearchSortPrompt,
ManualSeasonSearch,
ManualSeasonSearchConfirmPrompt,
ManualSeasonSearchSortPrompt,
MarkHistoryItemAsFailureConfirmPrompt,
MarkHistoryItemAsFailurePrompt,
RootFolders,
SearchEpisodes,
SearchEpisodesError,
SearchHistory,
SearchHistoryError,
SearchSeason,
SearchSeasonError,
SearchSeries,
SearchSeriesError,
SeasonDetails,
SeasonHistory,
Series,
SeriesDetails,
SeriesHistory,
SeriesSortPrompt,
System,
SystemTasks,
SystemTaskStartConfirmPrompt,
SystemLogs,
SystemQueuedEvents,
SystemTasks,
SystemTaskStartConfirmPrompt,
SystemUpdates,
TestAllIndexers,
TestIndexer,
UpdateAllSeriesPrompt,
UpdateAndScanSeriesPrompt,
}
impl From<ActiveSonarrBlock> for Route {
@@ -36,6 +36,7 @@ mod tests {
assert!(sonarr_data.blocklist.is_empty());
assert!(sonarr_data.downloads.is_empty());
assert!(sonarr_data.history.is_empty());
assert!(sonarr_data.indexers.is_empty());
assert!(sonarr_data.indexer_settings.is_none());
assert!(sonarr_data.logs.is_empty());
@@ -44,6 +45,7 @@ mod tests {
assert!(sonarr_data.seasons.is_empty());
assert!(sonarr_data.season_details_modal.is_none());
assert!(sonarr_data.series.is_empty());
assert!(sonarr_data.series_history.is_empty());
assert_eq!(sonarr_data.start_time, <DateTime<Utc>>::default());
assert!(sonarr_data.version.is_empty());
}
+1 -1
View File
@@ -306,7 +306,7 @@ impl SeriesStatus {
#[derive(Serialize, Deserialize, Default, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct SonarrEpisodeHistoryResponse {
pub struct SonarrHistoryWrapper {
pub records: Vec<SonarrHistoryItem>,
}