with signature id

pull/502/head
Pete Matsyburka 4 months ago
parent 8bf727c43c
commit ec9293bac0

@ -56,11 +56,11 @@
<div <div
v-else-if="field.type === 'signature' && signature" v-else-if="field.type === 'signature' && signature"
class="flex justify-between h-full gap-1 overflow-hidden w-full" class="flex justify-between h-full gap-1 overflow-hidden w-full"
:class="isNarrow && (withSignatureId || field.preferences?.reason_field_uuid) ? 'flex-row' : 'flex-col'" :class="isNarrow && (isShowSignatureId || field.preferences?.reason_field_uuid) ? 'flex-row' : 'flex-col'"
> >
<div <div
class="flex overflow-hidden" class="flex overflow-hidden"
:class="isNarrow && (withSignatureId || field.preferences?.reason_field_uuid) ? 'w-1/2' : 'flex-grow'" :class="isNarrow && (isShowSignatureId || field.preferences?.reason_field_uuid) ? 'w-1/2' : 'flex-grow'"
style="min-height: 50%" style="min-height: 50%"
> >
<img <img
@ -69,7 +69,7 @@
> >
</div> </div>
<div <div
v-if="withSignatureId || field.preferences?.reason_field_uuid" v-if="isShowSignatureId || field.preferences?.reason_field_uuid"
class="text-[1vw] lg:text-[0.55rem] lg:leading-[0.65rem]" class="text-[1vw] lg:text-[0.55rem] lg:leading-[0.65rem]"
:class="isNarrow ? 'w-1/2' : 'w-full'" :class="isNarrow ? 'w-1/2' : 'w-full'"
> >
@ -333,6 +333,13 @@ export default {
verification: this.t('verify_id') 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 () { alignClasses () {
if (!this.field.preferences) { if (!this.field.preferences) {
return { 'items-center': true } return { 'items-center': true }

@ -140,6 +140,7 @@
:background-color="'white'" :background-color="'white'"
:with-required="false" :with-required="false"
:with-areas="false" :with-areas="false"
:with-signature-id="withSignatureId"
@click-formula="isShowFormulaModal = true" @click-formula="isShowFormulaModal = true"
@click-font="isShowFontModal = true" @click-font="isShowFontModal = true"
@click-description="isShowDescriptionModal = true" @click-description="isShowDescriptionModal = true"
@ -347,6 +348,11 @@ export default {
required: false, required: false,
default: false default: false
}, },
withSignatureId: {
type: Boolean,
required: false,
default: null
},
defaultSubmitters: { defaultSubmitters: {
type: Array, type: Array,
required: false, required: false,

@ -330,6 +330,7 @@
:input-mode="inputMode" :input-mode="inputMode"
:default-fields="[...defaultRequiredFields, ...defaultFields]" :default-fields="[...defaultRequiredFields, ...defaultFields]"
:allow-draw="!onlyDefinedFields || drawField" :allow-draw="!onlyDefinedFields || drawField"
:with-signature-id="withSignatureId"
:data-document-uuid="document.uuid" :data-document-uuid="document.uuid"
:default-submitters="defaultSubmitters" :default-submitters="defaultSubmitters"
:drag-field-placeholder="fieldsDragFieldRef.value || dragField" :drag-field-placeholder="fieldsDragFieldRef.value || dragField"
@ -436,6 +437,7 @@
:default-required-fields="defaultRequiredFields" :default-required-fields="defaultRequiredFields"
:field-types="fieldTypes" :field-types="fieldTypes"
:with-sticky-submitters="withStickySubmitters" :with-sticky-submitters="withStickySubmitters"
:with-signature-id="withSignatureId"
:only-defined-fields="onlyDefinedFields" :only-defined-fields="onlyDefinedFields"
:editable="editable" :editable="editable"
:show-tour-start-form="showTourStartForm" :show-tour-start-form="showTourStartForm"
@ -541,6 +543,7 @@ export default {
withPayment: this.withPayment, withPayment: this.withPayment,
isPaymentConnected: this.isPaymentConnected, isPaymentConnected: this.isPaymentConnected,
withFormula: this.withFormula, withFormula: this.withFormula,
withSignatureId: this.withSignatureId,
withConditions: this.withConditions, withConditions: this.withConditions,
isInlineSize: this.isInlineSize, isInlineSize: this.isInlineSize,
defaultDrawFieldType: this.defaultDrawFieldType, defaultDrawFieldType: this.defaultDrawFieldType,
@ -563,6 +566,11 @@ export default {
required: false, required: false,
default: false default: false
}, },
withSignatureId: {
type: Boolean,
required: false,
default: null
},
backgroundColor: { backgroundColor: {
type: String, type: String,
required: false, 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.template.fields.push(field)
this.save() this.save()
@ -1474,6 +1487,11 @@ export default {
field.preferences ||= {} field.preferences ||= {}
field.preferences.format ||= this.defaultDateFormat 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 = { const fieldArea = {

@ -10,6 +10,7 @@
:data-page="index" :data-page="index"
:areas="areasIndex[index]" :areas="areasIndex[index]"
:allow-draw="allowDraw" :allow-draw="allowDraw"
:with-signature-id="withSignatureId"
:is-drag="isDrag" :is-drag="isDrag"
:with-field-placeholder="withFieldPlaceholder" :with-field-placeholder="withFieldPlaceholder"
:default-fields="defaultFields" :default-fields="defaultFields"
@ -66,6 +67,11 @@ export default {
required: false, required: false,
default: false default: false
}, },
withSignatureId: {
type: Boolean,
required: false,
default: null
},
drawFieldType: { drawFieldType: {
type: String, type: String,
required: false, required: false,

@ -125,6 +125,7 @@
:field="field" :field="field"
:default-field="defaultField" :default-field="defaultField"
:editable="editable" :editable="editable"
:with-signature-id="withSignatureId"
:background-color="dropdownBgColor" :background-color="dropdownBgColor"
@click-formula="isShowFormulaModal = true" @click-formula="isShowFormulaModal = true"
@click-font="isShowFontModal = true" @click-font="isShowFontModal = true"
@ -302,6 +303,11 @@ export default {
type: Object, type: Object,
required: true required: true
}, },
withSignatureId: {
type: Boolean,
required: false,
default: null
},
withOptions: { withOptions: {
type: Boolean, type: Boolean,
required: false, required: false,

@ -320,6 +320,21 @@
{{ t('format') }} {{ t('format') }}
</label> </label>
</div> </div>
<li
v-if="[true, false].includes(withSignatureId) && field.type === 'signature'"
@click.stop
>
<label class="cursor-pointer py-1.5">
<input
:checked="field.preferences?.with_signature_id"
type="checkbox"
:disabled="!editable || (defaultField && [true, false].includes(defaultField.required))"
class="toggle toggle-xs"
@change="[field.preferences ||= {}, field.preferences.with_signature_id = $event.target.checked, save()]"
>
<span class="label-text">{{ t('signature_id') }}</span>
</label>
</li>
<li <li
v-if="withRequired && field.type !== 'phone' && field.type !== 'stamp' && field.type !== 'verification'" v-if="withRequired && field.type !== 'phone' && field.type !== 'stamp' && field.type !== 'verification'"
@click.stop @click.stop
@ -525,6 +540,11 @@ export default {
type: Object, type: Object,
required: true required: true
}, },
withSignatureId: {
type: Boolean,
required: false,
default: null
},
backgroundColor: { backgroundColor: {
type: String, type: String,
required: false, required: false,

@ -26,6 +26,7 @@
:field="field" :field="field"
:type-index="fields.filter((f) => f.type === field.type).indexOf(field)" :type-index="fields.filter((f) => f.type === field.type).indexOf(field)"
:editable="editable" :editable="editable"
:with-signature-id="withSignatureId"
:default-field="defaultFieldsIndex[field.name]" :default-field="defaultFieldsIndex[field.name]"
:draggable="editable" :draggable="editable"
@dragstart="[fieldsDragFieldRef.value = field, removeDragOverlay($event), setDragPlaceholder($event)]" @dragstart="[fieldsDragFieldRef.value = field, removeDragOverlay($event), setDragPlaceholder($event)]"
@ -253,6 +254,11 @@ export default {
required: false, required: false,
default: null default: null
}, },
withSignatureId: {
type: Boolean,
required: false,
default: null
},
template: { template: {
type: Object, type: Object,
required: true required: true

@ -1,4 +1,5 @@
const en = { const en = {
signature_id: 'Signature ID',
error_message: 'Error message', error_message: 'Error message',
length: 'Length', length: 'Length',
min: 'Min', min: 'Min',
@ -172,6 +173,7 @@ const en = {
} }
const es = { const es = {
signature_id: 'ID de Firma',
error_message: 'Mensaje de error', error_message: 'Mensaje de error',
length: 'Longitud', length: 'Longitud',
min: 'Mín', min: 'Mín',
@ -345,6 +347,7 @@ const es = {
} }
const it = { const it = {
signature_id: 'ID firma',
error_message: 'Messaggio di errore', error_message: 'Messaggio di errore',
length: 'Lunghezza', length: 'Lunghezza',
min: 'Min', min: 'Min',
@ -518,6 +521,7 @@ const it = {
} }
const pt = { const pt = {
signature_id: 'ID da Assinatura',
error_message: 'Mensagem de erro', error_message: 'Mensagem de erro',
length: 'Comprimento', length: 'Comprimento',
min: 'Mín', min: 'Mín',
@ -691,6 +695,7 @@ const pt = {
} }
const fr = { const fr = {
signature_id: 'ID de signature',
error_message: 'Message d\'erreur', error_message: 'Message d\'erreur',
length: 'Longueur', length: 'Longueur',
min: 'Min', min: 'Min',
@ -864,6 +869,7 @@ const fr = {
} }
const de = { const de = {
signature_id: 'Signatur-ID',
error_message: 'Fehlermeldung', error_message: 'Fehlermeldung',
length: 'Länge', length: 'Länge',
min: 'Min', min: 'Min',

@ -27,6 +27,7 @@
:field="item.field" :field="item.field"
:editable="editable" :editable="editable"
:with-field-placeholder="withFieldPlaceholder" :with-field-placeholder="withFieldPlaceholder"
:with-signature-id="withSignatureId"
:default-field="defaultFieldsIndex[item.field.name]" :default-field="defaultFieldsIndex[item.field.name]"
:default-submitters="defaultSubmitters" :default-submitters="defaultSubmitters"
:max-page="totalPages - 1" :max-page="totalPages - 1"
@ -78,6 +79,11 @@ export default {
required: false, required: false,
default: null default: null
}, },
withSignatureId: {
type: Boolean,
required: false,
default: null
},
areas: { areas: {
type: Array, type: Array,
required: false, required: false,

@ -274,6 +274,10 @@ module Submissions
field_type = 'file' if field_type == 'image' && field_type = 'file' if field_type == 'image' &&
!submitter.attachments.find { |a| a.uuid == value }.image? !submitter.attachments.find { |a| a.uuid == value }.image?
if field_type == 'signature' && field.dig('preferences', 'with_signature_id').in?([true, false])
with_signature_id = field['preferences']['with_signature_id']
end
case field_type case field_type
when ->(type) { type == 'signature' && (with_signature_id || field.dig('preferences', 'reason_field_uuid')) } when ->(type) { type == 'signature' && (with_signature_id || field.dig('preferences', 'reason_field_uuid')) }
attachment = submitter.attachments.find { |a| a.uuid == value } attachment = submitter.attachments.find { |a| a.uuid == value }

Loading…
Cancel
Save