From 0645a9e5521d1a0bcbf6dbc7fcc94f0dc6ce2ce9 Mon Sep 17 00:00:00 2001 From: Mark McDowall Date: Wed, 18 May 2011 16:10:25 -0700 Subject: [PATCH 1/2] EpisodeSorting UI has descriptions, removed extra options. Config for EpisodeSorting variables added. --- .../Providers/Core/ConfigProvider.cs | 48 ++++++++++++++ .../Controllers/SettingsController.cs | 36 +++++----- NzbDrone.Web/Models/EpisodeSortingModel.cs | 17 +++-- .../Views/Settings/EpisodeSorting.cshtml | 66 +++++++++++-------- 4 files changed, 116 insertions(+), 51 deletions(-) diff --git a/NzbDrone.Core/Providers/Core/ConfigProvider.cs b/NzbDrone.Core/Providers/Core/ConfigProvider.cs index 46811aa5c..8cb41e6ac 100644 --- a/NzbDrone.Core/Providers/Core/ConfigProvider.cs +++ b/NzbDrone.Core/Providers/Core/ConfigProvider.cs @@ -188,6 +188,30 @@ namespace NzbDrone.Core.Providers.Core set { SetValue("BlackholeDirectory", value); } } + public virtual bool SeriesName + { + get { return GetValueBoolean("Sorting_SeriesName", true); } + set { SetValue("Sorting_SeriesName", value); } + } + + public virtual bool EpisodeName + { + get { return GetValueBoolean("Sorting_EpisodeName", true); } + set { SetValue("Sorting_EpisodeName", value); } + } + + public virtual bool ReplaceSpaces + { + get { return GetValueBoolean("Sorting_ReplaceSpaces", true); } + set { SetValue("Sorting_ReplaceSpaces", value); } + } + + public virtual bool AppendQuality + { + get { return GetValueBoolean("Sorting_AppendQaulity", true); } + set { SetValue("Sorting_AppendQaulity", value); } + } + public virtual bool UseSeasonFolder { get { return GetValueBoolean("Sorting_SeasonFolder", true); } @@ -195,6 +219,30 @@ namespace NzbDrone.Core.Providers.Core set { SetValue("Sorting_SeasonFolder", value); } } + public virtual string SeasonFolderFormat + { + get { return GetValue("Sorting_SeasonFolderFormat", "Season %s", false); } + set { SetValue("Sorting_SeasonFolderFormat", value); } + } + + public virtual int SeparatorStyle + { + get { return GetValueInt("Sorting_SeparatorStyle"); } + set { SetValue("Sorting_SeparatorStyle", value); } + } + + public virtual int NumberStyle + { + get { return GetValueInt("Sorting_NumberStyle", 2); } + set { SetValue("Sorting_NumberStyle", value); } + } + + public virtual int MultiEpisodeStyle + { + get { return GetValueInt("Sorting_MultiEpisodeStyle"); } + set { SetValue("Sorting_MultiEpisodeStyle", value); } + } + public virtual int DefaultQualityProfile { get { return GetValueInt("DefaultQualityProfile", 1); } diff --git a/NzbDrone.Web/Controllers/SettingsController.cs b/NzbDrone.Web/Controllers/SettingsController.cs index db8b0c3f6..26a627e89 100644 --- a/NzbDrone.Web/Controllers/SettingsController.cs +++ b/NzbDrone.Web/Controllers/SettingsController.cs @@ -182,16 +182,15 @@ namespace NzbDrone.Web.Controllers var model = new EpisodeSortingModel(); - model.ShowName = Convert.ToBoolean(_configProvider.GetValue("Sorting_ShowName", true, true)); - model.EpisodeName = Convert.ToBoolean(_configProvider.GetValue("Sorting_EpisodeName", true, true)); - model.ReplaceSpaces = Convert.ToBoolean(_configProvider.GetValue("Sorting_ReplaceSpaces", false, true)); - model.AppendQuality = Convert.ToBoolean(_configProvider.GetValue("Sorting_AppendQuality", false, true)); - model.UseAirByDate = Convert.ToBoolean(_configProvider.GetValue("Sorting_UseAirByDate", true, true)); + model.SeriesName = _configProvider.SeriesName; + model.EpisodeName = _configProvider.EpisodeName; + model.ReplaceSpaces = _configProvider.ReplaceSpaces; + model.AppendQuality = _configProvider.AppendQuality; model.SeasonFolders = _configProvider.UseSeasonFolder; - model.SeasonFolderFormat = _configProvider.GetValue("Sorting_SeasonFolderFormat", "Season %s", true); - model.SeparatorStyle = Convert.ToInt32(_configProvider.GetValue("Sorting_SeparatorStyle", 0, true)); - model.NumberStyle = Convert.ToInt32(_configProvider.GetValue("Sorting_NumberStyle", 2, true)); - model.MultiEpisodeStyle = Convert.ToInt32(_configProvider.GetValue("Sorting_MultiEpisodeStyle", 0, true)); + model.SeasonFolderFormat = _configProvider.SeasonFolderFormat; + model.SeparatorStyle = _configProvider.SeparatorStyle; + model.NumberStyle = _configProvider.NumberStyle; + model.MultiEpisodeStyle = _configProvider.MultiEpisodeStyle; model.SeparatorStyles = new SelectList(EpisodeSortingHelper.GetSeparatorStyles(), "Id", "Name"); model.NumberStyles = new SelectList(EpisodeSortingHelper.GetNumberStyles(), "Id", "Name"); @@ -535,16 +534,15 @@ namespace NzbDrone.Web.Controllers if (ModelState.IsValid) { - _configProvider.SetValue("Sorting_ShowName", data.ShowName.ToString()); - _configProvider.SetValue("Sorting_EpisodeName", data.EpisodeName.ToString()); - _configProvider.SetValue("Sorting_ReplaceSpaces", data.ReplaceSpaces.ToString()); - _configProvider.SetValue("Sorting_AppendQuality", data.AppendQuality.ToString()); - _configProvider.SetValue("Sorting_UseAirByDate", data.UseAirByDate.ToString()); - _configProvider.SetValue("Sorting_SeasonFolder", data.SeasonFolders.ToString()); - _configProvider.SetValue("Sorting_SeasonFolderFormat", data.SeasonFolderFormat); - _configProvider.SetValue("Sorting_SeparatorStyle", data.SeparatorStyle.ToString()); - _configProvider.SetValue("Sorting_NumberStyle", data.NumberStyle.ToString()); - _configProvider.SetValue("Sorting_MultiEpisodeStyle", data.MultiEpisodeStyle.ToString()); + _configProvider.SeriesName = data.SeriesName; + _configProvider.EpisodeName = data.EpisodeName; + _configProvider.ReplaceSpaces = data.ReplaceSpaces; + _configProvider.AppendQuality = data.AppendQuality; + _configProvider.UseSeasonFolder = data.SeasonFolders; + _configProvider.SeasonFolderFormat = data.SeasonFolderFormat; + _configProvider.SeparatorStyle = data.SeparatorStyle; + _configProvider.NumberStyle = data.NumberStyle; + _configProvider.MultiEpisodeStyle = data.MultiEpisodeStyle; basicNotification.Title = SETTINGS_SAVED; _notificationProvider.Register(basicNotification); diff --git a/NzbDrone.Web/Models/EpisodeSortingModel.cs b/NzbDrone.Web/Models/EpisodeSortingModel.cs index beaf0c216..0f21794c2 100644 --- a/NzbDrone.Web/Models/EpisodeSortingModel.cs +++ b/NzbDrone.Web/Models/EpisodeSortingModel.cs @@ -6,36 +6,41 @@ namespace NzbDrone.Web.Models { public class EpisodeSortingModel { - [DisplayName("Show Name")] - public bool ShowName { get; set; } + [DisplayName("Series Name")] + [Description("Should filenames contain the series name when renamed?")] + public bool SeriesName { get; set; } [DisplayName("Episode Name")] + [Description("Should filenames contain the episode name when renamed?")] public bool EpisodeName { get; set; } [DisplayName("Replace Spaces")] + [Description("Do you want to replace spaces in the filename with periods?")] public bool ReplaceSpaces { get; set; } [DisplayName("Append Quality")] + [Description("Should filenames have the quality appended to the end?")] public bool AppendQuality { get; set; } - [DisplayName("Use Air By Date")] - public bool UseAirByDate { get; set; } - [DisplayName("Use Season Folders")] + [Description("Should files be stored in season folders?")] public bool SeasonFolders { get; set; } [DisplayName("Season Folder Format")] [DisplayFormat(ConvertEmptyStringToNull = false)] - [Display(Description = "This is a Description")] + [Description("How should season folders be named? (Use %0s to pad to two digits)")] public string SeasonFolderFormat { get; set; } [DisplayName("Separator Style")] + [Description("How should NzbDrone separate sections of the filename?")] public int SeparatorStyle { get; set; } [DisplayName("Numbering Style")] + [Description("What numbering style do you want?")] public int NumberStyle { get; set; } [DisplayName("Multi-Episode Style")] + [Description("How will multi-episode files be named?")] public int MultiEpisodeStyle { get; set; } public SelectList SeparatorStyles { get; set; } diff --git a/NzbDrone.Web/Views/Settings/EpisodeSorting.cshtml b/NzbDrone.Web/Views/Settings/EpisodeSorting.cshtml index 2e323027d..7b997f37e 100644 --- a/NzbDrone.Web/Views/Settings/EpisodeSorting.cshtml +++ b/NzbDrone.Web/Views/Settings/EpisodeSorting.cshtml @@ -1,4 +1,5 @@ -@model NzbDrone.Web.Models.EpisodeSortingModel +@using NzbDrone.Web.Helpers +@model NzbDrone.Web.Models.EpisodeSortingModel \ No newline at end of file