diff --git a/PlexRequests.Helpers/LoggingHelper.cs b/PlexRequests.Helpers/LoggingHelper.cs index db7270db3..49eb9d0f7 100644 --- a/PlexRequests.Helpers/LoggingHelper.cs +++ b/PlexRequests.Helpers/LoggingHelper.cs @@ -97,6 +97,18 @@ public static void ConfigureLogging(string connectionString) var rule1 = new LoggingRule("*", LogLevel.Info, databaseTarget); config.LoggingRules.Add(rule1); + + var fileTarget = new FileTarget + { + Name = "file", + FileName = "logs/${shortdate}.log", + Layout = "${date} ${logger} ${level}: ${message} ${exception:tostring}", + CreateDirs = true + }; + config.AddTarget(fileTarget); + var rule2 = new LoggingRule("*", LogLevel.Trace, fileTarget); + config.LoggingRules.Add(rule2); + // Step 5. Activate the configuration LogManager.Configuration = config; } diff --git a/PlexRequests.UI/Content/search.js b/PlexRequests.UI/Content/search.js index 176bb7d3c..62ed6843b 100644 --- a/PlexRequests.UI/Content/search.js +++ b/PlexRequests.UI/Content/search.js @@ -31,10 +31,15 @@ $("#tvSearchContent").on("input", function () { // Click TV dropdown option $(document).on("click", ".dropdownTv", function (e) { + e.preventDefault(); var buttonId = e.target.id; + if ($("#" + buttonId).attr('disabled')) { + return; + } + $("#" + buttonId).prop("disabled", true); + loadingButton(buttonId, "primary"); - e.preventDefault(); var $form = $('#form' + buttonId); var data = $form.serialize(); @@ -53,15 +58,19 @@ $(document).on("click", ".dropdownTv", function (e) { var url = $form.prop('action'); sendRequestAjax(data, type, url, buttonId); - $("#" + buttonId).prop("disabled", false); }); // Click Request for movie $(document).on("click", ".requestMovie", function (e) { + e.preventDefault(); var buttonId = e.target.id; + if ($("#" + buttonId).attr('disabled')) { + return; + } + $("#" + buttonId).prop("disabled", true); loadingButton(buttonId, "primary"); - e.preventDefault(); + var $form = $('#form' + buttonId); @@ -70,7 +79,7 @@ $(document).on("click", ".requestMovie", function (e) { var data = $form.serialize(); sendRequestAjax(data, type, url, buttonId); - $("#" + buttonId).prop("disabled", false); + }); function sendRequestAjax(data, type, url, buttonId) { @@ -90,6 +99,9 @@ function sendRequestAjax(data, type, url, buttonId) { $('#' + buttonId).addClass("btn-success-outline"); } else { generateNotify(response.message, "warning"); + $('#' + buttonId).html(" Request"); + $('#' + buttonId).attr("data-toggle", "dropdown"); + $("#" + buttonId).removeAttr("disabled"); } }, error: function (e) { diff --git a/PlexRequests.UI/Modules/SearchModule.cs b/PlexRequests.UI/Modules/SearchModule.cs index 6b03f15dd..1a77c6247 100644 --- a/PlexRequests.UI/Modules/SearchModule.cs +++ b/PlexRequests.UI/Modules/SearchModule.cs @@ -224,22 +224,54 @@ private Response RequestMovie(int movieId) Log.Trace("Settings: "); Log.Trace(cpSettings.DumpJson); + if (cpSettings.Enabled) + { + Log.Info("Adding movie to CP (No approval required)"); + var result = CouchPotatoApi.AddMovie(model.ImdbId, cpSettings.ApiKey, model.Title, + cpSettings.FullUri, cpSettings.ProfileId); + Log.Debug("Adding movie to CP result {0}", result); + if (result) + { + model.Approved = true; + Log.Debug("Adding movie to database requests (No approval required)"); + RequestService.AddRequest(model); + + var notificationModel = new NotificationModel + { + Title = model.Title, + User = model.RequestedBy, + DateTime = DateTime.Now, + NotificationType = NotificationType.NewRequest + }; + NotificationService.Publish(notificationModel); - Log.Info("Adding movie to CP (No approval required)"); - var result = CouchPotatoApi.AddMovie(model.ImdbId, cpSettings.ApiKey, model.Title, cpSettings.FullUri, cpSettings.ProfileId); - Log.Debug("Adding movie to CP result {0}", result); - if (result) + return Response.AsJson(new JsonResponseModel {Result = true}); + } + return + Response.AsJson(new JsonResponseModel + { + Result = false, + Message = + "Something went wrong adding the movie to CouchPotato! Please check your settings." + }); + } + else { model.Approved = true; Log.Debug("Adding movie to database requests (No approval required)"); RequestService.AddRequest(model); - var notificationModel = new NotificationModel { Title = model.Title, User = model.RequestedBy, DateTime = DateTime.Now, NotificationType = NotificationType.NewRequest }; + var notificationModel = new NotificationModel + { + Title = model.Title, + User = model.RequestedBy, + DateTime = DateTime.Now, + NotificationType = NotificationType.NewRequest + }; NotificationService.Publish(notificationModel); return Response.AsJson(new JsonResponseModel { Result = true }); } - return Response.AsJson(new JsonResponseModel { Result = false, Message = "Something went wrong adding the movie to CouchPotato! Please check your settings." }); } try @@ -305,7 +337,7 @@ private Response RequestTvShow(int showId, string seasons) Approved = false, RequestedBy = Session[SessionKeys.UsernameKey].ToString(), Issues = IssueState.None, - ImdbId = showInfo.externals?.imdb ?? string.Empty, + ImdbId = showInfo.externals?.imdb ?? string.Empty, SeasonCount = showInfo.seasonCount }; var seasonsList = new List(); @@ -323,7 +355,7 @@ private Response RequestTvShow(int showId, string seasons) model.SeasonsRequested = "All"; break; } - + model.SeasonList = seasonsList.ToArray(); var settings = PrService.GetSettings(); diff --git a/PlexRequests.UI/NLog.config b/PlexRequests.UI/NLog.config index 9adcfc54b..42f8fbfdb 100644 --- a/PlexRequests.UI/NLog.config +++ b/PlexRequests.UI/NLog.config @@ -13,22 +13,8 @@ layout="${date} ${logger} ${level}: ${message}" /> - - - \ No newline at end of file diff --git a/PlexRequests.UI/Views/Search/Index.cshtml b/PlexRequests.UI/Views/Search/Index.cshtml index 1e0a50cc2..4356c069a 100644 --- a/PlexRequests.UI/Views/Search/Index.cshtml +++ b/PlexRequests.UI/Views/Search/Index.cshtml @@ -76,9 +76,15 @@
- + {{#if_eq type "movie"}} + +

{{title}} ({{year}})

+
+ {{else}} +

{{title}} ({{year}})

+ {{/if_eq}}

{{overview}}