From 9472a6b5b0a2e7787589dc0c28bdc7cc922738c0 Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Mon, 19 Aug 2024 21:35:26 +0300 Subject: [PATCH] allow to upload initial --- .../submission_form/initials_step.vue | 38 +++++++++++++++++-- .../submission_form/signature_step.vue | 8 ++-- 2 files changed, 40 insertions(+), 6 deletions(-) diff --git a/app/javascript/submission_form/initials_step.vue b/app/javascript/submission_form/initials_step.vue index 50db77cc..3a084216 100644 --- a/app/javascript/submission_form/initials_step.vue +++ b/app/javascript/submission_form/initials_step.vue @@ -50,6 +50,26 @@ + + + import { cropCanvasAndExportToPNG } from './crop_canvas' -import { IconReload, IconTextSize, IconSignature, IconArrowsDiagonalMinimize2 } from '@tabler/icons-vue' +import { IconReload, IconTextSize, IconUpload, IconSignature, IconArrowsDiagonalMinimize2 } from '@tabler/icons-vue' import SignaturePad from 'signature_pad' import AppearsOn from './appears_on' import MarkdownContent from './markdown_content' +import SignatureStep from './signature_step' const scale = 3 export default { name: 'InitialsStep', components: { + IconUpload, AppearsOn, IconReload, IconTextSize, @@ -178,7 +200,8 @@ export default { return { isInitialsStarted: !!this.previousValue, isUsePreviousValue: true, - isDrawInitials: false + isDrawInitials: false, + uploadImageInputKey: Math.random().toString() } }, computed: { @@ -229,6 +252,15 @@ export default { this.intersectionObserver?.disconnect() }, methods: { + drawOnCanvas: SignatureStep.methods.drawOnCanvas, + drawImage (event) { + this.remove() + this.isInitialsStarted = true + + this.drawOnCanvas(this.$refs.canvas) + + this.uploadImageInputKey = Math.random().toString() + }, remove () { this.$emit('update:model-value', '') diff --git a/app/javascript/submission_form/signature_step.vue b/app/javascript/submission_form/signature_step.vue index 0988ee10..d02eaaa1 100644 --- a/app/javascript/submission_form/signature_step.vue +++ b/app/javascript/submission_form/signature_step.vue @@ -569,6 +569,11 @@ export default { this.remove() this.isSignatureStarted = true + this.drawOnCanvas(this.$refs.canvas) + + this.uploadImageInputKey = Math.random().toString() + }, + drawOnCanvas (canvas) { const file = event.target.files[0] if (file && file.type.match('image.*')) { @@ -580,7 +585,6 @@ export default { img.src = event.target.result img.onload = () => { - const canvas = this.$refs.canvas const context = canvas.getContext('2d') const aspectRatio = img.width / img.height @@ -615,8 +619,6 @@ export default { } reader.readAsDataURL(file) - - this.uploadImageInputKey = Math.random().toString() } }, maybeSetSignedUuid (signedUuid) {