diff --git a/app/javascript/template_builder/builder.vue b/app/javascript/template_builder/builder.vue index ac671e9f..e3e17dbe 100644 --- a/app/javascript/template_builder/builder.vue +++ b/app/javascript/template_builder/builder.vue @@ -415,6 +415,7 @@ import Contenteditable from './contenteditable' import DocumentPreview from './preview' import DocumentControls from './controls' import MobileFields from './mobile_fields' +import FieldSubmitter from './field_submitter' import { IconPlus, IconUsersPlus, IconDeviceFloppy, IconChevronDown, IconEye, IconWritingSign, IconInnerShadowTop, IconInfoCircle, IconAdjustments } from '@tabler/icons-vue' import { v4 } from 'uuid' import { ref, computed } from 'vue' @@ -558,6 +559,11 @@ export default { required: false, default: () => [] }, + defineSubmitters: { + type: Array, + required: false, + default: () => [] + }, acceptFileTypes: { type: String, required: false, @@ -677,6 +683,7 @@ export default { } }, computed: { + submitterDefaultNames: FieldSubmitter.computed.names, selectedAreaRef: () => ref(), fieldsDragFieldRef: () => ref(), language () { @@ -749,6 +756,18 @@ export default { } }) + this.defineSubmitters.forEach((name, index) => { + const submitter = (this.template.submitters[index] ||= {}) + + submitter.name = name || this.submitterDefaultNames[index] + + if (existingSubmittersUuids.filter(Boolean).length) { + submitter.uuid = existingSubmittersUuids[index] || submitter.uuid || v4() + } else { + submitter.uuid ||= v4() + } + }) + this.selectedSubmitter = this.template.submitters[0] }, mounted () {