2020-02-25 12:08:48 +00:00
|
|
|
<script>
|
|
|
|
import { GlModal } from '@gitlab/ui';
|
|
|
|
import csrf from '~/lib/utils/csrf';
|
|
|
|
|
|
|
|
export default {
|
|
|
|
components: {
|
|
|
|
GlModal,
|
|
|
|
},
|
|
|
|
props: {
|
|
|
|
modalAttributes: {
|
|
|
|
type: Object,
|
2020-03-06 09:08:13 +00:00
|
|
|
required: false,
|
|
|
|
default: () => {
|
|
|
|
return {};
|
|
|
|
},
|
2020-02-25 12:08:48 +00:00
|
|
|
},
|
|
|
|
path: {
|
|
|
|
type: String,
|
2020-03-06 09:08:13 +00:00
|
|
|
required: false,
|
|
|
|
default: '',
|
2020-02-25 12:08:48 +00:00
|
|
|
},
|
|
|
|
method: {
|
|
|
|
type: String,
|
2020-03-06 09:08:13 +00:00
|
|
|
required: false,
|
|
|
|
default: '',
|
|
|
|
},
|
|
|
|
showModal: {
|
|
|
|
type: Boolean,
|
|
|
|
required: false,
|
|
|
|
default: false,
|
2020-02-25 12:08:48 +00:00
|
|
|
},
|
|
|
|
},
|
2020-03-06 09:08:13 +00:00
|
|
|
watch: {
|
|
|
|
showModal(val) {
|
|
|
|
if (val) {
|
|
|
|
// Wait for v-if to render
|
|
|
|
this.$nextTick(() => {
|
|
|
|
this.openModal();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
},
|
2020-02-25 12:08:48 +00:00
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
openModal() {
|
|
|
|
this.$refs.modal.show();
|
|
|
|
},
|
|
|
|
submitModal() {
|
2020-03-06 09:08:13 +00:00
|
|
|
this.$refs.form.submit();
|
2020-02-25 12:08:48 +00:00
|
|
|
},
|
|
|
|
},
|
|
|
|
csrf,
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<template>
|
|
|
|
<gl-modal
|
2020-03-06 09:08:13 +00:00
|
|
|
v-if="showModal"
|
2020-02-25 12:08:48 +00:00
|
|
|
ref="modal"
|
|
|
|
v-bind="modalAttributes"
|
|
|
|
@primary="submitModal"
|
2020-03-06 09:08:13 +00:00
|
|
|
@canceled="$emit('dismiss')"
|
2020-02-25 12:08:48 +00:00
|
|
|
>
|
|
|
|
<form ref="form" :action="path" method="post">
|
|
|
|
<!-- Rails workaround for <form method="delete" />
|
|
|
|
https://github.com/rails/rails/blob/master/actionview/app/assets/javascripts/rails-ujs/features/method.coffee
|
|
|
|
-->
|
|
|
|
<input type="hidden" name="_method" :value="method" />
|
|
|
|
<input type="hidden" name="authenticity_token" :value="$options.csrf.token" />
|
|
|
|
<div>{{ modalAttributes.message }}</div>
|
|
|
|
</form>
|
|
|
|
</gl-modal>
|
|
|
|
</template>
|