summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/deploy_keys/components/app.vue
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/deploy_keys/components/app.vue')
-rw-r--r--app/assets/javascripts/deploy_keys/components/app.vue43
1 files changed, 27 insertions, 16 deletions
diff --git a/app/assets/javascripts/deploy_keys/components/app.vue b/app/assets/javascripts/deploy_keys/components/app.vue
index 425cca13ae8..02c57164f47 100644
--- a/app/assets/javascripts/deploy_keys/components/app.vue
+++ b/app/assets/javascripts/deploy_keys/components/app.vue
@@ -6,10 +6,12 @@ import NavigationTabs from '~/vue_shared/components/navigation_tabs.vue';
import eventHub from '../eventhub';
import DeployKeysService from '../service';
import DeployKeysStore from '../store';
+import ConfirmModal from './confirm_modal.vue';
import KeysPanel from './keys_panel.vue';
export default {
components: {
+ ConfirmModal,
KeysPanel,
NavigationTabs,
GlLoadingIcon,
@@ -30,6 +32,9 @@ export default {
currentTab: 'enabled_keys',
isLoading: false,
store: new DeployKeysStore(),
+ removeKey: () => {},
+ cancel: () => {},
+ confirmModalVisible: false,
};
},
scopes: {
@@ -61,16 +66,16 @@ export default {
this.service = new DeployKeysService(this.endpoint);
eventHub.$on('enable.key', this.enableKey);
- eventHub.$on('remove.key', this.disableKey);
- eventHub.$on('disable.key', this.disableKey);
+ eventHub.$on('remove.key', this.confirmRemoveKey);
+ eventHub.$on('disable.key', this.confirmRemoveKey);
},
mounted() {
this.fetchKeys();
},
beforeDestroy() {
eventHub.$off('enable.key', this.enableKey);
- eventHub.$off('remove.key', this.disableKey);
- eventHub.$off('disable.key', this.disableKey);
+ eventHub.$off('remove.key', this.confirmRemoveKey);
+ eventHub.$off('disable.key', this.confirmRemoveKey);
},
methods: {
onChangeTab(tab) {
@@ -97,19 +102,20 @@ export default {
.then(this.fetchKeys)
.catch(() => new Flash(s__('DeployKeys|Error enabling deploy key')));
},
- disableKey(deployKey, callback) {
- if (
- // eslint-disable-next-line no-alert
- window.confirm(s__('DeployKeys|You are going to remove this deploy key. Are you sure?'))
- ) {
+ confirmRemoveKey(deployKey, callback) {
+ const hideModal = () => {
+ this.confirmModalVisible = false;
+ callback?.();
+ };
+ this.removeKey = () => {
this.service
.disableKey(deployKey.id)
.then(this.fetchKeys)
- .then(callback)
+ .then(hideModal)
.catch(() => new Flash(s__('DeployKeys|Error removing deploy key')));
- } else {
- callback();
- }
+ };
+ this.cancel = hideModal;
+ this.confirmModalVisible = true;
},
},
};
@@ -117,6 +123,7 @@ export default {
<template>
<div class="gl-mb-3 deploy-keys">
+ <confirm-modal :visible="confirmModalVisible" @remove="removeKey" @cancel="cancel" />
<gl-loading-icon
v-if="isLoading && !hasKeys"
:label="s__('DeployKeys|Loading deploy keys')"
@@ -124,8 +131,12 @@ export default {
/>
<template v-else-if="hasKeys">
<div class="top-area scrolling-tabs-container inner-page-scroll-tabs">
- <div class="fade-left"><gl-icon name="chevron-lg-left" :size="12" /></div>
- <div class="fade-right"><gl-icon name="chevron-lg-right" :size="12" /></div>
+ <div class="fade-left">
+ <gl-icon name="chevron-lg-left" :size="12" />
+ </div>
+ <div class="fade-right">
+ <gl-icon name="chevron-lg-right" :size="12" />
+ </div>
<navigation-tabs :tabs="tabs" scope="deployKeys" @onChangeTab="onChangeTab" />
</div>
@@ -134,7 +145,7 @@ export default {
:keys="keys[currentTab]"
:store="store"
:endpoint="endpoint"
- data-qa-selector="project_deploy_keys"
+ data-qa-selector="project_deploy_keys_container"
/>
</template>
</div>