diff --git a/Ombi.Services/Notification/NotificationEngine.cs b/Ombi.Services/Notification/NotificationEngine.cs index 44caf75b1..3782a1bfb 100644 --- a/Ombi.Services/Notification/NotificationEngine.cs +++ b/Ombi.Services/Notification/NotificationEngine.cs @@ -95,7 +95,7 @@ namespace Ombi.Services.Notification if (user.Equals(adminUsername, StringComparison.CurrentCultureIgnoreCase)) { Log.Info("This user is the Plex server owner"); - await PublishUserNotification(userAccount.Username, userAccount.Email, model.Title, model.PosterPath, type); + await PublishUserNotification(userAccount.Username, userAccount.Email, model.Title, model.PosterPath, type, model.Type); return; } @@ -108,7 +108,7 @@ namespace Ombi.Services.Notification } Log.Info("Sending notification to: {0} at: {1}, for title: {2}", email.Username, email.Email, model.Title); - await PublishUserNotification(email.Username, email.Email, model.Title, model.PosterPath, type); + await PublishUserNotification(email.Username, email.Email, model.Title, model.PosterPath, type, model.Type); } } } @@ -137,7 +137,7 @@ namespace Ombi.Services.Notification if (user.Equals(adminUsername, StringComparison.CurrentCultureIgnoreCase)) { Log.Info("This user is the Plex server owner"); - await PublishUserNotification(userAccount.Username, userAccount.Email, model.Title, model.PosterPath, type); + await PublishUserNotification(userAccount.Username, userAccount.Email, model.Title, model.PosterPath, type, model.Type); return; } @@ -150,7 +150,7 @@ namespace Ombi.Services.Notification } Log.Info("Sending notification to: {0} at: {1}, for title: {2}", email.Username, email.Email, model.Title); - await PublishUserNotification(email.Username, email.Email, model.Title, model.PosterPath, type); + await PublishUserNotification(email.Username, email.Email, model.Title, model.PosterPath, type, model.Type); } } catch (Exception e) @@ -159,7 +159,7 @@ namespace Ombi.Services.Notification } } - private async Task PublishUserNotification(string username, string email, string title, string img, NotificationType type) + private async Task PublishUserNotification(string username, string email, string title, string img, NotificationType type, RequestType requestType) { var notificationModel = new NotificationModel { @@ -167,7 +167,7 @@ namespace Ombi.Services.Notification UserEmail = email, NotificationType = type, Title = title, - ImgSrc = img + ImgSrc = requestType == RequestType.Movie ? $"https://image.tmdb.org/t/p/w300/{img}" : img }; // Send the notification to the user. diff --git a/Ombi.Store/Repository/PlexUserRepository.cs b/Ombi.Store/Repository/PlexUserRepository.cs index 6ef713014..69bb31816 100644 --- a/Ombi.Store/Repository/PlexUserRepository.cs +++ b/Ombi.Store/Repository/PlexUserRepository.cs @@ -48,21 +48,24 @@ namespace Ombi.Store.Repository public PlexUsers GetUser(string userGuid) { var sql = @"SELECT * FROM PlexUsers - WHERE PlexUserId = @UserGuid"; + WHERE PlexUserId = @UserGuid + COLLATE NOCASE"; return Db.QueryFirstOrDefault(sql, new {UserGuid = userGuid}); } public PlexUsers GetUserByUsername(string username) { var sql = @"SELECT * FROM PlexUsers - WHERE Username = @UserName"; + WHERE Username = @UserName + COLLATE NOCASE"; return Db.QueryFirstOrDefault(sql, new {UserName = username}); } public async Task GetUserAsync(string userguid) { var sql = @"SELECT * FROM PlexUsers - WHERE PlexUserId = @UserGuid"; + WHERE PlexUserId = @UserGuid + COLLATE NOCASE"; return await Db.QueryFirstOrDefaultAsync(sql, new {UserGuid = userguid}); } diff --git a/Ombi.UI/Content/search.js b/Ombi.UI/Content/search.js index d05f3b4e6..443b1c050 100644 --- a/Ombi.UI/Content/search.js +++ b/Ombi.UI/Content/search.js @@ -83,7 +83,7 @@ $(function () { }); // Click TV dropdown option - $(document).on("click", ".dropdownTv", function (e) { + $(document).on("click", ".requestTv", function (e) { e.preventDefault(); var buttonId = e.target.id; if ($("#" + buttonId).attr('disabled')) { @@ -429,7 +429,8 @@ $(function () { url: result.plexUrl, tvPartialAvailable: result.tvPartialAvailable, disableTvRequestsByEpisode: result.disableTvRequestsByEpisode, - disableTvRequestsBySeason: result.disableTvRequestsBySeason + disableTvRequestsBySeason: result.disableTvRequestsBySeason, + enableTvRequestsForOnlySeries: result.enableTvRequestsForOnlySeries }; return context; diff --git a/Ombi.UI/Models/SearchTvShowViewModel.cs b/Ombi.UI/Models/SearchTvShowViewModel.cs index 47af1ba47..faa6333ba 100644 --- a/Ombi.UI/Models/SearchTvShowViewModel.cs +++ b/Ombi.UI/Models/SearchTvShowViewModel.cs @@ -57,5 +57,6 @@ namespace Ombi.UI.Models public bool TvFullyAvailable { get; set; } public bool DisableTvRequestsByEpisode { get; set; } public bool DisableTvRequestsBySeason { get; set; } + public bool EnableTvRequestsForOnlySeries { get; set; } } } \ No newline at end of file diff --git a/Ombi.UI/Modules/RequestsModule.cs b/Ombi.UI/Modules/RequestsModule.cs index d707244c0..0bd6a3d04 100644 --- a/Ombi.UI/Modules/RequestsModule.cs +++ b/Ombi.UI/Modules/RequestsModule.cs @@ -351,7 +351,8 @@ namespace Ombi.UI.Modules NotificationType = NotificationType.Issue, Title = originalRequest.Title, DateTime = DateTime.Now, - Body = issue == IssueState.Other ? comment : issue.ToString().ToCamelCaseWords() + Body = issue == IssueState.Other ? comment : issue.ToString().ToCamelCaseWords(), + ImgSrc = originalRequest.Type == RequestType.Movie ? $"https://image.tmdb.org/t/p/w300/{originalRequest.PosterPath}" : originalRequest.PosterPath }; await NotificationService.Publish(model); diff --git a/Ombi.UI/Modules/SearchModule.cs b/Ombi.UI/Modules/SearchModule.cs index 808fb3023..8759d0325 100644 --- a/Ombi.UI/Modules/SearchModule.cs +++ b/Ombi.UI/Modules/SearchModule.cs @@ -366,7 +366,8 @@ namespace Ombi.UI.Modules SeriesName = t.show.name, Status = t.show.status, DisableTvRequestsByEpisode = prSettings.DisableTvRequestsByEpisode, - DisableTvRequestsBySeason = prSettings.DisableTvRequestsBySeason + DisableTvRequestsBySeason = prSettings.DisableTvRequestsBySeason, + EnableTvRequestsForOnlySeries = (prSettings.DisableTvRequestsByEpisode && prSettings.DisableTvRequestsBySeason) }; @@ -1276,7 +1277,8 @@ namespace Ombi.UI.Modules User = Username, DateTime = DateTime.Now, NotificationType = NotificationType.NewRequest, - RequestType = model.Type + RequestType = model.Type, + ImgSrc = model.Type == RequestType.Movie ? $"https://image.tmdb.org/t/p/w300/{model.PosterPath}" : model.PosterPath }; await NotificationService.Publish(notificationModel); } @@ -1314,7 +1316,8 @@ namespace Ombi.UI.Modules User = Username, DateTime = DateTime.Now, NotificationType = NotificationType.NewRequest, - RequestType = model.Type + RequestType = model.Type, + ImgSrc = model.Type == RequestType.Movie ? $"https://image.tmdb.org/t/p/w300/{model.PosterPath}" : model.PosterPath }; await NotificationService.Publish(notificationModel); } diff --git a/Ombi.UI/Views/Admin/Settings.cshtml b/Ombi.UI/Views/Admin/Settings.cshtml index 559373e9a..54e588c20 100644 --- a/Ombi.UI/Views/Admin/Settings.cshtml +++ b/Ombi.UI/Views/Admin/Settings.cshtml @@ -23,7 +23,7 @@
- Plex Request Settings + Ombi Configuration
diff --git a/Ombi.UI/Views/Search/Index.cshtml b/Ombi.UI/Views/Search/Index.cshtml index ffd6553d4..8dc8fb4c2 100644 --- a/Ombi.UI/Views/Search/Index.cshtml +++ b/Ombi.UI/Views/Search/Index.cshtml @@ -175,23 +175,27 @@ @*//TODO Not used yet*@
{{else}} - + {{#if_eq enableTvRequestsForOnlySeries true}} + + {{else}} + + {{/if_eq}} {{#if available}}
@UI.Search_ViewInPlex diff --git a/Ombi.UI/Views/Shared/Partial/_Sidebar.cshtml b/Ombi.UI/Views/Shared/Partial/_Sidebar.cshtml index 34b080460..df5969a95 100644 --- a/Ombi.UI/Views/Shared/Partial/_Sidebar.cshtml +++ b/Ombi.UI/Views/Shared/Partial/_Sidebar.cshtml @@ -3,7 +3,7 @@
@Html.GetSidebarUrl(Context, "/admin/about", "About") - @Html.GetSidebarUrl(Context, "/admin", "Plex Request") + @Html.GetSidebarUrl(Context, "/admin", "Ombi Configuration") @Html.GetSidebarUrl(Context, "/admin/customization", "Customization") @Html.GetSidebarUrl(Context, "/admin/landingpage", "Landing Page") @Html.GetSidebarUrl(Context, "/admin/authentication", "Authentication")