diff --git a/app/javascript/submission_form/area.vue b/app/javascript/submission_form/area.vue
index 24701976..e5560800 100644
--- a/app/javascript/submission_form/area.vue
+++ b/app/javascript/submission_form/area.vue
@@ -56,11 +56,11 @@
@@ -333,6 +333,13 @@ export default {
verification: this.t('verify_id')
}
},
+ isShowSignatureId () {
+ if ([true, false].includes(this.field.preferences?.with_signature_id)) {
+ return this.field.preferences.with_signature_id
+ } else {
+ return this.withSignatureId
+ }
+ },
alignClasses () {
if (!this.field.preferences) {
return { 'items-center': true }
diff --git a/app/javascript/template_builder/area.vue b/app/javascript/template_builder/area.vue
index 423a6082..9622b503 100644
--- a/app/javascript/template_builder/area.vue
+++ b/app/javascript/template_builder/area.vue
@@ -140,6 +140,7 @@
:background-color="'white'"
:with-required="false"
:with-areas="false"
+ :with-signature-id="withSignatureId"
@click-formula="isShowFormulaModal = true"
@click-font="isShowFontModal = true"
@click-description="isShowDescriptionModal = true"
@@ -347,6 +348,11 @@ export default {
required: false,
default: false
},
+ withSignatureId: {
+ type: Boolean,
+ required: false,
+ default: null
+ },
defaultSubmitters: {
type: Array,
required: false,
diff --git a/app/javascript/template_builder/builder.vue b/app/javascript/template_builder/builder.vue
index 2dca776a..ef0748f6 100644
--- a/app/javascript/template_builder/builder.vue
+++ b/app/javascript/template_builder/builder.vue
@@ -330,6 +330,7 @@
:input-mode="inputMode"
:default-fields="[...defaultRequiredFields, ...defaultFields]"
:allow-draw="!onlyDefinedFields || drawField"
+ :with-signature-id="withSignatureId"
:data-document-uuid="document.uuid"
:default-submitters="defaultSubmitters"
:drag-field-placeholder="fieldsDragFieldRef.value || dragField"
@@ -436,6 +437,7 @@
:default-required-fields="defaultRequiredFields"
:field-types="fieldTypes"
:with-sticky-submitters="withStickySubmitters"
+ :with-signature-id="withSignatureId"
:only-defined-fields="onlyDefinedFields"
:editable="editable"
:show-tour-start-form="showTourStartForm"
@@ -541,6 +543,7 @@ export default {
withPayment: this.withPayment,
isPaymentConnected: this.isPaymentConnected,
withFormula: this.withFormula,
+ withSignatureId: this.withSignatureId,
withConditions: this.withConditions,
isInlineSize: this.isInlineSize,
defaultDrawFieldType: this.defaultDrawFieldType,
@@ -563,6 +566,11 @@ export default {
required: false,
default: false
},
+ withSignatureId: {
+ type: Boolean,
+ required: false,
+ default: null
+ },
backgroundColor: {
type: String,
required: false,
@@ -1068,6 +1076,11 @@ export default {
}
}
+ if (type === 'signature' && [true, false].includes(this.withSignatureId)) {
+ field.preferences ||= {}
+ field.preferences.with_signature_id = this.withSignatureId
+ }
+
this.template.fields.push(field)
this.save()
@@ -1474,6 +1487,11 @@ export default {
field.preferences ||= {}
field.preferences.format ||= this.defaultDateFormat
}
+
+ if (field.type === 'signature' && [true, false].includes(this.withSignatureId)) {
+ field.preferences ||= {}
+ field.preferences.with_signature_id = this.withSignatureId
+ }
}
const fieldArea = {
diff --git a/app/javascript/template_builder/document.vue b/app/javascript/template_builder/document.vue
index 0ca06084..abba5052 100644
--- a/app/javascript/template_builder/document.vue
+++ b/app/javascript/template_builder/document.vue
@@ -10,6 +10,7 @@
:data-page="index"
:areas="areasIndex[index]"
:allow-draw="allowDraw"
+ :with-signature-id="withSignatureId"
:is-drag="isDrag"
:with-field-placeholder="withFieldPlaceholder"
:default-fields="defaultFields"
@@ -66,6 +67,11 @@ export default {
required: false,
default: false
},
+ withSignatureId: {
+ type: Boolean,
+ required: false,
+ default: null
+ },
drawFieldType: {
type: String,
required: false,
diff --git a/app/javascript/template_builder/field.vue b/app/javascript/template_builder/field.vue
index a190d6cb..f9e1c0e9 100644
--- a/app/javascript/template_builder/field.vue
+++ b/app/javascript/template_builder/field.vue
@@ -125,6 +125,7 @@
:field="field"
:default-field="defaultField"
:editable="editable"
+ :with-signature-id="withSignatureId"
:background-color="dropdownBgColor"
@click-formula="isShowFormulaModal = true"
@click-font="isShowFontModal = true"
@@ -302,6 +303,11 @@ export default {
type: Object,
required: true
},
+ withSignatureId: {
+ type: Boolean,
+ required: false,
+ default: null
+ },
withOptions: {
type: Boolean,
required: false,
diff --git a/app/javascript/template_builder/field_settings.vue b/app/javascript/template_builder/field_settings.vue
index e36b63d8..b78c6b4e 100644
--- a/app/javascript/template_builder/field_settings.vue
+++ b/app/javascript/template_builder/field_settings.vue
@@ -320,6 +320,21 @@
{{ t('format') }}
+
+
+
(type) { type == 'signature' && (with_signature_id || field.dig('preferences', 'reason_field_uuid')) }
attachment = submitter.attachments.find { |a| a.uuid == value }