Trigger update of request limit on new request

pull/2467/head
Kenton Royal 6 years ago
parent 0e46e66a6d
commit b30a2c0950

@ -21,17 +21,20 @@ export class RemainingRequestsComponent implements OnInit {
ngOnInit(): void { ngOnInit(): void {
var self = this; var self = this;
this.update(); this.update();
setInterval(function(){ setInterval(function(){
self.update() self.calculateTime();
}, 10000) }, 10000)
setInterval(function(){
self.update()
}, 60000)
} }
update(): void { update(): void {
var callback = (remaining => { var callback = (remaining => {
this.remaining = remaining; this.remaining = remaining;
this.daysUntil = Math.ceil(this.daysUntilNextRequest()); this.calculateTime();
this.hoursUntil = Math.ceil(this.hoursUntilNextRequest());
this.minutesUntil = Math.ceil(this.minutesUntilNextRequest())
}); });
if (this.movie) { if (this.movie) {
@ -41,6 +44,12 @@ export class RemainingRequestsComponent implements OnInit {
} }
} }
calculateTime(): void {
this.daysUntil = Math.ceil(this.daysUntilNextRequest());
this.hoursUntil = Math.ceil(this.hoursUntilNextRequest());
this.minutesUntil = Math.ceil(this.minutesUntilNextRequest())
}
daysUntilNextRequest(): number { daysUntilNextRequest(): number {
return (new Date(this.remaining.nextRequest).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24; return (new Date(this.remaining.nextRequest).getTime() - new Date().getTime()) / 1000 / 60 / 60 / 24;
} }

@ -20,7 +20,7 @@
</div> </div>
</div> </div>
<remaining-requests [movie]="true"></remaining-requests> <remaining-requests [movie]="true" #remainingFilms></remaining-requests>
<!-- Movie content --> <!-- Movie content -->
<div id="movieList"> <div id="movieList">

@ -1,5 +1,5 @@
import { PlatformLocation } from "@angular/common"; import { PlatformLocation } from "@angular/common";
import { Component, Input, OnInit } from "@angular/core"; import { Component, Input, OnInit, ViewChild } from "@angular/core";
import { DomSanitizer } from "@angular/platform-browser"; import { DomSanitizer } from "@angular/platform-browser";
import { TranslateService } from "@ngx-translate/core"; import { TranslateService } from "@ngx-translate/core";
import { Subject } from "rxjs"; import { Subject } from "rxjs";
@ -8,6 +8,7 @@ import { debounceTime, distinctUntilChanged } from "rxjs/operators";
import { AuthService } from "../auth/auth.service"; import { AuthService } from "../auth/auth.service";
import { IIssueCategory, IRequestEngineResult, ISearchMovieResult } from "../interfaces"; import { IIssueCategory, IRequestEngineResult, ISearchMovieResult } from "../interfaces";
import { NotificationService, RequestService, SearchService } from "../services"; import { NotificationService, RequestService, SearchService } from "../services";
import { RemainingRequestsComponent } from "../requests/remainingrequests.component";
@Component({ @Component({
selector: "movie-search", selector: "movie-search",
@ -24,6 +25,7 @@ export class MovieSearchComponent implements OnInit {
@Input() public issueCategories: IIssueCategory[]; @Input() public issueCategories: IIssueCategory[];
@Input() public issuesEnabled: boolean; @Input() public issuesEnabled: boolean;
@ViewChild('remainingFilms') public remainingRequestsComponent: RemainingRequestsComponent;
public issuesBarVisible = false; public issuesBarVisible = false;
public issueRequestTitle: string; public issueRequestTitle: string;
public issueRequestId: number; public issueRequestId: number;
@ -89,7 +91,7 @@ export class MovieSearchComponent implements OnInit {
this.requestService.requestMovie({ theMovieDbId: searchResult.id }) this.requestService.requestMovie({ theMovieDbId: searchResult.id })
.subscribe(x => { .subscribe(x => {
this.result = x; this.result = x;
this.remainingRequestsComponent.update();
if (this.result.result) { if (this.result.result) {
this.translate.get("Search.RequestAdded", { title: searchResult.title }).subscribe(x => { this.translate.get("Search.RequestAdded", { title: searchResult.title }).subscribe(x => {
this.notificationService.success(x); this.notificationService.success(x);

@ -1,4 +1,4 @@
import { Component, Input, OnInit} from "@angular/core"; import { Component, Input, OnInit, ViewChild} from "@angular/core";
import { NotificationService } from "../services"; import { NotificationService } from "../services";
import { RequestService } from "../services"; import { RequestService } from "../services";
@ -7,6 +7,7 @@ import { SearchService } from "../services";
import { INewSeasonRequests, IRequestEngineResult, ISeasonsViewModel, ITvRequestViewModel } from "../interfaces"; import { INewSeasonRequests, IRequestEngineResult, ISeasonsViewModel, ITvRequestViewModel } from "../interfaces";
import { IEpisodesRequests } from "../interfaces"; import { IEpisodesRequests } from "../interfaces";
import { ISearchTvResult } from "../interfaces"; import { ISearchTvResult } from "../interfaces";
import { RemainingRequestsComponent } from "../requests/remainingrequests.component";
@Component({ @Component({
selector: "seriesinformation", selector: "seriesinformation",

@ -27,7 +27,7 @@
</div> </div>
</div> </div>
<remaining-requests [movie]="false"></remaining-requests> <remaining-requests [movie]="false" #remainingTvShows></remaining-requests>
<!-- Movie content --> <!-- Movie content -->
<div id="actorMovieList"> <div id="actorMovieList">

@ -1,5 +1,5 @@
import { PlatformLocation } from "@angular/common"; import { PlatformLocation } from "@angular/common";
import { Component, Input, OnInit } from "@angular/core"; import { Component, Input, OnInit, ViewChild } from "@angular/core";
import { DomSanitizer } from "@angular/platform-browser"; import { DomSanitizer } from "@angular/platform-browser";
import { Subject } from "rxjs"; import { Subject } from "rxjs";
import { debounceTime, distinctUntilChanged } from "rxjs/operators"; import { debounceTime, distinctUntilChanged } from "rxjs/operators";
@ -7,6 +7,7 @@ import { debounceTime, distinctUntilChanged } from "rxjs/operators";
import { AuthService } from "../auth/auth.service"; import { AuthService } from "../auth/auth.service";
import { IIssueCategory, IRequestEngineResult, ISearchTvResult, ISeasonsViewModel, ITvRequestViewModel } from "../interfaces"; import { IIssueCategory, IRequestEngineResult, ISearchTvResult, ISeasonsViewModel, ITvRequestViewModel } from "../interfaces";
import { ImageService, NotificationService, RequestService, SearchService } from "../services"; import { ImageService, NotificationService, RequestService, SearchService } from "../services";
import { RemainingRequestsComponent } from "../requests/remainingrequests.component";
@Component({ @Component({
selector: "tv-search", selector: "tv-search",
@ -24,6 +25,7 @@ export class TvSearchComponent implements OnInit {
@Input() public issueCategories: IIssueCategory[]; @Input() public issueCategories: IIssueCategory[];
@Input() public issuesEnabled: boolean; @Input() public issuesEnabled: boolean;
@ViewChild('remainingTvShows') public remainingRequestsComponent: RemainingRequestsComponent;
public issuesBarVisible = false; public issuesBarVisible = false;
public issueRequestTitle: string; public issueRequestTitle: string;
public issueRequestId: number; public issueRequestId: number;
@ -162,6 +164,7 @@ export class TvSearchComponent implements OnInit {
this.requestService.requestTv(viewModel) this.requestService.requestTv(viewModel)
.subscribe(x => { .subscribe(x => {
this.result = x; this.result = x;
this.remainingRequestsComponent.update();
if (this.result.result) { if (this.result.result) {
this.notificationService.success( this.notificationService.success(
`Request for ${searchResult.title} has been added successfully`); `Request for ${searchResult.title} has been added successfully`);

Loading…
Cancel
Save