diff options
Diffstat (limited to 'app/assets/javascripts/pages/shared/wikis/components/delete_wiki_modal.vue')
-rw-r--r-- | app/assets/javascripts/pages/shared/wikis/components/delete_wiki_modal.vue | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/app/assets/javascripts/pages/shared/wikis/components/delete_wiki_modal.vue b/app/assets/javascripts/pages/shared/wikis/components/delete_wiki_modal.vue new file mode 100644 index 00000000000..580cca49b5e --- /dev/null +++ b/app/assets/javascripts/pages/shared/wikis/components/delete_wiki_modal.vue @@ -0,0 +1,74 @@ +<script> +import { escape } from 'lodash'; +import { GlModal, GlModalDirective } from '@gitlab/ui'; +import { s__, sprintf } from '~/locale'; + +export default { + components: { + GlModal, + }, + directives: { + 'gl-modal': GlModalDirective, + }, + props: { + deleteWikiUrl: { + type: String, + required: true, + default: '', + }, + pageTitle: { + type: String, + required: true, + default: '', + }, + csrfToken: { + type: String, + required: true, + default: '', + }, + }, + computed: { + modalId() { + return 'delete-wiki-modal'; + }, + message() { + return s__('WikiPageConfirmDelete|Are you sure you want to delete this page?'); + }, + title() { + return sprintf( + s__('WikiPageConfirmDelete|Delete page %{pageTitle}?'), + { + pageTitle: escape(this.pageTitle), + }, + false, + ); + }, + }, + methods: { + onSubmit() { + window.onbeforeunload = null; + this.$refs.form.submit(); + }, + }, +}; +</script> + +<template> + <div class="d-inline-block"> + <button v-gl-modal="modalId" type="button" class="btn btn-danger">{{ __('Delete') }}</button> + <gl-modal + :title="title" + :ok-title="s__('WikiPageConfirmDelete|Delete page')" + :modal-id="modalId" + title-tag="h4" + ok-variant="danger" + @ok="onSubmit" + > + {{ message }} + <form ref="form" :action="deleteWikiUrl" method="post" class="js-requires-input"> + <input ref="method" type="hidden" name="_method" value="delete" /> + <input :value="csrfToken" type="hidden" name="authenticity_token" /> + </form> + </gl-modal> + </div> +</template> |