Added the filtering on the requests list

This commit is contained in:
Jamie Rees 2020-05-04 22:37:49 +01:00
commit 22a8a18b9c
20 changed files with 2695 additions and 2641 deletions

View file

@ -18,7 +18,7 @@
<div class="row">
<div class="col-md-2 offset-md-10">
<mat-form-field>
<mat-select placeholder="Requests to Display" [(value)]="gridCount" (selectionChange)="ngAfterViewInit()">
<mat-select placeholder="{{'Requests.RequestsToDisplay' | translate}}" [(value)]="gridCount" (selectionChange)="ngAfterViewInit()">
<mat-option value="10">10</mat-option>
<mat-option value="15">15</mat-option>
<mat-option value="30">30</mat-option>
@ -32,36 +32,36 @@
<ng-container matColumnDef="requestedUser.requestedBy">
<th mat-header-cell *matHeaderCellDef> Requested By </th>
<th mat-header-cell *matHeaderCellDef> {{'Requests.RequestedBy' | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.requestedUser?.userAlias}} </td>
</ng-container>
<ng-container matColumnDef="title">
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Title </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> {{ 'Requests.RequestsTitle' | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.title}} ({{element.releaseDate | amLocal | amDateFormat: 'YYYY'}}) </td>
</ng-container>
<ng-container matColumnDef="requestedDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Request Date </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> {{ 'Requests.RequestDate' | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.requestedDate | amLocal | amDateFormat: 'LL'}} </td>
</ng-container>
<ng-container matColumnDef="status">
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Status </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> {{ 'Requests.Status' | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.status}} </td>
</ng-container>
<ng-container matColumnDef="requestStatus">
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Request Status </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> {{ 'Requests.RequestStatus' | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.requestStatus | translate}} </td>
</ng-container>
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef> </th>
<td mat-cell *matCellDef="let element">
<button mat-raised-button color="accent" [routerLink]="'/details/movie/' + element.theMovieDbId">Details</button>
<button mat-raised-button color="warn" (click)="openOptions(element)" *ngIf="isAdmin">Options</button>
<button mat-raised-button color="accent" [routerLink]="'/details/movie/' + element.theMovieDbId">{{ 'Requests.Details' | translate}}</button>
<button mat-raised-button color="warn" (click)="openOptions(element)" *ngIf="isAdmin"> {{ 'Requests.Options' | translate}}</button>
</td>
</ng-container>

View file

@ -32,7 +32,6 @@ export class MoviesGridComponent implements OnInit, AfterViewInit {
private storageKeyOrder = "Movie_DefaultRequestListSortOrder";
private storageKeyGridCount = "Movie_DefaultGridCount";
private storageKeyCurrentFilter = "Movie_DefaultFilter";
private $data: Observable<any>;
@Output() public onOpenOptions = new EventEmitter<{ request: any, filter: any, onChange: any }>();
@ -66,10 +65,6 @@ export class MoviesGridComponent implements OnInit, AfterViewInit {
}
public async ngAfterViewInit() {
// const results = await this.requestService.getMovieRequests(this.gridCount, 0, OrderType.RequestedDateDesc,
// { availabilityFilter: FilterType.None, statusFilter: FilterType.None }).toPromise();
// this.dataSource = results.collection;
// this.resultsLength = results.total;
this.storageService.save(this.storageKeyGridCount, this.gridCount);
this.storageService.save(this.storageKeyCurrentFilter, (+this.currentFilter).toString());

View file

@ -2,47 +2,63 @@
<grid-spinner [loading]="isLoadingResults"></grid-spinner>
<div class="row justify-content-md-center top-spacing">
<div class="btn-group" role="group">
<button type="button" (click)="switchFilter(RequestFilter.All)" [attr.color]="currentFilter === RequestFilter.All ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.All ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.AllRequests' | translate}}</button>
<button type="button" (click)="switchFilter(RequestFilter.Pending)" [attr.color]="currentFilter === RequestFilter.Pending ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Pending ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.PendingRequests' | translate}}</button>
<button type="button" (click)="switchFilter(RequestFilter.Processing)" [attr.color]="currentFilter === RequestFilter.Processing ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Processing ? 'mat-accent' : 'mat-primary'" mat-raised-button
class="btn grow">{{'Requests.ProcessingRequests' | translate}}</button>
<button type="button" (click)="switchFilter(RequestFilter.Available)" [attr.color]="currentFilter === RequestFilter.Available ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Available ? 'mat-accent' : 'mat-primary'" mat-raised-button
class="btn grow">{{'Requests.AvailableRequests' | translate}}</button>
<button type="button" (click)="switchFilter(RequestFilter.Denied)" [attr.color]="currentFilter === RequestFilter.Denied ? 'accent' : 'primary'" [ngClass]="currentFilter === RequestFilter.Denied ? 'mat-accent' : 'mat-primary'" mat-raised-button class="btn grow">{{'Requests.DeniedRequests' | translate}}</button>
</div>
</div>
<div class="row">
<div class="col-md-2 offset-md-10">
<mat-form-field>
<mat-select placeholder="Requests to Display" [(value)]="gridCount" (selectionChange)="ngAfterViewInit()">
<mat-select placeholder="{{'Requests.RequestsToDisplay' | translate}}" [(value)]="gridCount" (selectionChange)="ngAfterViewInit()">
<mat-option value="10">10</mat-option>
<mat-option value="15">15</mat-option>
<mat-option value="30">30</mat-option>
<mat-option value="100">100</mat-option>
</mat-select>
</mat-form-field>
</div>
</div>
<table mat-table [dataSource]="dataSource" class="table" matSort [matSortActive]="defaultSort" matSortDisableClear
[matSortDirection]="defaultOrder">
<table mat-table [dataSource]="dataSource" class="table" matSort [matSortActive]="defaultSort" matSortDisableClear [matSortDirection]="defaultOrder">
<ng-container matColumnDef="series">
<th mat-header-cell *matHeaderCellDef> Series </th>
<th mat-header-cell *matHeaderCellDef> {{'Requests.Series' | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.parentRequest.title}} </td>
</ng-container>
<ng-container matColumnDef="requestedBy">
<th mat-header-cell *matHeaderCellDef> Requested By </th>
<th mat-header-cell *matHeaderCellDef> {{'Requests.RequestedBy' | translate}} </th>
<td mat-cell *matCellDef="let element"> {{element.requestedUser.userAlias}} </td>
</ng-container>
<ng-container matColumnDef="status">
<th mat-header-cell *matHeaderCellDef> Status </th>
<th mat-header-cell *matHeaderCellDef> {{'Requests.Status' | translate}} </th>
<td mat-cell *matCellDef="let element">
{{element.parentRequest.status}}
</td>
</ng-container>
<ng-container matColumnDef="requestedDate">
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> Requested Date </th>
<th mat-header-cell *matHeaderCellDef mat-sort-header disableClear> {{'Requests.RequestDate' | translate}} </th>
<td mat-cell *matCellDef="let element">
{{element.requestedDate | amLocal | amDateFormat: 'LL'}}
</td>
</ng-container>
<ng-container matColumnDef="requestStatus">
<th mat-header-cell *matHeaderCellDef> Request Status </th>
<th mat-header-cell *matHeaderCellDef> {{'Requests.RequestStatus' | translate}} </th>
<td mat-cell *matCellDef="let element">
<div *ngIf="element.approved && !element.available">{{'Common.ProcessingRequest' | translate}}</div>
<div *ngIf="!element.approved && !element.available">{{'Common.PendingApproval' |translate}}</div>
@ -54,9 +70,8 @@
<ng-container matColumnDef="actions">
<th mat-header-cell *matHeaderCellDef> </th>
<td mat-cell *matCellDef="let element">
<button mat-raised-button color="accent"
[routerLink]="'/details/tv/' + element.parentRequest.tvDbId">Details</button>
<button mat-raised-button color="warn" (click)="openOptions(element)" *ngIf="isAdmin">Options</button>
<button mat-raised-button color="accent" [routerLink]="'/details/tv/' + element.parentRequest.tvDbId">{{'Requests.Details' | translate}}</button>
<button mat-raised-button color="warn" (click)="openOptions(element)" *ngIf="isAdmin">{{'Requests.Options' | translate}}</button>
</td>
</ng-container>

View file

@ -7,6 +7,7 @@ import { catchError, map, startWith, switchMap } from 'rxjs/operators';
import { RequestServiceV2 } from "../../../services/requestV2.service";
import { AuthService } from "../../../auth/auth.service";
import { StorageService } from "../../../shared/storage/storage-service";
import { RequestFilterType } from "../../models/RequestFilterType";
@Component({
templateUrl: "./tv-grid.component.html",
@ -19,14 +20,18 @@ export class TvGridComponent implements OnInit, AfterViewInit {
public isLoadingResults = true;
public displayedColumns: string[] = ['series', 'requestedBy', 'status', 'requestStatus', 'requestedDate','actions'];
public gridCount: string = "15";
public showUnavailableRequests: boolean;
public isAdmin: boolean;
public defaultSort: string = "requestedDate";
public defaultOrder: string = "desc";
public RequestFilter = RequestFilterType;
private currentFilter: RequestFilterType = RequestFilterType.All;
private storageKey = "Tv_DefaultRequestListSort";
private storageKeyOrder = "Tv_DefaultRequestListSortOrder";
private storageKeyGridCount = "Tv_DefaultGridCount";
private storageKeyCurrentFilter = "Tv_DefaultFilter";
@Output() public onOpenOptions = new EventEmitter<{request: any, filter: any, onChange: any}>();
@ -39,9 +44,11 @@ export class TvGridComponent implements OnInit, AfterViewInit {
}
public ngOnInit() {
this.isAdmin = this.auth.hasRole("admin") || this.auth.hasRole("poweruser");
const defaultCount = this.storageService.get(this.storageKeyGridCount);
const defaultSort = this.storageService.get(this.storageKey);
const defaultOrder = this.storageService.get(this.storageKeyOrder);
const defaultFilter = +this.storageService.get(this.storageKeyCurrentFilter);
if (defaultSort) {
this.defaultSort = defaultSort;
}
@ -51,12 +58,16 @@ export class TvGridComponent implements OnInit, AfterViewInit {
if (defaultCount) {
this.gridCount = defaultCount;
}
if (defaultFilter) {
this.currentFilter = defaultFilter;
}
}
public async ngAfterViewInit() {
this.storageService.save(this.storageKeyGridCount, this.gridCount);
this.isAdmin = this.auth.hasRole("admin") || this.auth.hasRole("poweruser");
this.storageService.save(this.storageKeyCurrentFilter, (+this.currentFilter).toString());
// If the user changes the sort order, reset back to the first page.
this.sort.sortChange.subscribe(() => this.paginator.pageIndex = 0);
@ -99,10 +110,22 @@ export class TvGridComponent implements OnInit, AfterViewInit {
}
private loadData(): Observable<IRequestsViewModel<IChildRequests>> {
if(this.showUnavailableRequests) {
return this.requestService.getTvUnavailableRequests(+this.gridCount, this.paginator.pageIndex * +this.gridCount, this.sort.active, this.sort.direction);
} else {
switch(RequestFilterType[RequestFilterType[this.currentFilter]]) {
case RequestFilterType.All:
return this.requestService.getTvRequests(+this.gridCount, this.paginator.pageIndex * +this.gridCount, this.sort.active, this.sort.direction);
case RequestFilterType.Pending:
return this.requestService.getPendingTvRequests(+this.gridCount, this.paginator.pageIndex * +this.gridCount, this.sort.active, this.sort.direction);
case RequestFilterType.Available:
return this.requestService.getAvailableTvRequests(+this.gridCount, this.paginator.pageIndex * +this.gridCount, this.sort.active, this.sort.direction);
case RequestFilterType.Processing:
return this.requestService.getProcessingTvRequests(+this.gridCount, this.paginator.pageIndex * +this.gridCount, this.sort.active, this.sort.direction);
case RequestFilterType.Denied:
return this.requestService.getDeniedTvRequests(+this.gridCount, this.paginator.pageIndex * +this.gridCount, this.sort.active, this.sort.direction);
}
}
public switchFilter(type: RequestFilterType) {
this.currentFilter = type;
this.ngAfterViewInit();
}
}

View file

@ -37,6 +37,22 @@ export class RequestServiceV2 extends ServiceHelpers {
return this.http.get<IRequestsViewModel<IChildRequests>>(`${this.url}tv/${count}/${position}/${sortProperty}/${order}`, {headers: this.headers});
}
public getPendingTvRequests(count: number, position: number, sortProperty: string , order: string): Observable<IRequestsViewModel<IChildRequests>> {
return this.http.get<IRequestsViewModel<IChildRequests>>(`${this.url}tv/pending/${count}/${position}/${sortProperty}/${order}`, {headers: this.headers});
}
public getProcessingTvRequests(count: number, position: number, sortProperty: string , order: string): Observable<IRequestsViewModel<IChildRequests>> {
return this.http.get<IRequestsViewModel<IChildRequests>>(`${this.url}tv/processing/${count}/${position}/${sortProperty}/${order}`, {headers: this.headers});
}
public getAvailableTvRequests(count: number, position: number, sortProperty: string , order: string): Observable<IRequestsViewModel<IChildRequests>> {
return this.http.get<IRequestsViewModel<IChildRequests>>(`${this.url}tv/available/${count}/${position}/${sortProperty}/${order}`, {headers: this.headers});
}
public getDeniedTvRequests(count: number, position: number, sortProperty: string , order: string): Observable<IRequestsViewModel<IChildRequests>> {
return this.http.get<IRequestsViewModel<IChildRequests>>(`${this.url}tv/denied/${count}/${position}/${sortProperty}/${order}`, {headers: this.headers});
}
public updateMovieAdvancedOptions(options: IMovieAdvancedOptions): Observable<IRequestEngineResult> {
return this.http.post<IRequestEngineResult>(`${this.url}movie/advancedoptions`, options, {headers: this.headers});
}

View file

@ -106,15 +106,15 @@
"MoviesTab": "Movies",
"TvTab": "TV Shows",
"MusicTab": "Music",
"RequestedBy": "Requested By:",
"Status": "Status:",
"RequestStatus": "Request status:",
"RequestedBy": "Requested By",
"Status": "Status",
"RequestStatus": "Request status",
"Denied": " Denied:",
"TheatricalRelease": "Theatrical Release: {{date}}",
"ReleaseDate": "Released: {{date}}",
"TheatricalReleaseSort": "Theatrical Release",
"DigitalRelease": "Digital Release: {{date}}",
"RequestDate": "Request Date:",
"RequestDate": "Request Date",
"QualityOverride": "Quality Override:",
"RootFolderOverride": "Root Folder Override:",
"ChangeRootFolder": "Root Folder",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Film",
"TvTab": "Tv-serier",
"MusicTab": "Musik",
"RequestedBy": "Anmodet af:",
"Status": "Status:",
"RequestStatus": "Status for anmodning:",
"RequestedBy": "Anmodet af",
"Status": "Status",
"RequestStatus": "Status for anmodning",
"Denied": " Afvist:",
"TheatricalRelease": "Biografudgivelse: {{date}}",
"ReleaseDate": "Udgivet: {{date}}",
"TheatricalReleaseSort": "Biografudgivelse",
"DigitalRelease": "Digital udgivelse: {{date}}",
"RequestDate": "Dato for anmodning:",
"RequestDate": "Dato for anmodning",
"QualityOverride": "Tilsidesæt kvalitet:",
"RootFolderOverride": "Tilsidesæt rodmappe:",
"ChangeRootFolder": "Skift rodmappe",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Filme",
"TvTab": "Serien",
"MusicTab": "Musik",
"RequestedBy": "Angefordert von:",
"Status": "Status:",
"RequestStatus": "Anfrage Status:",
"RequestedBy": "Angefordert von",
"Status": "Status",
"RequestStatus": "Anfrage Status",
"Denied": " Abgelehnt:",
"TheatricalRelease": "Kinostart: {{date}}",
"ReleaseDate": "Veröffentlicht: {{date}}",
"TheatricalReleaseSort": "Kinostart",
"DigitalRelease": "Veröffentlichung der digitalen Version: {{date}}",
"RequestDate": "Datum der Anfrage:",
"RequestDate": "Datum der Anfrage",
"QualityOverride": "Qualitäts Überschreiben:",
"RootFolderOverride": "Stammverzeichnis Überschreiben:",
"ChangeRootFolder": "Stammordner ändern",

View file

@ -115,15 +115,15 @@
"MoviesTab": "Movies",
"TvTab": "TV Shows",
"MusicTab": "Music",
"RequestedBy": "Requested By:",
"Status": "Status:",
"RequestStatus": "Request status:",
"RequestedBy": "Requested By",
"Status": "Status",
"RequestStatus": "Request status",
"Denied": " Denied:",
"TheatricalRelease": "Theatrical Release: {{date}}",
"ReleaseDate": "Released: {{date}}",
"TheatricalReleaseSort": "Theatrical Release",
"DigitalRelease": "Digital Release: {{date}}",
"RequestDate": "Request Date:",
"RequestDate": "Request Date",
"QualityOverride": "Quality Override:",
"RootFolderOverride": "Root Folder Override:",
"ChangeRootFolder": "Root Folder",
@ -158,7 +158,12 @@
"PendingRequests": "Pending Requests",
"ProcessingRequests": "Processing Requests",
"AvailableRequests": "Available Requests",
"DeniedRequests": "Denied Requests"
"DeniedRequests": "Denied Requests",
"RequestsToDisplay": "Requests to display",
"RequestsTitle": "Title",
"Details": "Details",
"Options": "Options",
"Series": "Series"
},
"Issues": {
"Title": "Issues",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Películas",
"TvTab": "Series",
"MusicTab": "Música",
"RequestedBy": "Solicitado por:",
"Status": "Estado:",
"RequestStatus": "Estado de la solicitud:",
"RequestedBy": "Solicitado por",
"Status": "Estado",
"RequestStatus": "Estado de la solicitud",
"Denied": " Denegado:",
"TheatricalRelease": "En cines: {{date}}",
"ReleaseDate": "Publicado: {{date}}",
"TheatricalReleaseSort": "En cines",
"DigitalRelease": "Versión digital: {{date}}",
"RequestDate": "Fecha de solicitud:",
"RequestDate": "Fecha de solicitud",
"QualityOverride": "Sobreescribir calidad:",
"RootFolderOverride": "Sobreescribir carpeta raíz:",
"ChangeRootFolder": "Carpeta raíz",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Films",
"TvTab": "Séries",
"MusicTab": "Musique",
"RequestedBy": "Demandé par :",
"Status": "Statut :",
"RequestStatus": "Statut de la demande :",
"RequestedBy": "Demandé par",
"Status": "Statut",
"RequestStatus": "Statut de la demande",
"Denied": " Refusé :",
"TheatricalRelease": "Sortie en salle: {{date}}",
"ReleaseDate": "Sortie : {{date}}",
"TheatricalReleaseSort": "Sortie en salle",
"DigitalRelease": "Sortie numérique: {{date}}",
"RequestDate": "Date de la demande :",
"RequestDate": "Date de la demande",
"QualityOverride": "Remplacement de la qualité :",
"RootFolderOverride": "Remplacement du répertoire racine :",
"ChangeRootFolder": "Modifier le répertoire racine",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Filmek",
"TvTab": "Sorozatok",
"MusicTab": "Zene",
"RequestedBy": "Kérte:",
"Status": "Állapot:",
"RequestStatus": "Kérés állapota:",
"RequestedBy": "Kérte",
"Status": "Állapot",
"RequestStatus": "Kérés állapota",
"Denied": " Megtagadta:",
"TheatricalRelease": "Mozis kiadás: {{date}}",
"ReleaseDate": "Kiadva: {{date}}",
"TheatricalReleaseSort": "Mozis kiadás",
"DigitalRelease": "Digitális kiadás: {{date}}",
"RequestDate": "Kérés ideje:",
"RequestDate": "Kérés ideje",
"QualityOverride": "Minőség felülírása:",
"RootFolderOverride": "Gyökér mappa felülírása:",
"ChangeRootFolder": "Gyökér mappa",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Film",
"TvTab": "Serie TV",
"MusicTab": "Music",
"RequestedBy": "Richiesta da:",
"Status": "Stato:",
"RequestStatus": "Stato della richiesta:",
"RequestedBy": "Richiesta da",
"Status": "Stato",
"RequestStatus": "Stato della richiesta",
"Denied": " Rifiutato:",
"TheatricalRelease": "Theatrical Release: {{date}}",
"ReleaseDate": "Released: {{date}}",
"TheatricalReleaseSort": "Theatrical Release",
"DigitalRelease": "Digital Release: {{date}}",
"RequestDate": "Data della richiesta:",
"RequestDate": "Data della richiesta",
"QualityOverride": "Sovrascrivi qualità:",
"RootFolderOverride": "Sovrascrivi cartella principale:",
"ChangeRootFolder": "Modifica cartella principale",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Films",
"TvTab": "TV Series",
"MusicTab": "Muziek",
"RequestedBy": "Verzocht Door:",
"Status": "Status:",
"RequestStatus": "Aanvraagstatus:",
"RequestedBy": "Verzocht Door",
"Status": "Status",
"RequestStatus": "Aanvraagstatus",
"Denied": " Geweigerd:",
"TheatricalRelease": "Cinema Uitgave: {{date}}",
"ReleaseDate": "Uitgekomen: {{date}}",
"TheatricalReleaseSort": "Bioscoop Uitgave",
"DigitalRelease": "Digitale Uitgave: {{date}}",
"RequestDate": "Aanvraag Datum:",
"RequestDate": "Aanvraag Datum",
"QualityOverride": "Kwaliteit overschrijven:",
"RootFolderOverride": "Hoofdmap overschrijven:",
"ChangeRootFolder": "Hoofdmap wijzigen",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Filmer",
"TvTab": "TV serier",
"MusicTab": "Musikk",
"RequestedBy": "Etterspurt av:",
"Status": "Status:",
"RequestStatus": "Status for forespørsel:",
"RequestedBy": "Etterspurt av",
"Status": "Status",
"RequestStatus": "Status for forespørsel",
"Denied": " Avslått:",
"TheatricalRelease": "Kinopremiere: {{date}}",
"ReleaseDate": "Utgitt: {{date}}",
"TheatricalReleaseSort": "Kinopremiere",
"DigitalRelease": "Digital utgivelse: {{date}}",
"RequestDate": "Dato for forespørsel:",
"RequestDate": "Dato for forespørsel",
"QualityOverride": "Overstyr kvalitet:",
"RootFolderOverride": "Overstyring av rotmappe:",
"ChangeRootFolder": "Endre rotmappe",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Filmy",
"TvTab": "Seriale",
"MusicTab": "Muzyka",
"RequestedBy": "Zgłoszone przez:",
"Status": "Status:",
"RequestStatus": "Status zgłoszenia:",
"RequestedBy": "Zgłoszone przez",
"Status": "Status",
"RequestStatus": "Status zgłoszenia",
"Denied": "Odrzucono:",
"TheatricalRelease": "Premiera kinowa: {{date}}",
"ReleaseDate": "Wydany: {{date}}",
"TheatricalReleaseSort": "Premiera kinowa",
"DigitalRelease": "Wydanie cyfrowe: {{date}}",
"RequestDate": "Data zgłoszenia:",
"RequestDate": "Data zgłoszenia",
"QualityOverride": "Wymuszenie jakości:",
"RootFolderOverride": "Wymuszenie folderu głównego:",
"ChangeRootFolder": "Folder główny",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Filmes",
"TvTab": "Séries",
"MusicTab": "Músicas",
"RequestedBy": "Solicitado por:",
"Status": "Status:",
"RequestStatus": "Status da solicitação:",
"RequestedBy": "Solicitado por",
"Status": "Status",
"RequestStatus": "Status da solicitação",
"Denied": " Negados:",
"TheatricalRelease": "Lançamento nos Cinemas: {{date}}",
"ReleaseDate": "Lançado: {{date}}",
"TheatricalReleaseSort": "Lançamento nos Cinemas",
"DigitalRelease": "Lançamento digital: {{date}}",
"RequestDate": "Data da Solicitação:",
"RequestDate": "Data da Solicitação",
"QualityOverride": "Substituição de qualidade:",
"RootFolderOverride": "Substituição da pasta raiz:",
"ChangeRootFolder": "Pasta raiz",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Фильмы",
"TvTab": "Сериалы",
"MusicTab": "Музыка",
"RequestedBy": "Автор запроса:",
"Status": "Статус:",
"RequestStatus": "Статус запроса:",
"RequestedBy": "Автор запроса",
"Status": "Статус",
"RequestStatus": "Статус запроса",
"Denied": " Отказано:",
"TheatricalRelease": "Релиз в кинотеатрах: {{date}}",
"ReleaseDate": "Дата выхода: {{date}}",
"TheatricalReleaseSort": "Релиз в кинотеатрах",
"DigitalRelease": "Дигитальный релиз: {{date}}",
"RequestDate": "Дата запроса:",
"RequestDate": "Дата запроса",
"QualityOverride": "Переопределение качества:",
"RootFolderOverride": "Переопределение корневой папки:",
"ChangeRootFolder": "Корневая папка",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Filmy",
"TvTab": "Seriály",
"MusicTab": "Hudba",
"RequestedBy": "Vyžiadané od:",
"Status": "Stav:",
"RequestStatus": "Stav požiadavky:",
"RequestedBy": "Vyžiadané od",
"Status": "Stav",
"RequestStatus": "Stav požiadavky",
"Denied": " Zamietnuté:",
"TheatricalRelease": "Kino vydanie: {{date}}",
"ReleaseDate": "Vydané: {{date}}",
"TheatricalReleaseSort": "Kino vydanie",
"DigitalRelease": "Online vydanie: {{date}}",
"RequestDate": "Dátum požiadavky:",
"RequestDate": "Dátum požiadavky",
"QualityOverride": "Prepísanie kvality:",
"RootFolderOverride": "Prepísanie Root priečinku:",
"ChangeRootFolder": "Koreňový priečinok",

View file

@ -106,15 +106,15 @@
"MoviesTab": "Filmer",
"TvTab": "TV-serier",
"MusicTab": "Musik",
"RequestedBy": "Efterfrågats av:",
"Status": "Status:",
"RequestStatus": "Status för begäran:",
"RequestedBy": "Efterfrågats av",
"Status": "Status",
"RequestStatus": "Status för begäran",
"Denied": " Nekad:",
"TheatricalRelease": "Biopremiär: {{date}}",
"ReleaseDate": "Releasedatum: {{date}}",
"TheatricalReleaseSort": "Biopremiär",
"DigitalRelease": "Digitalt Releasedatum: {{date}}",
"RequestDate": "Datum för begäran:",
"RequestDate": "Datum för begäran",
"QualityOverride": "Kvalitétsöverskridande:",
"RootFolderOverride": "Rotmappsöverskridande:",
"ChangeRootFolder": "Byt rotmapp",