From ec9293bac078bf0db75e46ab3370906790104268 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Thu, 17 Jul 2025 10:54:44 +0300 Subject: [PATCH] with signature id --- app/javascript/submission_form/area.vue | 13 +++++++++--- app/javascript/template_builder/area.vue | 6 ++++++ app/javascript/template_builder/builder.vue | 18 +++++++++++++++++ app/javascript/template_builder/document.vue | 6 ++++++ app/javascript/template_builder/field.vue | 6 ++++++ .../template_builder/field_settings.vue | 20 +++++++++++++++++++ app/javascript/template_builder/fields.vue | 6 ++++++ app/javascript/template_builder/i18n.js | 6 ++++++ app/javascript/template_builder/page.vue | 6 ++++++ .../generate_result_attachments.rb | 4 ++++ 10 files changed, 88 insertions(+), 3 deletions(-) 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 }