From abf0ddf74a9ad5f10951732b2aec160ed942a46c Mon Sep 17 00:00:00 2001 From: Florian Dupret <34862846+sephrat@users.noreply.github.com> Date: Tue, 19 Oct 2021 13:49:27 +0200 Subject: [PATCH] Refactor status translation into a dedicated pipe --- .../movie-information-panel.component.html | 2 +- .../movie-information-panel.component.ts | 14 +------------- .../tv-information-panel.component.html | 2 +- .../tv-information-panel.component.ts | 14 +------------- .../src/app/pipes/TranslateStatus.ts | 19 +++++++++++++++++++ .../ClientApp/src/app/pipes/pipe.module.ts | 5 +++-- .../movies-grid/movies-grid.component.html | 2 +- .../components/tv-grid/tv-grid.component.html | 2 +- 8 files changed, 28 insertions(+), 32 deletions(-) create mode 100644 src/Ombi/ClientApp/src/app/pipes/TranslateStatus.ts diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html index 480e19ddd..50070e47e 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.html @@ -27,7 +27,7 @@
{{'MediaDetails.Status' | translate }} - {{ getMovieStatusLabel()}} + {{ this.movie.status | translateStatus }}
{{'MediaDetails.Availability' | translate }} diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts index 174f692de..c11a0f61c 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/panels/movie-information-panel.component.ts @@ -1,5 +1,4 @@ import { Component, ViewEncapsulation, Input, OnInit, Inject } from "@angular/core"; -import { TranslateService } from "@ngx-translate/core"; import { ISearchMovieResultV2 } from "../../../../interfaces/ISearchMovieResultV2"; import { IMovieRequests } from "../../../../interfaces"; import { SearchV2Service } from "../../../../services/searchV2.service"; @@ -14,8 +13,7 @@ import { IStreamingData } from "../../../../interfaces/IStreams"; }) export class MovieInformationPanelComponent implements OnInit { - constructor(private searchService: SearchV2Service, @Inject(APP_BASE_HREF) public internalBaseUrl: string, - private translate: TranslateService) { } + constructor(private searchService: SearchV2Service, @Inject(APP_BASE_HREF) public internalBaseUrl: string) { } @Input() public movie: ISearchMovieResultV2; @Input() public request: IMovieRequests; @@ -35,14 +33,4 @@ export class MovieInformationPanelComponent implements OnInit { this.searchService.getMovieStreams(this.movie.id).subscribe(x => this.streams = x); } - - public getMovieStatusLabel() { - const textKey = 'MediaDetails.StatusValues.' + this.movie.status; - const text = this.translate.instant(textKey); - if (text !== textKey) { - return text; - } else { - return this.movie.status; - } - } } diff --git a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html index ddf6fd44c..8fc23d39f 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.html @@ -22,7 +22,7 @@
{{'MediaDetails.Status' | translate }} - {{ getTVStatusLabel()}} + {{ this.tv.status | translateStatus }}
{{'MediaDetails.FirstAired' | translate }} {{tv.firstAired | localizedDate: 'mediumDate'}} diff --git a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.ts b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.ts index 46175847f..1ee844967 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.ts +++ b/src/Ombi/ClientApp/src/app/media-details/components/tv/panels/tv-information-panel/tv-information-panel.component.ts @@ -1,6 +1,5 @@ import { APP_BASE_HREF } from "@angular/common"; import { Component, ViewEncapsulation, Input, OnInit, Inject } from "@angular/core"; -import { TranslateService } from "@ngx-translate/core"; import { ITvRequests } from "../../../../../interfaces"; import { ITvRatings } from "../../../../../interfaces/IRatings"; import { ISearchTvResultV2 } from "../../../../../interfaces/ISearchTvResultV2"; @@ -15,8 +14,7 @@ import { SearchV2Service } from "../../../../../services"; }) export class TvInformationPanelComponent implements OnInit { - constructor(private searchService: SearchV2Service, @Inject(APP_BASE_HREF) public internalBaseUrl: string, - private translate: TranslateService) { } + constructor(private searchService: SearchV2Service, @Inject(APP_BASE_HREF) public internalBaseUrl: string) { } @Input() public tv: ISearchTvResultV2; @Input() public request: ITvRequests; @@ -46,14 +44,4 @@ export class TvInformationPanelComponent implements OnInit { public sortBy(prop: string) { return this.streams.sort((a, b) => a[prop] > b[prop] ? 1 : a[prop] === b[prop] ? 0 : -1); } - - public getTVStatusLabel() { - const textKey = 'MediaDetails.StatusValues.' + this.tv.status; - const text = this.translate.instant(textKey); - if (text !== textKey) { - return text; - } else { - return this.tv.status; - } - } } diff --git a/src/Ombi/ClientApp/src/app/pipes/TranslateStatus.ts b/src/Ombi/ClientApp/src/app/pipes/TranslateStatus.ts new file mode 100644 index 000000000..1d7ebf1bd --- /dev/null +++ b/src/Ombi/ClientApp/src/app/pipes/TranslateStatus.ts @@ -0,0 +1,19 @@ +import { Pipe, PipeTransform } from '@angular/core'; +import { TranslateService } from '@ngx-translate/core'; + +@Pipe({ + name: 'translateStatus' + }) +export class TranslateStatusPipe implements PipeTransform { + constructor(private translateService: TranslateService) {} + + transform(value: string): string { + const textKey = 'MediaDetails.StatusValues.' + value; + const text = this.translateService.instant(textKey); + if (text !== textKey) { + return text; + } else { + return value; + } + } +} \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/pipes/pipe.module.ts b/src/Ombi/ClientApp/src/app/pipes/pipe.module.ts index f41924060..7a9520af8 100644 --- a/src/Ombi/ClientApp/src/app/pipes/pipe.module.ts +++ b/src/Ombi/ClientApp/src/app/pipes/pipe.module.ts @@ -1,6 +1,7 @@ import { ModuleWithProviders, NgModule } from "@angular/core"; import { HumanizePipe } from "./HumanizePipe"; import { LocalizedDatePipe } from "./LocalizedDate"; +import { TranslateStatusPipe } from "./TranslateStatus"; import { ThousandShortPipe } from "./ThousandShortPipe"; import { SafePipe } from "./SafePipe"; import { QualityPipe } from "./QualityPipe"; @@ -8,8 +9,8 @@ import { UserLocalePipe } from "./UserLocalePipe"; @NgModule({ imports: [], - declarations: [HumanizePipe, ThousandShortPipe, SafePipe, QualityPipe, UserLocalePipe, LocalizedDatePipe ], - exports: [HumanizePipe, ThousandShortPipe, SafePipe, QualityPipe, UserLocalePipe, LocalizedDatePipe ], + declarations: [HumanizePipe, ThousandShortPipe, SafePipe, QualityPipe, UserLocalePipe, LocalizedDatePipe, TranslateStatusPipe ], + exports: [HumanizePipe, ThousandShortPipe, SafePipe, QualityPipe, UserLocalePipe, LocalizedDatePipe, TranslateStatusPipe ], }) export class PipeModule { diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html b/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html index 0d397b778..0e6e31521 100644 --- a/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html +++ b/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.html @@ -63,7 +63,7 @@ {{ 'Requests.Status' | translate}} - {{element.status}} + {{element.status |translateStatus }} diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.html b/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.html index 4fda46b6c..8cb00d3bb 100644 --- a/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.html +++ b/src/Ombi/ClientApp/src/app/requests-list/components/tv-grid/tv-grid.component.html @@ -56,7 +56,7 @@ {{'Requests.Status' | translate}} - {{element.parentRequest.status}} + {{element.parentRequest.status | translateStatus }}