mirror of
https://github.com/Ombi-app/Ombi.git
synced 2025-08-20 21:33:15 -07:00
Move logic for notifying when reuqest is complete
This commit is contained in:
parent
26904d3947
commit
4cad24f8e9
7 changed files with 15 additions and 11 deletions
|
@ -2,6 +2,7 @@
|
||||||
import { RequestService } from "../services";
|
import { RequestService } from "../services";
|
||||||
|
|
||||||
import { Component, Input, OnInit } from "@angular/core";
|
import { Component, Input, OnInit } from "@angular/core";
|
||||||
|
import { Observable } from "rxjs";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: "remaining-requests",
|
selector: "remaining-requests",
|
||||||
|
@ -14,6 +15,7 @@ export class RemainingRequestsComponent implements OnInit {
|
||||||
public daysUntil: number;
|
public daysUntil: number;
|
||||||
public hoursUntil: number;
|
public hoursUntil: number;
|
||||||
public minutesUntil: number;
|
public minutesUntil: number;
|
||||||
|
@Input() quotaRefreshEvents: Observable<void>;
|
||||||
|
|
||||||
constructor(private requestService: RequestService) {
|
constructor(private requestService: RequestService) {
|
||||||
}
|
}
|
||||||
|
@ -23,7 +25,7 @@ export class RemainingRequestsComponent implements OnInit {
|
||||||
|
|
||||||
this.update();
|
this.update();
|
||||||
|
|
||||||
this.requestService.requestEvents.subscribe(() => {
|
this.quotaRefreshEvents.subscribe(() => {
|
||||||
this.update();
|
this.update();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<remaining-requests [movie]="true" #remainingFilms></remaining-requests>
|
<remaining-requests [movie]="true" [quotaRefreshEvents]="movieRequested.asObservable()" #remainingFilms></remaining-requests>
|
||||||
|
|
||||||
<!-- Movie content -->
|
<!-- Movie content -->
|
||||||
<div id="movieList">
|
<div id="movieList">
|
||||||
|
|
|
@ -17,6 +17,7 @@ export class MovieSearchComponent implements OnInit {
|
||||||
|
|
||||||
public searchText: string;
|
public searchText: string;
|
||||||
public searchChanged: Subject<string> = new Subject<string>();
|
public searchChanged: Subject<string> = new Subject<string>();
|
||||||
|
public movieRequested: Subject<void> = new Subject<void>();
|
||||||
public movieResults: ISearchMovieResult[];
|
public movieResults: ISearchMovieResult[];
|
||||||
public result: IRequestEngineResult;
|
public result: IRequestEngineResult;
|
||||||
|
|
||||||
|
@ -88,7 +89,7 @@ export class MovieSearchComponent implements OnInit {
|
||||||
try {
|
try {
|
||||||
this.requestService.requestMovie({ theMovieDbId: searchResult.id })
|
this.requestService.requestMovie({ theMovieDbId: searchResult.id })
|
||||||
.subscribe(x => {
|
.subscribe(x => {
|
||||||
this.requestService.requestEvents.next();
|
this.movieRequested.next();
|
||||||
this.result = x;
|
this.result = x;
|
||||||
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 => {
|
||||||
|
|
|
@ -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 { Subject } from "rxjs";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: "seriesinformation",
|
selector: "seriesinformation",
|
||||||
|
@ -18,9 +19,10 @@ export class SeriesInformationComponent implements OnInit {
|
||||||
public result: IRequestEngineResult;
|
public result: IRequestEngineResult;
|
||||||
public series: ISearchTvResult;
|
public series: ISearchTvResult;
|
||||||
public requestedEpisodes: IEpisodesRequests[] = [];
|
public requestedEpisodes: IEpisodesRequests[] = [];
|
||||||
|
|
||||||
@Input() private seriesId: number;
|
@Input() private seriesId: number;
|
||||||
|
|
||||||
|
@Input() public tvRequested: Subject<void>;
|
||||||
|
|
||||||
constructor(private searchService: SearchService, private requestService: RequestService, private notificationService: NotificationService) { }
|
constructor(private searchService: SearchService, private requestService: RequestService, private notificationService: NotificationService) { }
|
||||||
|
|
||||||
public ngOnInit() {
|
public ngOnInit() {
|
||||||
|
@ -62,7 +64,7 @@ export class SeriesInformationComponent implements OnInit {
|
||||||
|
|
||||||
this.requestService.requestTv(viewModel)
|
this.requestService.requestTv(viewModel)
|
||||||
.subscribe(x => {
|
.subscribe(x => {
|
||||||
this.requestService.requestEvents.next();
|
this.tvRequested.next();
|
||||||
this.result = x as IRequestEngineResult;
|
this.result = x as IRequestEngineResult;
|
||||||
if (this.result.result) {
|
if (this.result.result) {
|
||||||
this.notificationService.success(
|
this.notificationService.success(
|
||||||
|
|
|
@ -27,7 +27,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<remaining-requests [movie]="false" #remainingTvShows></remaining-requests>
|
<remaining-requests [movie]="false" [quotaRefreshEvents]="tvRequested.asObservable()" #remainingTvShows></remaining-requests>
|
||||||
|
|
||||||
<!-- Movie content -->
|
<!-- Movie content -->
|
||||||
<div id="actorMovieList">
|
<div id="actorMovieList">
|
||||||
|
@ -153,7 +153,7 @@
|
||||||
</div>
|
</div>
|
||||||
<!--This is the section that holds the child seasons if they want to specify specific episodes-->
|
<!--This is the section that holds the child seasons if they want to specify specific episodes-->
|
||||||
<div *ngIf="node.open">
|
<div *ngIf="node.open">
|
||||||
<seriesinformation [seriesId]="node.id"></seriesinformation>
|
<seriesinformation [seriesId]="node.id" [tvRequested]="tvRequested"></seriesinformation>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<br/>
|
<br/>
|
||||||
|
|
|
@ -18,6 +18,7 @@ export class TvSearchComponent implements OnInit {
|
||||||
public searchText: string;
|
public searchText: string;
|
||||||
public searchChanged = new Subject<string>();
|
public searchChanged = new Subject<string>();
|
||||||
public tvResults: ISearchTvResult[];
|
public tvResults: ISearchTvResult[];
|
||||||
|
public tvRequested: Subject<void> = new Subject<void>();
|
||||||
public result: IRequestEngineResult;
|
public result: IRequestEngineResult;
|
||||||
public searchApplied = false;
|
public searchApplied = false;
|
||||||
public defaultPoster: string;
|
public defaultPoster: string;
|
||||||
|
@ -161,7 +162,7 @@ export class TvSearchComponent implements OnInit {
|
||||||
|
|
||||||
this.requestService.requestTv(viewModel)
|
this.requestService.requestTv(viewModel)
|
||||||
.subscribe(x => {
|
.subscribe(x => {
|
||||||
this.requestService.requestEvents.next();
|
this.tvRequested.next();
|
||||||
this.result = x;
|
this.result = x;
|
||||||
if (this.result.result) {
|
if (this.result.result) {
|
||||||
this.notificationService.success(
|
this.notificationService.success(
|
||||||
|
|
|
@ -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, ReplaySubject } from "rxjs";
|
import { Observable } 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";
|
||||||
|
@ -13,8 +13,6 @@ import { IRemainingRequests } from "../interfaces/IRemainingRequests";
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class RequestService extends ServiceHelpers {
|
export class RequestService extends ServiceHelpers {
|
||||||
public readonly requestEvents = new ReplaySubject();
|
|
||||||
|
|
||||||
constructor(http: HttpClient, public platformLocation: PlatformLocation) {
|
constructor(http: HttpClient, public platformLocation: PlatformLocation) {
|
||||||
super(http, "/api/v1/Request/", platformLocation);
|
super(http, "/api/v1/Request/", platformLocation);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue