diff --git a/CHANGELOG.md b/CHANGELOG.md index 9e7d95c1a..7191517ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +## [4.16.10](https://github.com/Ombi-app/Ombi/compare/v4.16.9...v4.16.10) (2022-04-13) + + + +## [4.16.9](https://github.com/Ombi-app/Ombi/compare/v4.16.8...v4.16.9) (2022-04-13) + + +### Bug Fixes + +* **plex-watchlist:** Only request the latest season when importing from the watchlist ([77a47ff](https://github.com/Ombi-app/Ombi/commit/77a47ff157c6c5feafe3f2a29a3fcba8df4fdfef)) + + + ## [4.16.8](https://github.com/Ombi-app/Ombi/compare/v4.16.7...v4.16.8) (2022-04-13) @@ -295,16 +308,3 @@ -## [4.11.2](https://github.com/Ombi-app/Ombi/compare/v4.11.1...v4.11.2) (2022-02-01) - - -### Bug Fixes - -* :globe_with_meridians: Added Czech and Chinese Simplified to the language list ([68ef366](https://github.com/Ombi-app/Ombi/commit/68ef366e8525e2c349b9e81704ad8bcca6c347a0)) - - - -## [4.11.1](https://github.com/Ombi-app/Ombi/compare/v4.11.0...v4.11.1) (2022-02-01) - - - diff --git a/src/Ombi.Core/Engine/MovieRequestEngine.cs b/src/Ombi.Core/Engine/MovieRequestEngine.cs index 6e81e3e73..cb4cb4ba6 100644 --- a/src/Ombi.Core/Engine/MovieRequestEngine.cs +++ b/src/Ombi.Core/Engine/MovieRequestEngine.cs @@ -251,7 +251,7 @@ namespace Ombi.Core.Engine var requests = await (OrderMovies(allRequests, orderFilter.OrderType)).Skip(position).Take(count) .ToListAsync(); - await CheckForSubscription(shouldHide, requests); + await CheckForSubscription(shouldHide.UserId, requests); return new RequestsViewModel { Collection = requests, @@ -295,7 +295,7 @@ namespace Ombi.Core.Engine var total = requests.Count(); requests = requests.Skip(position).Take(count).ToList(); - await CheckForSubscription(shouldHide, requests); + await CheckForSubscription(shouldHide.UserId, requests); return new RequestsViewModel { Collection = requests, @@ -380,7 +380,7 @@ namespace Ombi.Core.Engine // TODO fix this so we execute this on the server requests = requests.Skip(position).Take(count).ToList(); - await CheckForSubscription(shouldHide, requests); + await CheckForSubscription(shouldHide.UserId, requests); return new RequestsViewModel { Collection = requests, @@ -423,7 +423,7 @@ namespace Ombi.Core.Engine var total = requests.Count(); requests = requests.Skip(position).Take(count).ToList(); - await CheckForSubscription(shouldHide, requests); + await CheckForSubscription(shouldHide.UserId, requests); return new RequestsViewModel { Collection = requests, @@ -505,7 +505,7 @@ namespace Ombi.Core.Engine allRequests = await MovieRepository.GetWithUser().ToListAsync(); } - await CheckForSubscription(shouldHide, allRequests); + await CheckForSubscription(shouldHide.UserId, allRequests); return allRequests; } @@ -513,21 +513,21 @@ namespace Ombi.Core.Engine public async Task GetRequest(int requestId) { var request = await MovieRepository.GetWithUser().Where(x => x.Id == requestId).FirstOrDefaultAsync(); - await CheckForSubscription(new HideResult(), new List { request }); + await CheckForSubscription((await GetUser()).Id, new List { request }); return request; } - private async Task CheckForSubscription(HideResult shouldHide, List movieRequests) + private async Task CheckForSubscription(string UserId, List movieRequests) { var requestIds = movieRequests.Select(x => x.Id); var sub = await _subscriptionRepository.GetAll().Where(s => - s.UserId == shouldHide.UserId && requestIds.Contains(s.RequestId) && s.RequestType == RequestType.Movie) + s.UserId == UserId && requestIds.Contains(s.RequestId) && s.RequestType == RequestType.Movie) .ToListAsync(); foreach (var x in movieRequests) { x.PosterPath = PosterPathHelper.FixPosterPath(x.PosterPath); - if (shouldHide.UserId == x.RequestedUserId) + if (UserId == x.RequestedUserId) { x.ShowSubscribe = false; } @@ -559,7 +559,7 @@ namespace Ombi.Core.Engine } var results = allRequests.Where(x => x.Title.Contains(search, CompareOptions.IgnoreCase)).ToList(); - await CheckForSubscription(shouldHide, results); + await CheckForSubscription(shouldHide.UserId, results); return results; } diff --git a/src/Ombi.Core/Models/Search/SearchViewModel.cs b/src/Ombi.Core/Models/Search/SearchViewModel.cs index 4cf812982..e1a2f2850 100644 --- a/src/Ombi.Core/Models/Search/SearchViewModel.cs +++ b/src/Ombi.Core/Models/Search/SearchViewModel.cs @@ -1,4 +1,5 @@ -using System.ComponentModel.DataAnnotations.Schema; +using System; +using System.ComponentModel.DataAnnotations.Schema; using Ombi.Store.Entities; namespace Ombi.Core.Models.Search @@ -32,6 +33,7 @@ namespace Ombi.Core.Models.Search public string TheMovieDbId { get; set; } [NotMapped] + [Obsolete("Use request service instead")] public bool Subscribed { get; set; } [NotMapped] public bool ShowSubscribe { get; set; } diff --git a/src/Ombi.I18n/Resources/Texts.da.resx b/src/Ombi.I18n/Resources/Texts.da.resx index 244fc97a7..2f217736e 100644 --- a/src/Ombi.I18n/Resources/Texts.da.resx +++ b/src/Ombi.I18n/Resources/Texts.da.resx @@ -148,9 +148,9 @@ Album - Movie + Film - TV Show + TV-Serier \ No newline at end of file diff --git a/src/Ombi.I18n/Resources/Texts.fr.resx b/src/Ombi.I18n/Resources/Texts.fr.resx index 2b4cdffae..9b9d96e48 100644 --- a/src/Ombi.I18n/Resources/Texts.fr.resx +++ b/src/Ombi.I18n/Resources/Texts.fr.resx @@ -121,7 +121,7 @@ Nouveaux Albums - Nouveaux Films + Nouveaux films Nouvelles séries diff --git a/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html index d3997fb1c..2207ea323 100644 --- a/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html +++ b/src/Ombi/ClientApp/src/app/media-details/components/movie/movie-details.component.html @@ -4,30 +4,18 @@
- + @@ -43,118 +31,147 @@
- + {{'Search.ViewOnPlex' | translate}} - + {{'Search.ViewOnEmby' | translate}} - + {{'Search.ViewOnJellyfin' | translate}} - - - - - - - - - + + + + + + + + + - - + + - - + - - - - - - + + + + + - - - - + + + + - - - - - - - + + + + + + - - - - - - + + + +
@@ -163,7 +180,8 @@
- + @@ -199,9 +217,14 @@ {{'MediaDetails.Trailers' | translate}} - + - + @@ -229,7 +252,9 @@ @@ -249,7 +274,9 @@ 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 d9366e7d1..d95460b40 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 @@ -98,7 +98,9 @@ - - + + + + \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.ts b/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.ts index 8b4ae170a..ca36a5d62 100644 --- a/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.ts +++ b/src/Ombi/ClientApp/src/app/requests-list/components/movies-grid/movies-grid.component.ts @@ -62,11 +62,11 @@ export class MoviesGridComponent implements OnInit, AfterViewInit { this.manageOwnRequests = this.auth.hasRole("ManageOwnRequests") if (this.isAdmin) { this.displayedColumns.unshift('select'); - } - + } + this.is4kEnabled = this.featureFacade.is4kEnabled(); if ((this.isAdmin || this.auth.hasRole("Request4KMovie")) - && this.is4kEnabled) { + && this.is4kEnabled) { this.displayedColumns.splice(4, 0, 'has4kRequest'); } @@ -155,13 +155,13 @@ export class MoviesGridComponent implements OnInit, AfterViewInit { private checkDate(date: Date|string): boolean { if (typeof date === 'string') { - return new Date(date).getFullYear() > 1; + return new Date(date).getFullYear() > 1; } if (date instanceof Date) { - return date.getFullYear() > 1; + return date.getFullYear() > 1; } return false; - } + } public switchFilter(type: RequestFilterType) { this.currentFilter = type; @@ -172,15 +172,15 @@ export class MoviesGridComponent implements OnInit, AfterViewInit { const numSelected = this.selection.selected.length; const numRows = this.dataSource.data.length; return numSelected === numRows; - } + } - public masterToggle() { + public masterToggle() { this.isAllSelected() ? this.selection.clear() : this.dataSource.data.forEach(row => this.selection.select(row)); - } + } - public async bulkDelete() { + public async bulkDelete() { if (this.selection.isEmpty()) { return; } @@ -194,13 +194,13 @@ export class MoviesGridComponent implements OnInit, AfterViewInit { this.selection.clear(); this.ngAfterViewInit(); }); - } + } - public bulkApprove = () => this.bulkApproveInternal(false); + public bulkApprove = () => this.bulkApproveInternal(false); - public bulkApprove4K = () => this.bulkApproveInternal(true); + public bulkApprove4K = () => this.bulkApproveInternal(true); - private bulkApproveInternal(is4k: boolean) { + private bulkApproveInternal(is4k: boolean) { if (this.selection.isEmpty()) { return; } @@ -222,12 +222,45 @@ export class MoviesGridComponent implements OnInit, AfterViewInit { this.selection.clear(); this.ngAfterViewInit(); }) - } + } - public getRequestDate(request: IMovieRequests) : Date { + public bulkDeny = () => this.bulkDenyInternal(false); + + public bulkDeny4K = () => this.bulkDenyInternal(true); + + private bulkDenyInternal(is4k: boolean) { + if (this.selection.isEmpty()) { + return; + } + let tasks = new Array>(); + this.selection.selected.forEach((selected) => { + + tasks.push(this.requestServiceV1.denyMovie({ + id: selected.id, + is4K: is4k, + reason: `` // TOOD: reuse DenyDialog to allow for a reason to be entered + })); + }); + + this.isLoadingResults = true; + forkJoin(tasks).subscribe((result: IRequestEngineResult[]) => { + this.isLoadingResults = false; + const failed = result.filter(x => !x.result); + if (failed.length > 0) { + this.notification.error("Some requests failed to deny: " + failed[0].errorMessage); + this.selection.clear(); + return; + } + this.notification.success(this.translateService.instant('Requests.RequestPanel.Denied')); + this.selection.clear(); + this.ngAfterViewInit(); + }) + } + + public getRequestDate(request: IMovieRequests): Date { if (new Date(request.requestedDate).getFullYear() === 1) { return request.requestedDate4k; } return request.requestedDate; - } + } } \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/options/request-options.component.html b/src/Ombi/ClientApp/src/app/requests-list/components/options/request-options.component.html index dc1c04467..b32c872ac 100644 --- a/src/Ombi/ClientApp/src/app/requests-list/components/options/request-options.component.html +++ b/src/Ombi/ClientApp/src/app/requests-list/components/options/request-options.component.html @@ -1,14 +1,20 @@ - - {{'Requests.RequestPanel.Delete' | translate}} - {{'Requests.RequestPanel.Approve' | translate}} + + {{'Requests.RequestPanel.Deny' | translate}} + {{'Requests.RequestPanel.Approve4K' | translate}} + + {{'Requests.RequestPanel.Deny4K' | translate}} + {{'Requests.RequestPanel.ChangeAvailability' | translate}} + + {{'Requests.RequestPanel.Delete' | translate}} + \ No newline at end of file diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/options/request-options.component.ts b/src/Ombi/ClientApp/src/app/requests-list/components/options/request-options.component.ts index b3de64235..909c34544 100644 --- a/src/Ombi/ClientApp/src/app/requests-list/components/options/request-options.component.ts +++ b/src/Ombi/ClientApp/src/app/requests-list/components/options/request-options.component.ts @@ -5,6 +5,8 @@ import { IRequestEngineResult, RequestType } from '../../../interfaces'; import { UpdateType } from '../../models/UpdateType'; import { TranslateService } from '@ngx-translate/core'; import { firstValueFrom, Observable } from 'rxjs'; +import { DenyDialogComponent } from '../../../media-details/components/shared/deny-dialog/deny-dialog.component'; +import { MatDialog } from '@angular/material/dialog'; @Component({ selector: 'request-options', @@ -17,6 +19,7 @@ export class RequestOptionsComponent { constructor(@Inject(MAT_BOTTOM_SHEET_DATA) public data: any, private requestService: RequestService, private messageService: MessageService, + public dialog: MatDialog, private bottomSheetRef: MatBottomSheetRef, private translate: TranslateService) { } @@ -33,11 +36,11 @@ export class RequestOptionsComponent { } request.subscribe(result => { if (result.result) { - this.messageService.send(this.translate.instant("Requests.SuccessfullyDeleted")); - this.bottomSheetRef.dismiss({type: UpdateType.Delete}); - return; + this.messageService.send(this.translate.instant("Requests.SuccessfullyDeleted")); + this.bottomSheetRef.dismiss({type: UpdateType.Delete}); + return; } else { - this.messageService.sendRequestEngineResultError(result); + this.messageService.sendRequestEngineResultError(result); } }); } @@ -57,6 +60,24 @@ export class RequestOptionsComponent { return; } + public deny = () => this.denyInternal(false); + + public deny4K = () => this.denyInternal(true); + + private async denyInternal(is4K: boolean) { + const dialogRef = this.dialog.open(DenyDialogComponent, { + width: '250px', + data: { requestId: this.data.id, is4K: is4K, requestType: this.data.type } + }); + + dialogRef.afterClosed().subscribe(result => { + if (result.denied) { + this.bottomSheetRef.dismiss({ type: UpdateType.Deny }); + + } + }); + } + public async approve4K() { if (this.data.type != RequestType.movie) { return; diff --git a/src/Ombi/ClientApp/src/app/requests-list/components/requests-list.component.ts b/src/Ombi/ClientApp/src/app/requests-list/components/requests-list.component.ts index 8117e0c22..4ea6e4886 100644 --- a/src/Ombi/ClientApp/src/app/requests-list/components/requests-list.component.ts +++ b/src/Ombi/ClientApp/src/app/requests-list/components/requests-list.component.ts @@ -35,6 +35,11 @@ export class RequestsListComponent { event.onChange(); return; } + if (result.type == UpdateType.Deny) { + event.request.requestStatus = 'Common.Denied'; + event.onChange(); + return; + } }); } } diff --git a/src/Ombi/ClientApp/src/app/requests-list/models/UpdateType.ts b/src/Ombi/ClientApp/src/app/requests-list/models/UpdateType.ts index 3a0f690db..9e54b1114 100644 --- a/src/Ombi/ClientApp/src/app/requests-list/models/UpdateType.ts +++ b/src/Ombi/ClientApp/src/app/requests-list/models/UpdateType.ts @@ -1,5 +1,6 @@ export enum UpdateType { Delete, Approve, - Availability + Availability, + Deny } \ No newline at end of file diff --git a/src/Ombi/wwwroot/translations/bg.json b/src/Ombi/wwwroot/translations/bg.json index 789af74df..fd207e4bb 100644 --- a/src/Ombi/wwwroot/translations/bg.json +++ b/src/Ombi/wwwroot/translations/bg.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Изтриване на заявка", "Approve": "Одобряване на заявка", + "Deny": "Deny Request", "Approve4K": "Approve 4K Request", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Маркиране като налично", "Deleted": "Избраните елементи са изтрити успешно", - "Approved": "Избраните елементи са одобрени успешно" + "Approved": "Избраните елементи са одобрени успешно", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Successfully Approved", "SuccessfullyDeleted": "Request successfully deleted", @@ -379,7 +382,8 @@ "Country": "Country:", "StartDate": "Start Date:", "EndDate": "EndDate:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "Популярни", diff --git a/src/Ombi/wwwroot/translations/cs.json b/src/Ombi/wwwroot/translations/cs.json index d0dadf58c..c1dec8f37 100644 --- a/src/Ombi/wwwroot/translations/cs.json +++ b/src/Ombi/wwwroot/translations/cs.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Odstranit požadavek", "Approve": "Schválit požadavek", + "Deny": "Deny Request", "Approve4K": "Schválit 4K požadavek", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Označit jako dostupné", "Deleted": "Vybrané položky úspěšně odstraněny", - "Approved": "Vybrané položky byly úspěšně schváleny" + "Approved": "Vybrané položky byly úspěšně schváleny", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Úspěšně schváleno", "SuccessfullyDeleted": "Požadavek byl úspěšně odstraněn", @@ -379,7 +382,8 @@ "Country": "Stát:", "StartDate": "Datum zahájení:", "EndDate": "Datum ukončení:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "Oblíbené", diff --git a/src/Ombi/wwwroot/translations/da.json b/src/Ombi/wwwroot/translations/da.json index 63869300b..1486bcfae 100644 --- a/src/Ombi/wwwroot/translations/da.json +++ b/src/Ombi/wwwroot/translations/da.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Slet Anmodning", "Approve": "Godkend Andmodning", + "Deny": "Deny Request", "Approve4K": "Godkend 4K Anmodning", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Markér som tilgængelig", "Deleted": "De valgte elementer blev slettet", - "Approved": "De valgte elementer blev godkendt" + "Approved": "De valgte elementer blev godkendt", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Godkendt", "SuccessfullyDeleted": "Anmodningen blev slettet", @@ -379,7 +382,8 @@ "Country": "Land:", "StartDate": "Startdato:", "EndDate": "Slutdato:" - } + }, + "RequestSource": "Kilde:" }, "Discovery": { "PopularTab": "Populære", diff --git a/src/Ombi/wwwroot/translations/de.json b/src/Ombi/wwwroot/translations/de.json index 18c5450c7..d397f0c55 100644 --- a/src/Ombi/wwwroot/translations/de.json +++ b/src/Ombi/wwwroot/translations/de.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Anfrage löschen", "Approve": "Anfrage genehmigen", + "Deny": "Deny Request", "Approve4K": "4K Anfrage genehmigen", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Als verfügbar markieren", "Deleted": "Ausgewählte Elemente erfolgreich gelöscht", - "Approved": "Ausgewählte Elemente erfolgreich freigegeben" + "Approved": "Ausgewählte Elemente erfolgreich freigegeben", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Erfolgreich genehmigt", "SuccessfullyDeleted": "Anfrage erfolgreich gelöscht", @@ -228,7 +231,7 @@ "NoPermissionsOnBehalf": "Sie haben nicht die richtigen Berechtigungen, um im Namen von Benutzern anzufragen!", "NoPermissions": "Sie haben nicht die nötigen Rechte!", "RequestDoesNotExist": "Die Anfrage existiert nicht", - "ChildRequestDoesNotExist": "Child Request does not exist", + "ChildRequestDoesNotExist": "Untergeordnete Anfrage existiert nicht", "NoPermissionsRequestMovie": "Sie haben keine Berechtigung, um einen Film anzufordern", "NoPermissionsRequestTV": "Sie haben keine Berechtigung, um eine TV-Sendung anzufordern", "NoPermissionsRequestAlbum": "Sie haben keine Berechtigung, um ein Album anzufordern", @@ -379,7 +382,8 @@ "Country": "Land:", "StartDate": "Startdatum:", "EndDate": "Enddatum:" - } + }, + "RequestSource": "Quelle:" }, "Discovery": { "PopularTab": "Beliebt", @@ -432,7 +436,7 @@ "2": "Plex User", "3": "Emby User", "4": "Emby Connect User", - "5": "Jellyfin User" + "5": "Jellyfin Server" }, "Paginator": { "itemsPerPageLabel": "Elemente pro Seite:", diff --git a/src/Ombi/wwwroot/translations/en.json b/src/Ombi/wwwroot/translations/en.json index ad4aeaae2..a9c40c197 100644 --- a/src/Ombi/wwwroot/translations/en.json +++ b/src/Ombi/wwwroot/translations/en.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete":"Delete Request", "Approve":"Approve Request", + "Deny":"Deny Request", "Approve4K":"Approve 4K Request", + "Deny4K":"Deny 4K Request", "ChangeAvailability":"Mark Available", "Deleted": "Successfully deleted selected items", - "Approved": "Successfully approved selected items" + "Approved": "Successfully approved selected items", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Successfully Approved", "SuccessfullyDeleted": "Request successfully deleted", diff --git a/src/Ombi/wwwroot/translations/es.json b/src/Ombi/wwwroot/translations/es.json index fb2ba4149..bb8cb4a9a 100644 --- a/src/Ombi/wwwroot/translations/es.json +++ b/src/Ombi/wwwroot/translations/es.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Eliminar solicitud", "Approve": "Aprobar Solicitud", + "Deny": "Rechazar Solicitud", "Approve4K": "Aprobar Solicitud 4K", + "Deny4K": "Rechazar Solicitud 4K", "ChangeAvailability": "Marcar como disponible", "Deleted": "Los elementos seleccionados ha sido eliminados correctamente", - "Approved": "Los elementos seleccionados ha sido aprobados correctamente" + "Approved": "Los elementos seleccionados ha sido aprobados correctamente", + "Denied": "Elementos seleccionados rechazados con éxito" }, "SuccessfullyApproved": "Se ha aprobado con éxito", "SuccessfullyDeleted": "Solicitud eliminada con éxito", @@ -379,7 +382,8 @@ "Country": "País:", "StartDate": "Fecha de inicio:", "EndDate": "Fecha de finalización:" - } + }, + "RequestSource": "Fuente:" }, "Discovery": { "PopularTab": "Popular", diff --git a/src/Ombi/wwwroot/translations/fr.json b/src/Ombi/wwwroot/translations/fr.json index ab2bdff7c..ec7e1c27d 100644 --- a/src/Ombi/wwwroot/translations/fr.json +++ b/src/Ombi/wwwroot/translations/fr.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Supprimer la demande", "Approve": "Approuver la demande", + "Deny": "Refuser la demande", "Approve4K": "Approuver la demande 4K", + "Deny4K": "Refuser la demande 4K", "ChangeAvailability": "Marquer comme Disponible", "Deleted": "Éléments sélectionnés supprimés avec succès", - "Approved": "Éléments sélectionnés approuvés avec succès" + "Approved": "Éléments sélectionnés approuvés avec succès", + "Denied": "Les éléments sélectionnés ont été refusés" }, "SuccessfullyApproved": "Approuvée avec succès", "SuccessfullyDeleted": "Demande supprimée avec succès", @@ -379,7 +382,8 @@ "Country": "Pays :", "StartDate": "Date de début :", "EndDate": "Date de fin :" - } + }, + "RequestSource": "Source :" }, "Discovery": { "PopularTab": "Populaire", diff --git a/src/Ombi/wwwroot/translations/hu.json b/src/Ombi/wwwroot/translations/hu.json index 45d8622a5..9a9013317 100644 --- a/src/Ombi/wwwroot/translations/hu.json +++ b/src/Ombi/wwwroot/translations/hu.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Kérés törlése", "Approve": "Kérés elfogadása", + "Deny": "Deny Request", "Approve4K": "Approve 4K Request", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Elérhetőnek jelölés", "Deleted": "A kijelölt elemek törlésre kerultek", - "Approved": "A kijelölt elemek jóváhagyásra kerultek" + "Approved": "A kijelölt elemek jóváhagyásra kerultek", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Sikeresen jóváhagyva", "SuccessfullyDeleted": "Kérés sikeresen törölve", @@ -379,7 +382,8 @@ "Country": "Ország:", "StartDate": "Kezdés dátuma:", "EndDate": "Befejezés dátuma:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "Népszerű", diff --git a/src/Ombi/wwwroot/translations/it.json b/src/Ombi/wwwroot/translations/it.json index ed69c02e0..71b7c121f 100644 --- a/src/Ombi/wwwroot/translations/it.json +++ b/src/Ombi/wwwroot/translations/it.json @@ -14,7 +14,7 @@ "Common": { "ContinueButton": "Continua", "Available": "Disponibile", - "Available4K": "Disponibile 4K", + "Available4K": "Disponibile in 4K", "Approved": "Approvato", "Approve4K": "Approva 4K", "Pending": "In Sospeso", @@ -66,7 +66,7 @@ "Discover": "Scopri", "Search": "Cerca", "Requests": "Richieste", - "UserManagement": "Gestione degli utenti", + "UserManagement": "Utenti", "Issues": "Problemi", "Vote": "Vota", "Donate": "Dona!", @@ -74,7 +74,7 @@ "DonateTooltip": "Questo è come convinco mia moglie a farmi spendere il mio tempo libero nello sviluppo di Ombi ;)", "UpdateAvailableTooltip": "Aggiornamento disponibile!", "Settings": "Impostazioni", - "Welcome": "Ti diamo il benvenuto {{username}}", + "Welcome": "Benvenuto {{username}}", "UpdateDetails": "Aggiorna dettagli", "Logout": "Esci", "OpenMobileApp": "Apri l'app Mobile", @@ -90,9 +90,9 @@ "Music": "Musica", "People": "Persone" }, - "MorningWelcome": "Buona mattina!", + "MorningWelcome": "Buongiorno!", "AfternoonWelcome": "Buon pomeriggio!", - "EveningWelcome": "Buona sera!" + "EveningWelcome": "Buonasera!" }, "Search": { "Title": "Cerca", @@ -100,10 +100,10 @@ "MoviesTab": "Film", "TvTab": "Serie TV", "MusicTab": "Musica", - "AdvancedSearch": "Puoi compilare uno dei seguenti per scoprire nuovi media. Tutti i risultati sono ordinati per popolarità", + "AdvancedSearch": "Compila uno dei seguenti campi per cercare nuovi media. I risultati sono in ordine di popolarità", "AdvancedSearchHeader": "Ricerca Avanzata", "Suggestions": "Suggerimenti", - "NoResults": "Spiacenti, non abbiamo trovato nulla!", + "NoResults": "Nessun risultato trovato!", "DigitalDate": "Uscita in digitale: {{date}}", "TheatricalRelease": "Uscita nei cinema: {{date}}", "ViewOnPlex": "Guarda su Plex", @@ -136,12 +136,12 @@ "Season": "Stagione {{seasonNumber}}", "SelectAllInSeason": "Seleziona tutto nella stagione {{seasonNumber}}" }, - "AdvancedSearchInstructions": "Sei pregato di scegliere che tipo di media stai cercando:", + "AdvancedSearchInstructions": "Scegli che tipo di media cercare:", "YearOfRelease": "Anno di Rilascio", "SearchGenre": "Cerca per genere", - "SearchKeyword": "Termini di ricerca", + "SearchKeyword": "Cerca per parola chiave", "SearchProvider": "Provider di ricerca", - "KeywordSearchingDisclaimer": "Sei pregato di notare che la Ricerca per Parola chiave è molto a fortuna a causa di dati non coerenti nel TheMovieDb" + "KeywordSearchingDisclaimer": "Attenzione: La ricerca per parola chiave è incostante a causa di dati non coerenti su TheMovieDb" }, "Requests": { "Title": "Richieste", @@ -207,17 +207,20 @@ "RequestPanel": { "Delete": "Elimina Richiesta", "Approve": "Approva Richiesta", + "Deny": "Rifiuta Richiesta", "Approve4K": "Approva Richiesta 4K", + "Deny4K": "Rifiuta Richiesta 4K", "ChangeAvailability": "Segna come Disponibile", "Deleted": "Elementi selezionati eliminati correttamente", - "Approved": "Elementi selezionati approvati correttamente" + "Approved": "Elementi selezionati approvati correttamente", + "Denied": "Elementi selezionati rifiutati con successo" }, - "SuccessfullyApproved": "Approvato Correttamente", + "SuccessfullyApproved": "Approvata", "SuccessfullyDeleted": "Richiesta eliminata correttamente", "NowAvailable": "Richiesta ora disponibile", "NowUnavailable": "Richiesta ora non disponibile", - "SuccessfullyReprocessed": "Richiesta ri-elaborata correttamente", - "DeniedRequest": "Richiesta Negata", + "SuccessfullyReprocessed": "Richiesta rielaborata correttamente", + "DeniedRequest": "Richiesta Rifiutata", "RequestCollection": "Richiedi Raccolta", "CollectionSuccesfullyAdded": "La raccolta {{name}} è stata aggiunta correttamente!", "NeedToSelectEpisodes": "Devi selezionare degli episodi!", @@ -243,20 +246,20 @@ "CouldntNotify": "Impossibile notificare il titolo {{title}}" }, "Issues": { - "Title": "Problemi", - "IssuesForTitle": "Problemi per {{title}}", - "PendingTitle": "Problemi In Attesa", - "InProgressTitle": "Problemi In Corso", - "ResolvedTitle": "Problemi Risolti", + "Title": "Segnalazioni", + "IssuesForTitle": "Segnalazioni per {{title}}", + "PendingTitle": "Segnalazioni In Attesa", + "InProgressTitle": "Segnalazioni In Risoluzione", + "ResolvedTitle": "Segnalazioni Risolte", "ColumnTitle": "Titolo", - "Count": "Conteggio", + "Count": "Totale", "Category": "Categoria", "Status": "Stato", "Details": "Dettagli", "Description": "Descrizione", "NoComments": "Nessun Commento!", - "MarkInProgress": "Senza In Corso", - "MarkResolved": "Segna Risolto", + "MarkInProgress": "Approva", + "MarkResolved": "Risolvi", "SendMessageButton": "Invia", "Subject": "Oggetto", "Comments": "Commenti", @@ -306,22 +309,22 @@ "Denied": "Rifiutato", "Denied4K": "4K Negato", "Trailers": "Trailer", - "RecommendationsTitle": "Raccomandazioni", + "RecommendationsTitle": "Raccomandati", "SimilarTitle": "Simili", "VideosTitle": "Video", "AlbumsTitle": "Album", - "RequestAllAlbums": "Richiedi Tutti gli Album", + "RequestAllAlbums": "Richiedi tutti gli Album", "ClearSelection": "Cancella Selezione", - "RequestSelectedAlbums": "Richiesta degli Album Selezionati", + "RequestSelectedAlbums": "Richiedi gli Album Selezionati", "ViewCollection": "Visualizza Raccolta", - "NotEnoughInfo": "Sfortunatamente ancora non ci sono abbastanza informazioni su questo show!", + "NotEnoughInfo": "Purtroppo ancora non ci sono abbastanza informazioni su questa serie!", "AdvancedOptions": "Opzioni Avanzate", "AutoApproveOptions": "Puoi configurare qui la tua richiesta, che verrà inviata alla tua applicazione DVR e automaticamente approvata! La configurazione è facoltativa, basta premere Richiedi per saltarla!", "AutoApproveOptionsTv": "Puoi configurare qui la tua richiesta, che verrà inviata alla tua applicazione DVR e automaticamente approvata! Se la richiesta è già presente in Sonarr, la cartella radice o il profilo qualità non verrà cambiato! La configurazione è facoltativa, basta premere Richiedi per saltarla!", "AutoApproveOptionsTvShort": "Puoi configurare qui la tua richiesta, che verrà inviata alla tua applicazione DVR! Se la richiesta è già presente in Sonarr, la cartella radice o il profilo qualità non verrà cambiato! La configurazione è facoltativa, basta premere Richiedi per saltarla!", - "QualityProfilesSelect": "Seleziona Un Profilo di Qualità", - "RootFolderSelect": "Seleziona Una Cartella di Root", - "LanguageProfileSelect": "Seleziona Un Profilo della Lingua", + "QualityProfilesSelect": "Seleziona un Profilo per la Qualità", + "RootFolderSelect": "Seleziona una Cartella Principale", + "LanguageProfileSelect": "Seleziona un profilo per la Lingua", "Status": "Stato:", "StatusValues": { "Rumored": "Rumor", @@ -331,16 +334,16 @@ "Released": "Rilasciato", "Running": "In Corso", "Returning Series": "Serie Rinnovate", - "Ended": "Terminata", - "Canceled": "Annullata" + "Ended": "Conclusa", + "Canceled": "Cancellata" }, "Seasons": "Stagioni:", "Episodes": "Episodi:", "Availability": "Disponibilità:", "RequestStatus": "Stato Richiesta", "Quality": "Qualità:", - "RootFolderOverride": "Sovrascrizione Cartella di Root:", - "QualityOverride": "Sovrascrizione Qualità:", + "RootFolderOverride": "Sovrascrivi Cartella Principale:", + "QualityOverride": "Sovrascrivi Qualità:", "Network": "Rete:", "GenresLabel": "Generi:", "Genres": "Generi", @@ -357,9 +360,9 @@ "CastTitle": "Trasmetti" }, "EpisodeSelector": { - "AllSeasonsTooltip": "Questo richiederà ogni stagione per questo show", - "FirstSeasonTooltip": "Questo richiederà solo la Prima Stagione per questo show", - "LatestSeasonTooltip": "Questo richiederà solo l'Ultima Stagione per questo show", + "AllSeasonsTooltip": "Richiederà tutte le stagioni per questa serie", + "FirstSeasonTooltip": "Richiederà solo la Prima Stagione per questa serie", + "LatestSeasonTooltip": "Richiederà solo l'Ultima Stagione per questa serie", "NoEpisodes": "Sfortunatamente, non c'è ancora alcun dato dell'episodio per questa serie!", "SeasonNumber": "Stagione {{number}}" }, @@ -379,7 +382,8 @@ "Country": "Paese:", "StartDate": "Data Iniziale:", "EndDate": "Data Finale:" - } + }, + "RequestSource": "Sorgente:" }, "Discovery": { "PopularTab": "Popolare", @@ -410,14 +414,14 @@ "DarkMode": "Modalità Scura", "Updated": "Aggiornate Correttamente", "StreamingCountry": "Paese di Streaming", - "StreamingCountryDescription": "Questo è il codice paese per cui mostreremo le informazioni di streaming. Se sei negli USA, selezionando US riceverai le informazioni di streaming correlate agli USA.", + "StreamingCountryDescription": "Questo è il codice del paese per cui mostreremo le informazioni dei media. Se sei in Italia, seleziona IT e ti mostreremo le informazioni dei media in Italiano.", "LanguageDescription": "Questa è la lingua in cui vorresti fosse visualizzata l'interfaccia di Ombi.", "MobileQRCode": "Codice QR Mobile", "LegacyApp": "Avvia l'App Legacy", - "NoQrCode": "Sei pregato di contattare il tuo amministratore per abilitare i codici QR", + "NoQrCode": "Contatta l'amministratore per abilitare i codici QR", "UserType": "Tipo di Utente:", "ChangeDetails": "Modifica i Dettagli", - "NeedCurrentPassword": "Necessiti la tua password corrente per effettuare qualsiasi modifica qui", + "NeedCurrentPassword": "Hai bisogno della tua password attuale per apportare qualsiasi modifica qui", "CurrentPassword": "Password Corrente", "EmailAddress": "Indirizzo Email", "NewPassword": "Nuova Password", @@ -429,8 +433,8 @@ }, "UserTypeLabel": { "1": "Utente Locale", - "2": "Utente di Plex", - "3": "Utente di Emby", + "2": "Utente Plex", + "3": "Utente Emby", "4": "Connetti Utente di Emby", "5": "Utente di Jellyfin" }, diff --git a/src/Ombi/wwwroot/translations/nl.json b/src/Ombi/wwwroot/translations/nl.json index 33e311928..932bbff9c 100644 --- a/src/Ombi/wwwroot/translations/nl.json +++ b/src/Ombi/wwwroot/translations/nl.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Verwijder Verzoek", "Approve": "Verzoek Goedkeuren", + "Deny": "Deny Request", "Approve4K": "Approve 4K Request", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Markeer beschikbaar", "Deleted": "Successfully deleted selected items", - "Approved": "Successfully approved selected items" + "Approved": "Successfully approved selected items", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Successfully Approved", "SuccessfullyDeleted": "Request successfully deleted", @@ -379,7 +382,8 @@ "Country": "Country:", "StartDate": "Start Date:", "EndDate": "EndDate:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "Populair", diff --git a/src/Ombi/wwwroot/translations/no.json b/src/Ombi/wwwroot/translations/no.json index ab409a431..fcb16d35b 100644 --- a/src/Ombi/wwwroot/translations/no.json +++ b/src/Ombi/wwwroot/translations/no.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Delete Request", "Approve": "Approve Request", + "Deny": "Deny Request", "Approve4K": "Approve 4K Request", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Merk tilgjengelig", "Deleted": "Successfully deleted selected items", - "Approved": "Successfully approved selected items" + "Approved": "Successfully approved selected items", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Successfully Approved", "SuccessfullyDeleted": "Request successfully deleted", @@ -379,7 +382,8 @@ "Country": "Country:", "StartDate": "Start Date:", "EndDate": "EndDate:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "Populært", diff --git a/src/Ombi/wwwroot/translations/pl.json b/src/Ombi/wwwroot/translations/pl.json index 756c2658c..869feaac1 100644 --- a/src/Ombi/wwwroot/translations/pl.json +++ b/src/Ombi/wwwroot/translations/pl.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Usuń zgłoszenie", "Approve": "Zatwierdź zgłoszenie", + "Deny": "Deny Request", "Approve4K": "Zatwierdź prośbę o 4K", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Ozn. jako dostępne", "Deleted": "Pomyślnie usunięto wybrane elementy", - "Approved": "Pomyślnie zatwierdzono wybrane elementy" + "Approved": "Pomyślnie zatwierdzono wybrane elementy", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Zatwierdzono pomyślnie", "SuccessfullyDeleted": "Prośba pomyślnie usunięta", @@ -379,7 +382,8 @@ "Country": "Kraj:", "StartDate": "Data rozpoczęcia:", "EndDate": "Data zakończenia:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "Popularne", diff --git a/src/Ombi/wwwroot/translations/pt-BR.json b/src/Ombi/wwwroot/translations/pt-BR.json index 899c42281..88623edd5 100644 --- a/src/Ombi/wwwroot/translations/pt-BR.json +++ b/src/Ombi/wwwroot/translations/pt-BR.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Apagar Solicitação", "Approve": "Aprovar Solicitação", + "Deny": "Recusar pedido", "Approve4K": "Aprovar pedido 4K", + "Deny4K": "Recusar pedido de 4K", "ChangeAvailability": "Marcar Como Disponível", "Deleted": "Successfully deleted selected items", - "Approved": "Successfully approved selected items" + "Approved": "Successfully approved selected items", + "Denied": "Itens selecionados negados com sucesso" }, "SuccessfullyApproved": "Successfully Approved", "SuccessfullyDeleted": "Request successfully deleted", @@ -379,7 +382,8 @@ "Country": "Country:", "StartDate": "Start Date:", "EndDate": "EndDate:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "Popular", diff --git a/src/Ombi/wwwroot/translations/pt.json b/src/Ombi/wwwroot/translations/pt.json index 736330eb9..ed1aa5434 100644 --- a/src/Ombi/wwwroot/translations/pt.json +++ b/src/Ombi/wwwroot/translations/pt.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Delete Request", "Approve": "Approve Request", + "Deny": "Deny Request", "Approve4K": "Approve 4K Request", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Mark Available", "Deleted": "Successfully deleted selected items", - "Approved": "Successfully approved selected items" + "Approved": "Successfully approved selected items", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Successfully Approved", "SuccessfullyDeleted": "Request successfully deleted", @@ -379,7 +382,8 @@ "Country": "Country:", "StartDate": "Start Date:", "EndDate": "EndDate:" - } + }, + "RequestSource": "Origem:" }, "Discovery": { "PopularTab": "Popular", diff --git a/src/Ombi/wwwroot/translations/ru.json b/src/Ombi/wwwroot/translations/ru.json index 9af1e31fc..b60adcaaa 100644 --- a/src/Ombi/wwwroot/translations/ru.json +++ b/src/Ombi/wwwroot/translations/ru.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Delete Request", "Approve": "Approve Request", + "Deny": "Deny Request", "Approve4K": "Approve 4K Request", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Отметить доступным", "Deleted": "Successfully deleted selected items", - "Approved": "Successfully approved selected items" + "Approved": "Successfully approved selected items", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Successfully Approved", "SuccessfullyDeleted": "Request successfully deleted", @@ -379,7 +382,8 @@ "Country": "Country:", "StartDate": "Start Date:", "EndDate": "EndDate:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "Популярное", diff --git a/src/Ombi/wwwroot/translations/sk.json b/src/Ombi/wwwroot/translations/sk.json index 79b08263e..b13ddd8ff 100644 --- a/src/Ombi/wwwroot/translations/sk.json +++ b/src/Ombi/wwwroot/translations/sk.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Odstrániž požiadavku", "Approve": "Schváliť žiadosť", + "Deny": "Deny Request", "Approve4K": "Approve 4K Request", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Označiť k dispozícií", "Deleted": "Úspešne odstránené vybrané položky", - "Approved": "Úspešne schválené vybrané položky" + "Approved": "Úspešne schválené vybrané položky", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Úspešne schválené", "SuccessfullyDeleted": "Žiadosť bola úspešne vymazaná", @@ -379,7 +382,8 @@ "Country": "Krajina:", "StartDate": "Dátum začatia:", "EndDate": "Dátum ukončenia:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "Populárne", diff --git a/src/Ombi/wwwroot/translations/sv.json b/src/Ombi/wwwroot/translations/sv.json index 03caceb46..7b4ba0439 100644 --- a/src/Ombi/wwwroot/translations/sv.json +++ b/src/Ombi/wwwroot/translations/sv.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "Ta bort förfrågan", "Approve": "Godkänn begäran", + "Deny": "Deny Request", "Approve4K": "Godkänn 4K-begäran", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "Markera Tillgänglig", "Deleted": "Successfully deleted selected items", - "Approved": "Successfully approved selected items" + "Approved": "Successfully approved selected items", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "Successfully Approved", "SuccessfullyDeleted": "Request successfully deleted", @@ -379,7 +382,8 @@ "Country": "Country:", "StartDate": "Start Date:", "EndDate": "EndDate:" - } + }, + "RequestSource": "Källa:" }, "Discovery": { "PopularTab": "Populära", diff --git a/src/Ombi/wwwroot/translations/zh-TW.json b/src/Ombi/wwwroot/translations/zh-TW.json index 9dfa34248..16d8d9adf 100644 --- a/src/Ombi/wwwroot/translations/zh-TW.json +++ b/src/Ombi/wwwroot/translations/zh-TW.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "删除请求", "Approve": "批准请求", + "Deny": "Deny Request", "Approve4K": "Approve 4K Request", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "标记为可用", "Deleted": "所选项目已删除", - "Approved": "所选项目已批准" + "Approved": "所选项目已批准", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "批准成功", "SuccessfullyDeleted": "删除请求成功", @@ -379,7 +382,8 @@ "Country": "国家:", "StartDate": "开始日期:", "EndDate": "结束日期:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "热门", diff --git a/src/Ombi/wwwroot/translations/zh.json b/src/Ombi/wwwroot/translations/zh.json index bc993ca0e..edbdf6e94 100644 --- a/src/Ombi/wwwroot/translations/zh.json +++ b/src/Ombi/wwwroot/translations/zh.json @@ -207,10 +207,13 @@ "RequestPanel": { "Delete": "删除请求", "Approve": "批准请求", + "Deny": "Deny Request", "Approve4K": "批准4K请求", + "Deny4K": "Deny 4K Request", "ChangeAvailability": "标记为可用", "Deleted": "所选项目已删除", - "Approved": "所选项目已批准" + "Approved": "所选项目已批准", + "Denied": "Successfully denied selected items" }, "SuccessfullyApproved": "批准成功", "SuccessfullyDeleted": "删除请求成功", @@ -379,7 +382,8 @@ "Country": "国家:", "StartDate": "开始日期:", "EndDate": "结束日期:" - } + }, + "RequestSource": "Source:" }, "Discovery": { "PopularTab": "热门", diff --git a/version.json b/version.json index eb3cc380d..674e605d4 100644 --- a/version.json +++ b/version.json @@ -1,3 +1,3 @@ { - "version": "4.16.8" + "version": "4.16.10" } \ No newline at end of file