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 a22c5a2ef..be749cc28 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,8 +1,11 @@ - Delete Request + {{'Requests.RequestPanel.Delete' | translate}} - Approve Request + {{'Requests.RequestPanel.Approve' | translate}} + + + {{'Requests.RequestPanel.ChangeAvailability' | 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 5a4ef4430..625efe31c 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 @@ -9,6 +9,9 @@ import { UpdateType } from '../../models/UpdateType'; templateUrl: './request-options.component.html', }) export class RequestOptionsComponent { + + public RequestType = RequestType; + constructor(@Inject(MAT_BOTTOM_SHEET_DATA) public data: any, private requestService: RequestService, private bottomSheetRef: MatBottomSheetRef) { } @@ -41,4 +44,16 @@ export class RequestOptionsComponent { this.bottomSheetRef.dismiss({type: UpdateType.Approve}); return; } + + public async changeAvailability() { + if (this.data.type === RequestType.movie) { + await this.requestService.markMovieAvailable({id: this.data.id}).toPromise(); + } + if (this.data.type === RequestType.album) { + await this.requestService.markAlbumAvailable({id: this.data.id}).toPromise(); + } + + this.bottomSheetRef.dismiss({type: UpdateType.Availability}); + return; + } } \ No newline at end of file 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 fc00c39d3..6cdd84af3 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 @@ -29,6 +29,12 @@ export class RequestsListComponent { event.onChange(); return; } + if (result.type == UpdateType.Availability) { + // Need to do this here, as the status is calculated on the server + event.request.requestStatus = 'Common.Available'; + 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 647c4601d..3a0f690db 100644 --- a/src/Ombi/ClientApp/src/app/requests-list/models/UpdateType.ts +++ b/src/Ombi/ClientApp/src/app/requests-list/models/UpdateType.ts @@ -1,4 +1,5 @@ export enum UpdateType { - Delete, - Approve + Delete, + Approve, + Availability } \ No newline at end of file diff --git a/src/Ombi/Controllers/V2/RequestsController.cs b/src/Ombi/Controllers/V2/RequestsController.cs index 496e17cee..95ab96367 100644 --- a/src/Ombi/Controllers/V2/RequestsController.cs +++ b/src/Ombi/Controllers/V2/RequestsController.cs @@ -139,7 +139,7 @@ namespace Ombi.Controllers.V2 return await _tvRequestEngine.UpdateAdvancedOptions(options); } - [HttpGet("albums/available/{count:int}/{position:int}/{sort}/{sortOrder}")] + [HttpGet("album/available/{count:int}/{position:int}/{sort}/{sortOrder}")] public async Task> GetAvailableAlbumRequests(int count, int position, string sort, string sortOrder) { return await _musicRequestEngine.GetRequestsByStatus(count, position, sort, sortOrder, RequestStatus.Available); diff --git a/src/Ombi/wwwroot/translations/en.json b/src/Ombi/wwwroot/translations/en.json index 3f6df284a..665811489 100644 --- a/src/Ombi/wwwroot/translations/en.json +++ b/src/Ombi/wwwroot/translations/en.json @@ -175,7 +175,12 @@ "RequestsToDisplay": "Requests to display", "RequestsTitle": "Title", "Details": "Details", - "Options": "Options" + "Options": "Options", + "RequestPanel": { + "Delete":"Delete Request", + "Approve":"Approve Request", + "ChangeAvailability":"Mark Available" + } }, "Issues": { "Title": "Issues",