Fix issues with remaining count updating

pull/2467/head
Kenton Royal 7 years ago
parent b30a2c0950
commit c5e396a9e8

@ -22,6 +22,10 @@ export class RemainingRequestsComponent implements OnInit {
var self = this; var self = this;
this.update(); this.update();
this.requestService.onRequested().subscribe(m => {
this.update();
});
setInterval(function(){ setInterval(function(){
self.calculateTime(); self.calculateTime();
}, 10000) }, 10000)

@ -1,5 +1,5 @@
import { PlatformLocation } from "@angular/common"; import { PlatformLocation } from "@angular/common";
import { Component, Input, OnInit, ViewChild } from "@angular/core"; import { Component, Input, OnInit } 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,7 +8,6 @@ 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",
@ -25,7 +24,6 @@ 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;
@ -91,7 +89,6 @@ 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, ViewChild} from "@angular/core"; import { Component, Input, OnInit } from "@angular/core";
import { NotificationService } from "../services"; import { NotificationService } from "../services";
import { RequestService } from "../services"; import { RequestService } from "../services";
@ -7,7 +7,6 @@ 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",

@ -1,5 +1,5 @@
import { PlatformLocation } from "@angular/common"; import { PlatformLocation } from "@angular/common";
import { Component, Input, OnInit, ViewChild } from "@angular/core"; import { Component, Input, OnInit } 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,7 +7,6 @@ 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",
@ -25,7 +24,6 @@ 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;
@ -164,7 +162,6 @@ 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`);

@ -2,7 +2,7 @@ import { PlatformLocation } from "@angular/common";
import { Injectable } from "@angular/core"; import { Injectable } from "@angular/core";
import { HttpClient } from "@angular/common/http"; import { HttpClient } from "@angular/common/http";
import { Observable } from "rxjs"; import { Observable, ReplaySubject } from "rxjs";
import { TreeNode } from "primeng/primeng"; import { TreeNode } from "primeng/primeng";
import { FilterType, IChildRequests, IFilter, IMovieRequestModel, IMovieRequests, IMovieUpdateModel, IRequestEngineResult, IRequestsViewModel, ITvRequests, ITvUpdateModel, OrderType } from "../interfaces"; import { FilterType, IChildRequests, IFilter, IMovieRequestModel, IMovieRequests, IMovieUpdateModel, IRequestEngineResult, IRequestsViewModel, ITvRequests, ITvUpdateModel, OrderType } from "../interfaces";
@ -12,10 +12,15 @@ import { IRemainingRequests } from "../interfaces/IRemainingRequests";
@Injectable() @Injectable()
export class RequestService extends ServiceHelpers { export class RequestService extends ServiceHelpers {
private requestEvents = new ReplaySubject<IRequestEngineResult>();
constructor(http: HttpClient, public platformLocation: PlatformLocation) { constructor(http: HttpClient, public platformLocation: PlatformLocation) {
super(http, "/api/v1/Request/", platformLocation); super(http, "/api/v1/Request/", platformLocation);
} }
public onRequested(): Observable<IRequestEngineResult> {
return this.requestEvents.asObservable();
}
public getRemainingMovieRequests(): Observable<IRemainingRequests> { public getRemainingMovieRequests(): Observable<IRemainingRequests> {
return this.http.get<IRemainingRequests>(`${this.url}movie/remaining`, {headers: this.headers}); return this.http.get<IRemainingRequests>(`${this.url}movie/remaining`, {headers: this.headers});
} }
@ -25,7 +30,14 @@ export class RequestService extends ServiceHelpers {
} }
public requestMovie(movie: IMovieRequestModel): Observable<IRequestEngineResult> { public requestMovie(movie: IMovieRequestModel): Observable<IRequestEngineResult> {
return this.http.post<IRequestEngineResult>(`${this.url}Movie/`, JSON.stringify(movie), {headers: this.headers}); var observer = Observable.create(observer => {
this.http.post<IRequestEngineResult>(`${this.url}Movie/`, JSON.stringify(movie), {headers: this.headers}).subscribe(m => {
observer.next(m);
this.requestEvents.next(m);
});
});
return observer;
} }
public getTotalMovies(): Observable<number> { public getTotalMovies(): Observable<number> {
@ -37,7 +49,14 @@ export class RequestService extends ServiceHelpers {
} }
public requestTv(tv: ITvRequestViewModel): Observable<IRequestEngineResult> { public requestTv(tv: ITvRequestViewModel): Observable<IRequestEngineResult> {
return this.http.post<IRequestEngineResult>(`${this.url}TV/`, JSON.stringify(tv), {headers: this.headers}); var observer = Observable.create(observer => {
return this.http.post<IRequestEngineResult>(`${this.url}TV/`, JSON.stringify(tv), { headers: this.headers }).subscribe(m => {
observer.next(m);
this.requestEvents.next(m);
});
});
return observer;
} }
public approveMovie(movie: IMovieUpdateModel): Observable<IRequestEngineResult> { public approveMovie(movie: IMovieUpdateModel): Observable<IRequestEngineResult> {

Loading…
Cancel
Save