diff --git a/src/Ombi.Core/Senders/TvSender.cs b/src/Ombi.Core/Senders/TvSender.cs index 9cb98a40b..8187cad59 100644 --- a/src/Ombi.Core/Senders/TvSender.cs +++ b/src/Ombi.Core/Senders/TvSender.cs @@ -167,7 +167,7 @@ namespace Ombi.Core.Senders { // Get the root path from the rootfolder selected. // For some reason, if we haven't got one use the first root folder in Sonarr - rootFolderPath = await GetSonarrRootPath(model.ParentRequest.RootFolder ?? int.Parse(s.RootPathAnime), s); + rootFolderPath = await GetSonarrRootPath(int.Parse(s.RootPathAnime), s); int.TryParse(s.QualityProfileAnime, out qualityToUse); if (profiles != null) { @@ -188,7 +188,7 @@ namespace Ombi.Core.Senders int.TryParse(s.QualityProfile, out qualityToUse); // Get the root path from the rootfolder selected. // For some reason, if we haven't got one use the first root folder in Sonarr - rootFolderPath = await GetSonarrRootPath(model.ParentRequest.RootFolder ?? int.Parse(s.RootPath), s); + rootFolderPath = await GetSonarrRootPath(int.Parse(s.RootPath), s); if (profiles != null) { if (profiles.SonarrRootPath > 0) @@ -206,11 +206,19 @@ namespace Ombi.Core.Senders // Overrides on the request take priority if (model.ParentRequest.QualityOverride.HasValue) { - qualityToUse = model.ParentRequest.QualityOverride.Value; + var qualityOverride = model.ParentRequest.QualityOverride.Value; + if (qualityOverride > 0) + { + qualityToUse = qualityOverride; + } } if (model.ParentRequest.RootFolder.HasValue) { - rootFolderPath = await GetSonarrRootPath(model.ParentRequest.RootFolder.Value, s); + var rootfolderOverride = model.ParentRequest.RootFolder.Value; + if (rootfolderOverride > 0) + { + rootFolderPath = await GetSonarrRootPath(rootfolderOverride, s); + } } // Are we using v3 sonarr? @@ -547,4 +555,4 @@ namespace Ombi.Core.Senders return string.Empty; } } -} \ No newline at end of file +} diff --git a/src/Ombi.Notifications/NotificationMessageCurlys.cs b/src/Ombi.Notifications/NotificationMessageCurlys.cs index 4c4aa01ef..0dffe0b90 100644 --- a/src/Ombi.Notifications/NotificationMessageCurlys.cs +++ b/src/Ombi.Notifications/NotificationMessageCurlys.cs @@ -39,12 +39,7 @@ namespace Ombi.Notifications Year = req?.ReleaseDate.Year.ToString(); Overview = req?.Overview; AdditionalInformation = opts?.AdditionalInformation ?? string.Empty; - - if (!string.IsNullOrEmpty(req?.PosterPath)) - { - PosterImage = $"https://image.tmdb.org/t/p/w300/{req.PosterPath.TrimStart('/')}"; - } - + PosterImage = $"https://image.tmdb.org/t/p/w300/{req?.PosterPath?.TrimStart('/') ?? string.Empty}"; CalculateRequestStatus(req); } @@ -58,11 +53,8 @@ namespace Ombi.Notifications Year = req?.ParentRequest?.ReleaseDate.Year.ToString(); Overview = req?.ParentRequest?.Overview; AdditionalInformation = opts.AdditionalInformation; - - if (!string.IsNullOrEmpty(req?.ParentRequest?.PosterPath)) - { - PosterImage = $"https://image.tmdb.org/t/p/w300/{req.ParentRequest?.PosterPath.TrimStart('/')}"; - } + PosterImage = + $"https://image.tmdb.org/t/p/w300/{req?.ParentRequest?.PosterPath?.TrimStart('/') ?? string.Empty}"; // Generate episode list. StringBuilder epSb = new StringBuilder(); diff --git a/src/Ombi/ClientApp/src/app/login/resetpassword.component.html b/src/Ombi/ClientApp/src/app/login/resetpassword.component.html index c1c013719..9fbeb7eda 100644 --- a/src/Ombi/ClientApp/src/app/login/resetpassword.component.html +++ b/src/Ombi/ClientApp/src/app/login/resetpassword.component.html @@ -1,21 +1,32 @@ - -
-
-
-
- -
-
-

+ +
+ +
+
+
+ +
-
-
\ No newline at end of file + + {{'PasswordReset.EmailAddressPlaceholder' | translate}} + + + {{'PasswordReset.EmailAddressPlaceholder' | translate}} is required + + + + + + + + + + +
+
diff --git a/src/Ombi/ClientApp/src/app/login/resetpassword.component.ts b/src/Ombi/ClientApp/src/app/login/resetpassword.component.ts index 7c228e962..104d77c68 100644 --- a/src/Ombi/ClientApp/src/app/login/resetpassword.component.ts +++ b/src/Ombi/ClientApp/src/app/login/resetpassword.component.ts @@ -2,12 +2,14 @@ import { Component, OnInit, Inject } from "@angular/core"; import { FormBuilder, FormGroup, Validators } from "@angular/forms"; import { DomSanitizer } from "@angular/platform-browser"; +import { fadeInOutAnimation } from "../animations/fadeinout"; import { ICustomizationSettings } from "../interfaces"; import { IdentityService, ImageService, NotificationService, SettingsService } from "../services"; @Component({ templateUrl: "./resetpassword.component.html", + animations: [fadeInOutAnimation], styleUrls: ["./login.component.scss"], }) export class ResetPasswordComponent implements OnInit { diff --git a/src/Ombi/ClientApp/src/app/login/tokenresetpassword.component.html b/src/Ombi/ClientApp/src/app/login/tokenresetpassword.component.html index fdedfb900..6a1c2567f 100644 --- a/src/Ombi/ClientApp/src/app/login/tokenresetpassword.component.html +++ b/src/Ombi/ClientApp/src/app/login/tokenresetpassword.component.html @@ -1,30 +1,56 @@ -
-
-
-
- -
-
-

- - -
The passwords do not match
-
- -
The Password is required
-
The Email is required
-
The Confirm Password is required
-
- - + +
+ +
+
+
+ + +
-
- -
\ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-advanced-options/movie-advanced-options.component.html b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-advanced-options/movie-advanced-options.component.html index b7d3d6b40..dc21e18c4 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-advanced-options/movie-advanced-options.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-advanced-options/movie-advanced-options.component.html @@ -1,6 +1,5 @@ -

- - Advanced Options

+

{{'MediaDetails.AdvancedOptions' | translate }}

+
{{'MediaDetails.QualityProfilesSelect' | translate }} @@ -18,6 +17,6 @@
- - + +
\ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-advanced-options/tv-advanced-options.component.html b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-advanced-options/tv-advanced-options.component.html index 14e6629f1..13c39a111 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-advanced-options/tv-advanced-options.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-advanced-options/tv-advanced-options.component.html @@ -1,7 +1,10 @@ -

- - Advanced Options

+

{{'MediaDetails.AdvancedOptions' | translate }}

+
+ {{'MediaDetails.QualityProfilesSelect' | translate }} @@ -18,6 +21,6 @@
- - + +
\ No newline at end of file diff --git a/src/Ombi/wwwroot/translations/en.json b/src/Ombi/wwwroot/translations/en.json index 28565d0f7..cf865fce7 100644 --- a/src/Ombi/wwwroot/translations/en.json +++ b/src/Ombi/wwwroot/translations/en.json @@ -254,6 +254,7 @@ "AdvancedOptions":"Advanced Options", "AutoApproveOptions":"You can configure the request here, once requested it will be send to your DVR application and will be auto approved!", "AutoApproveOptionsTv":"You can configure the request here, once requested it will be send to your DVR application and will be auto approved! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it!", + "AutoApproveOptionsTvShort":"You can configure the request here, once requested it will be send to your DVR application! If the request is already in Sonarr, we will not change the root folder or quality profile if you set it!", "QualityProfilesSelect":"Select A Quality Profile", "RootFolderSelect":"Select A Root Folder", "Status":"Status",