Enhance display of denied TV shows

pull/4580/head
sephrat 2 years ago
parent d933196cf0
commit 0523c9a3f1

@ -308,6 +308,9 @@ namespace Ombi.Core.Engine.V2
item.PartlyAvailable = oldModel.PartlyAvailable;
item.Requested = oldModel.Requested;
item.Available = oldModel.Available;
item.Denied = oldModel.Denied;
item.DeniedReason = oldModel.DeniedReason;
item.FullyDenied = oldModel.FullyDenied;
item.Approved = oldModel.Approved;
item.SeasonRequests = oldModel.SeasonRequests;
item.RequestId = oldModel.RequestId;

@ -56,6 +56,7 @@ namespace Ombi.Core.Models.Search
public bool FullyAvailable { get; set; }
// We only have some episodes
public bool PartlyAvailable { get; set; }
public bool FullyDenied { get; set; }
public override RequestType Type => RequestType.TvShow;
public string BackdropPath { get; set; }

@ -48,6 +48,7 @@ namespace Ombi.Core.Models.Search.V2
public bool FullyAvailable { get; set; }
// We only have some episodes
public bool PartlyAvailable { get; set; }
public bool FullyDenied { get; set; }
public override RequestType Type => RequestType.TvShow;
}

@ -62,6 +62,7 @@ namespace Ombi.Core.Rule.Rules.Search
request.Requested = true;
request.Approved = tvRequests.ChildRequests.Any(x => x.Approved);
request.Denied = tvRequests.ChildRequests.Any(x => x.Denied ?? false);
request.DeniedReason = tvRequests.ChildRequests.FirstOrDefault(x => x.Denied == true).DeniedReason;
// Let's modify the seasonsrequested to reflect what we have requested...
foreach (var season in request.SeasonRequests)
@ -100,6 +101,11 @@ namespace Ombi.Core.Rule.Rules.Search
request.PartlyAvailable = true;
}
if (request.SeasonRequests.Any() && request.SeasonRequests.All(x => x.Episodes.All(e => e.Denied ?? false)))
{
request.FullyDenied = true;
}
var hasUnairedRequests = request.SeasonRequests.Any() && request.SeasonRequests.All(x => x.Episodes.Any(e => e.AirDate >= DateTime.UtcNow));
if (request.FullyAvailable)

@ -206,6 +206,7 @@ export class DiscoverCardComponent implements OnInit {
this.result.overview = updated.overview;
this.result.approved = updated.approved;
this.result.available = updated.fullyAvailable;
this.result.denied = updated.fullyDenied;
this.fullyLoaded = true;
}

@ -25,6 +25,9 @@ export interface ISearchTvResultV2 {
seasonRequests: INewSeasonRequests[];
requestAll: boolean;
approved: boolean;
denied: boolean;
deniedReason: string;
fullyDenied: boolean;
requested: boolean;
available: boolean;
plexUrl: string;

@ -65,7 +65,7 @@
(click)="request()"><i class="fas fa-plus"></i>
{{ 'Common.Request' | translate }}</button>
<button *ngIf="allEpisodesRequested()" mat-raised-button class="btn-spacing" color="warn" [disabled]>
<button *ngIf="!tv.fullyDenied && allEpisodesRequested()" mat-raised-button class="btn-spacing" color="warn" [disabled]>
<i class="fas fa-check"></i>
{{ 'Common.Requested' | translate }}</button>
@ -82,6 +82,10 @@
class="btn-spacing" color="accent" [disabled]>
<i class="fas fa-check"></i> {{'Common.PartiallyAvailable' | translate }}</button>
<!-- end unaired episodes-->
<button id="deniedButton" *ngIf="tv.fullyDenied" [matTooltip]="tv.deniedReason" mat-raised-button class="btn-spacing" color="warn">
<i class="fas fa-times"></i> {{'Common.Denied' | translate }}
</button>
<button mat-raised-button class="btn-spacing" color="danger" id="reportIssueBtn" *ngIf="issuesEnabled" (click)="issue()">
<i class="fas fa-exclamation"></i> {{

Loading…
Cancel
Save