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",