diff --git a/client/app/states/services/custom_button_details/custom_button_details.state.js b/client/app/states/services/custom_button_details/custom_button_details.state.js index 4381484e8..50be5f5a3 100644 --- a/client/app/states/services/custom_button_details/custom_button_details.state.js +++ b/client/app/states/services/custom_button_details/custom_button_details.state.js @@ -70,14 +70,16 @@ function StateController($state, $stateParams, dialog, service, CollectionsApi, ); function submitCustomButton() { - var dialogFieldData = {}; + const dialogFieldData = {}; + const buttonClass = vm.button.applies_to_class.toLowerCase(); + const collection = buttonClass === 'service' ? 'services' : buttonClass === 'vm' ? 'vms' : null; - angular.forEach(allDialogFields, function(dialogField) { + allDialogFields.forEach((dialogField) => { dialogFieldData[dialogField.name] = dialogField.default_value; }); CollectionsApi.post( - 'services', + collection, $stateParams.serviceId, {}, angular.toJson({action: $stateParams.button.name, resource: dialogFieldData}) @@ -89,7 +91,7 @@ function StateController($state, $stateParams, dialog, service, CollectionsApi, } function submitFailure(result) { - EventNotifications.error(__('There was an error submitting this request: ') + result); + EventNotifications.error(__('There was an error submitting this request: ') + result.data.error.message); } } } diff --git a/client/app/states/services/custom_button_details/custom_button_details.state.spec.js b/client/app/states/services/custom_button_details/custom_button_details.state.spec.js index 17697024c..972c9c462 100644 --- a/client/app/states/services/custom_button_details/custom_button_details.state.spec.js +++ b/client/app/states/services/custom_button_details/custom_button_details.state.spec.js @@ -26,7 +26,8 @@ describe('services.custom_button_details', function() { }; var button = { name: 'buttonName', - applies_to_id: 456 + applies_to_id: 456, + applies_to_class: 'Service' }; beforeEach(function() {