@@ -194,28 +194,13 @@
@cancel="[drawField = null, drawOption = null]"
@change-submitter="[selectedSubmitter = $event, drawField.submitter_uuid = $event.uuid]"
/>
-
-
-
+ :fields="template.fields"
+ :default-fields="defaultFields"
+ :selected-submitter="selectedSubmitter"
+ @select="startFieldDraw($event)"
+ />
ref(),
fieldAreasIndex () {
const areas = {}
@@ -489,31 +470,38 @@ export default {
this.documentRefs = []
},
methods: {
- startFieldDraw (type) {
- const field = {
- name: '',
- uuid: v4(),
- required: type !== 'checkbox',
- areas: [],
- submitter_uuid: this.selectedSubmitter.uuid,
- type
- }
+ startFieldDraw ({ name, type }) {
+ const existingField = this.template.fields?.find((f) => f.submitter_uuid === this.selectedSubmitter.uuid && name && name === f.name)
- if (['select', 'multiple', 'radio'].includes(type)) {
- field.options = [{ value: '', uuid: v4() }]
- }
+ if (existingField) {
+ this.drawField = existingField
+ } else {
+ const field = {
+ name: name || '',
+ uuid: v4(),
+ required: type !== 'checkbox',
+ areas: [],
+ submitter_uuid: this.selectedSubmitter.uuid,
+ type
+ }
- if (type === 'stamp') {
- field.readonly = true
- }
+ if (['select', 'multiple', 'radio'].includes(type)) {
+ field.options = [{ value: '', uuid: v4() }]
+ }
- if (type === 'date') {
- field.preferences = {
- format: Intl.DateTimeFormat().resolvedOptions().locale.endsWith('-US') ? 'MM/DD/YYYY' : 'DD/MM/YYYY'
+ if (type === 'stamp') {
+ field.readonly = true
+ }
+
+ if (type === 'date') {
+ field.preferences = {
+ format: Intl.DateTimeFormat().resolvedOptions().locale.endsWith('-US') ? 'MM/DD/YYYY' : 'DD/MM/YYYY'
+ }
}
+
+ this.drawField = field
}
- this.drawField = field
this.drawOption = null
},
undo () {
diff --git a/app/javascript/template_builder/field.vue b/app/javascript/template_builder/field.vue
index ced9d919..6e0fd7dc 100644
--- a/app/javascript/template_builder/field.vue
+++ b/app/javascript/template_builder/field.vue
@@ -70,7 +70,7 @@
:field="field"
/>