diff --git a/src/services/edge-node-service-services/delete-service-edge-node-service.js b/src/services/edge-node-service-services/delete-service-edge-node-service.js index 38dc57139..301221dfc 100644 --- a/src/services/edge-node-service-services/delete-service-edge-node-service.js +++ b/src/services/edge-node-service-services/delete-service-edge-node-service.js @@ -14,7 +14,7 @@ export const deleteServiceEdgeNodeService = async ({ edgeNodeId, id }) => { const parseHttpResponse = (httpResponse) => { switch (httpResponse.statusCode) { case 204: - return 'Service on Edge Node successfully deleted' + return 'Service successfully unbound' case 400: throw new Errors.NotFoundError().message case 401: diff --git a/src/tests/services/edge-node-service-services/delete-service-edge-node-service.test.js b/src/tests/services/edge-node-service-services/delete-service-edge-node-service.test.js index 721788b64..acbd83e6e 100644 --- a/src/tests/services/edge-node-service-services/delete-service-edge-node-service.test.js +++ b/src/tests/services/edge-node-service-services/delete-service-edge-node-service.test.js @@ -37,7 +37,7 @@ describe('EdgeNodeServices', () => { const feedbackMessage = await sut(mockId) - expect(feedbackMessage).toBe('Service on Edge Node successfully deleted') + expect(feedbackMessage).toBe('Service successfully unbound') }) it.each([ diff --git a/src/views/EdgeNode/Dialog/Unbind.vue b/src/views/EdgeNode/Dialog/Unbind.vue new file mode 100644 index 000000000..86fa7f1c7 --- /dev/null +++ b/src/views/EdgeNode/Dialog/Unbind.vue @@ -0,0 +1,162 @@ + + + + + + Once confirmed, this action can't be reversed. + + + + This {{ data.title }} will be unbound from the {{ data.parent }}, along with any + associated settings. + + + + + + Type “unbind” to confirm: + + + {{ errors.confirmation }} + + + + + + + + + + + + + + + + + diff --git a/src/views/EdgeNode/ListViewTabServices.vue b/src/views/EdgeNode/ListViewTabServices.vue index 946d36c00..e76eaba6d 100644 --- a/src/views/EdgeNode/ListViewTabServices.vue +++ b/src/views/EdgeNode/ListViewTabServices.vue @@ -6,6 +6,7 @@ import DrawerService from '@/views/EdgeNode/Drawer' import PrimeButton from 'primevue/button' import { computed, ref } from 'vue' + import UnbindDialog from '@/views/EdgeNode/Dialog/Unbind' defineOptions({ name: 'list-edge-node-resources-tab' }) @@ -70,7 +71,7 @@ }) } - const deleteServicesWithDecorator = async (id) => { + const unbindServicesWithDecorator = async (id) => { return await props.deleteServiceEdgeNodeService({ edgeNodeId: props.edgeNodeId, id @@ -87,10 +88,21 @@ const actions = [ { - type: 'delete', - title: 'service', + type: 'dialog', icon: 'pi pi-trash', - service: deleteServicesWithDecorator + label: 'Unbind', + dialog: { + component: UnbindDialog, + body: (item) => ({ + data: { + title: 'edge service', + parent: 'edge node', + selectedID: item.id, + service: unbindServicesWithDecorator + }, + onClose: (opt) => opt.data.updated && reloadServicesList() + }) + } } ]
+ This {{ data.title }} will be unbound from the {{ data.parent }}, along with any + associated settings. +