summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/static_site_editor/components/edit_meta_modal.vue
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/static_site_editor/components/edit_meta_modal.vue')
-rw-r--r--app/assets/javascripts/static_site_editor/components/edit_meta_modal.vue85
1 files changed, 85 insertions, 0 deletions
diff --git a/app/assets/javascripts/static_site_editor/components/edit_meta_modal.vue b/app/assets/javascripts/static_site_editor/components/edit_meta_modal.vue
new file mode 100644
index 00000000000..4e5245bd892
--- /dev/null
+++ b/app/assets/javascripts/static_site_editor/components/edit_meta_modal.vue
@@ -0,0 +1,85 @@
+<script>
+import { GlModal } from '@gitlab/ui';
+import { __, s__, sprintf } from '~/locale';
+
+import EditMetaControls from './edit_meta_controls.vue';
+
+export default {
+ components: {
+ GlModal,
+ EditMetaControls,
+ },
+ props: {
+ sourcePath: {
+ type: String,
+ required: true,
+ },
+ },
+ data() {
+ return {
+ mergeRequestMeta: {
+ title: sprintf(s__(`StaticSiteEditor|Update %{sourcePath} file`), {
+ sourcePath: this.sourcePath,
+ }),
+ description: s__('StaticSiteEditor|Copy update'),
+ },
+ };
+ },
+ computed: {
+ disabled() {
+ return this.mergeRequestMeta.title === '';
+ },
+ primaryProps() {
+ return {
+ text: __('Submit changes'),
+ attributes: [{ variant: 'success' }, { disabled: this.disabled }],
+ };
+ },
+ secondaryProps() {
+ return {
+ text: __('Keep editing'),
+ attributes: [{ variant: 'default' }],
+ };
+ },
+ },
+ methods: {
+ hide() {
+ this.$refs.modal.hide();
+ },
+ show() {
+ this.$refs.modal.show();
+ },
+ onPrimary() {
+ this.$emit('primary', this.mergeRequestMeta);
+ this.$refs.editMetaControls.resetCachedEditable();
+ },
+ onSecondary() {
+ this.hide();
+ },
+ onUpdateSettings(mergeRequestMeta) {
+ this.mergeRequestMeta = { ...mergeRequestMeta };
+ },
+ },
+};
+</script>
+
+<template>
+ <gl-modal
+ ref="modal"
+ modal-id="edit-meta-modal"
+ :title="__('Submit your changes')"
+ :action-primary="primaryProps"
+ :action-secondary="secondaryProps"
+ size="sm"
+ @primary="onPrimary"
+ @secondary="onSecondary"
+ @hide="() => $emit('hide')"
+ >
+ <edit-meta-controls
+ ref="editMetaControls"
+ :title="mergeRequestMeta.title"
+ :description="mergeRequestMeta.description"
+ @updateSettings="onUpdateSettings"
+ />
+ </gl-modal>
+</template>