diff --git a/PlexRequests.Core/SettingModels/PlexRequestSettings.cs b/PlexRequests.Core/SettingModels/PlexRequestSettings.cs index 8def76efd..6c1d95595 100644 --- a/PlexRequests.Core/SettingModels/PlexRequestSettings.cs +++ b/PlexRequests.Core/SettingModels/PlexRequestSettings.cs @@ -56,6 +56,8 @@ namespace PlexRequests.Core.SettingModels public bool CollectAnalyticData { get; set; } public bool IgnoreNotifyForAutoApprovedRequests { get; set; } public bool Wizard { get; set; } + public bool DisableTvRequestsByEpisode { get; set; } + public bool DisableTvRequestsBySeason { get; set; } /// /// The CSS name of the theme we want diff --git a/PlexRequests.UI/Content/search.js b/PlexRequests.UI/Content/search.js index cab9171e1..e6772061f 100644 --- a/PlexRequests.UI/Content/search.js +++ b/PlexRequests.UI/Content/search.js @@ -468,8 +468,11 @@ $(function () { episodes: result.episodes, tvFullyAvailable: result.tvFullyAvailable, url: result.plexUrl, - tvPartialAvailable : result.tvPartialAvailable + tvPartialAvailable: result.tvPartialAvailable, + disableTvRequestsByEpisode: result.disableTvRequestsByEpisode, + disableTvRequestsBySeason: result.disableTvRequestsBySeason }; + return context; } diff --git a/PlexRequests.UI/Models/SearchTvShowViewModel.cs b/PlexRequests.UI/Models/SearchTvShowViewModel.cs index e552873f7..45bd0c8fd 100644 --- a/PlexRequests.UI/Models/SearchTvShowViewModel.cs +++ b/PlexRequests.UI/Models/SearchTvShowViewModel.cs @@ -55,5 +55,7 @@ namespace PlexRequests.UI.Models public int SiteRating { get; set; } public List Episodes { get; set; } public bool TvFullyAvailable { get; set; } + public bool DisableTvRequestsByEpisode { get; set; } + public bool DisableTvRequestsBySeason { get; set; } } } \ No newline at end of file diff --git a/PlexRequests.UI/Modules/SearchModule.cs b/PlexRequests.UI/Modules/SearchModule.cs index ca728613c..d03339fa0 100644 --- a/PlexRequests.UI/Modules/SearchModule.cs +++ b/PlexRequests.UI/Modules/SearchModule.cs @@ -290,8 +290,10 @@ namespace PlexRequests.UI.Modules private async Task SearchTvShow(string searchTerm) { + Analytics.TrackEventAsync(Category.Search, Action.TvShow, searchTerm, Username, CookieHelper.GetAnalyticClientId(Cookies)); var plexSettings = await PlexService.GetSettingsAsync(); + var prSettings = await PrService.GetSettingsAsync(); var providerId = string.Empty; var apiTv = new List(); @@ -336,7 +338,9 @@ namespace PlexRequests.UI.Modules Runtime = t.show.runtime.ToString(), SeriesId = t.show.id, SeriesName = t.show.name, - Status = t.show.status + Status = t.show.status, + DisableTvRequestsByEpisode = prSettings.DisableTvRequestsByEpisode, + DisableTvRequestsBySeason = prSettings.DisableTvRequestsBySeason }; diff --git a/PlexRequests.UI/Views/Admin/Settings.cshtml b/PlexRequests.UI/Views/Admin/Settings.cshtml index 79aa9eb47..2dfe5c861 100644 --- a/PlexRequests.UI/Views/Admin/Settings.cshtml +++ b/PlexRequests.UI/Views/Admin/Settings.cshtml @@ -193,6 +193,36 @@ } + +
+
+ + @if (Model.DisableTvRequestsByEpisode) + { + + + } + else + { + + } +
+
+ +
+
+ + @if (Model.DisableTvRequestsBySeason) + { + + + } + else + { + + } +
+
diff --git a/PlexRequests.UI/Views/Search/Index.cshtml b/PlexRequests.UI/Views/Search/Index.cshtml index f49dddf6a..5d29eb483 100644 --- a/PlexRequests.UI/Views/Search/Index.cshtml +++ b/PlexRequests.UI/Views/Search/Index.cshtml @@ -213,10 +213,14 @@
{{#if available}}