diff --git a/app/javascript/submission_form/form.vue b/app/javascript/submission_form/form.vue
index 0a011e25..026ceb1e 100644
--- a/app/javascript/submission_form/form.vue
+++ b/app/javascript/submission_form/form.vue
@@ -221,6 +221,7 @@
:key="currentField.uuid"
v-model="values[currentField.uuid]"
:field="currentField"
+ :previous-value="previousSignatureValue"
:is-direct-upload="isDirectUpload"
:attachments-index="attachmentsIndex"
:submitter-slug="submitterSlug"
@@ -234,6 +235,7 @@
:key="currentField.uuid"
v-model="values[currentField.uuid]"
:field="currentField"
+ :previous-value="previousInitialsValue"
:is-direct-upload="isDirectUpload"
:attachments-index="attachmentsIndex"
:submitter-slug="submitterSlug"
@@ -458,6 +460,16 @@ export default {
submitterSlug () {
return this.submitter.slug
},
+ previousSignatureValue () {
+ const signatureField = [...this.fields].reverse().find((field) => field.type === 'signature' && !!this.values[field.uuid])
+
+ return this.values[signatureField?.uuid]
+ },
+ previousInitialsValue () {
+ const initialsField = [...this.fields].reverse().find((field) => field.type === 'initials' && !!this.values[field.uuid])
+
+ return this.values[initialsField?.uuid]
+ },
isAnonymousChecboxes () {
return this.currentField.type === 'checkbox' && this.currentStepFields.every((e) => !e.name) && this.currentStepFields.length > 4
},
diff --git a/app/javascript/submission_form/initials_step.vue b/app/javascript/submission_form/initials_step.vue
index 218b6f59..04a690f3 100644
--- a/app/javascript/submission_form/initials_step.vue
+++ b/app/javascript/submission_form/initials_step.vue
@@ -20,7 +20,7 @@
({})
},
+ previousValue: {
+ type: String,
+ required: false,
+ default: ''
+ },
modelValue: {
type: String,
required: false,
@@ -120,10 +125,20 @@ export default {
emits: ['attached', 'update:model-value', 'start', 'minimize', 'focus'],
data () {
return {
- isInitialsStarted: false,
+ isInitialsStarted: !!this.previousValue,
+ isUsePreviousValue: true,
isDrawInitials: false
}
},
+ computed: {
+ computedPreviousValue () {
+ if (this.isUsePreviousValue) {
+ return this.previousValue
+ } else {
+ return null
+ }
+ }
+ },
async mounted () {
this.$nextTick(() => {
if (this.$refs.canvas) {
@@ -151,6 +166,9 @@ export default {
methods: {
remove () {
this.$emit('update:model-value', '')
+
+ this.isUsePreviousValue = false
+ this.isInitialsStarted = false
},
clear () {
this.pad.clear()
@@ -192,7 +210,11 @@ export default {
}
},
async submit () {
- if (this.modelValue) {
+ if (this.modelValue || this.computedPreviousValue) {
+ if (this.computedPreviousValue) {
+ this.$emit('update:model-value', this.computedPreviousValue)
+ }
+
return Promise.resolve({})
}
diff --git a/app/javascript/submission_form/signature_step.vue b/app/javascript/submission_form/signature_step.vue
index 5a2b8f2d..7f62807e 100644
--- a/app/javascript/submission_form/signature_step.vue
+++ b/app/javascript/submission_form/signature_step.vue
@@ -9,14 +9,15 @@
class="tooltip"
data-tip="Type text"
>
-
+
-
-
-
+
@@ -123,6 +127,11 @@ export default {
required: false,
default: () => ({})
},
+ previousValue: {
+ type: String,
+ required: false,
+ default: ''
+ },
modelValue: {
type: String,
required: false,
@@ -132,10 +141,20 @@ export default {
emits: ['attached', 'update:model-value', 'start', 'minimize'],
data () {
return {
- isSignatureStarted: false,
+ isSignatureStarted: !!this.previousValue,
+ isUsePreviousValue: true,
isTextSignature: false
}
},
+ computed: {
+ computedPreviousValue () {
+ if (this.isUsePreviousValue) {
+ return this.previousValue
+ } else {
+ return null
+ }
+ }
+ },
async mounted () {
this.$nextTick(() => {
if (this.$refs.canvas) {
@@ -161,6 +180,9 @@ export default {
methods: {
remove () {
this.$emit('update:model-value', '')
+
+ this.isUsePreviousValue = false
+ this.isSignatureStarted = false
},
clear () {
this.pad.clear()
@@ -249,7 +271,11 @@ export default {
}
},
async submit () {
- if (this.modelValue) {
+ if (this.modelValue || this.computedPreviousValue) {
+ if (this.computedPreviousValue) {
+ this.$emit('update:model-value', this.computedPreviousValue)
+ }
+
return Promise.resolve({})
}