diff --git a/app/components/modal-delete-webhook.js b/app/components/modal-delete-webhook.js new file mode 100644 index 0000000000..b39eeb90e3 --- /dev/null +++ b/app/components/modal-delete-webhook.js @@ -0,0 +1,26 @@ +import ModalComponent from 'ghost-admin/components/modal-base'; +import {alias} from '@ember/object/computed'; +import {inject as service} from '@ember/service'; +import {task} from 'ember-concurrency'; + +export default ModalComponent.extend({ + notifications: service(), + + webhook: alias('model'), + + actions: { + confirm() { + this.deleteWebhook.perform(); + } + }, + + deleteWebhook: task(function* () { + try { + yield this.confirm(); + } catch (error) { + this.notifications.showAPIError(error, {key: 'webhook.delete.failed'}); + } finally { + this.send('closeModal'); + } + }).drop() +}); diff --git a/app/controllers/settings/integration.js b/app/controllers/settings/integration.js index 9355297047..d680220bab 100644 --- a/app/controllers/settings/integration.js +++ b/app/controllers/settings/integration.js @@ -61,6 +61,18 @@ export default Controller.extend({ this.integration.rollbackAttributes(); return transition.retry(); + }, + + confirmWebhookDeletion(webhook) { + this.set('webhookToDelete', webhook); + }, + + cancelWebhookDeletion() { + this.set('webhookToDelete', null); + }, + + deleteWebhook() { + return this.webhookToDelete.destroyRecord(); } }, diff --git a/app/templates/components/modal-delete-webhook.hbs b/app/templates/components/modal-delete-webhook.hbs new file mode 100644 index 0000000000..ac927a91ba --- /dev/null +++ b/app/templates/components/modal-delete-webhook.hbs @@ -0,0 +1,15 @@ + +{{svg-jar "close"}} + + + + \ No newline at end of file diff --git a/app/templates/settings/integration.hbs b/app/templates/settings/integration.hbs index e75db2e4f4..bdbe6c7d29 100644 --- a/app/templates/settings/integration.hbs +++ b/app/templates/settings/integration.hbs @@ -143,6 +143,9 @@ {{#link-to "settings.integration.webhooks.edit" integration webhook}} {{svg-jar "koenig/kg-thin-edit" class="w4 fill-black-80"}} {{/link-to}} + @@ -172,4 +175,11 @@ modifier="action wide"}} {{/if}} +{{#if webhookToDelete}} + {{gh-fullscreen-modal "delete-webhook" + confirm=(action "deleteWebhook") + close=(action "cancelWebhookDeletion") + modifier="action wide"}} +{{/if}} + {{outlet}} \ No newline at end of file