From 7338bfd19c3f7c21332836460cad9d06c86dcda3 Mon Sep 17 00:00:00 2001
From: Patrizio Bekerle <patrizio@bekerle.com>
Date: Fri, 27 Mar 2020 14:53:05 +0100
Subject: [PATCH] Add basic upload sign (#1)

---
 src/vpu-signature-pdf-upload.js | 29 ++++++++++++++++++++++++++---
 1 file changed, 26 insertions(+), 3 deletions(-)

diff --git a/src/vpu-signature-pdf-upload.js b/src/vpu-signature-pdf-upload.js
index 0f463f5..89736e0 100644
--- a/src/vpu-signature-pdf-upload.js
+++ b/src/vpu-signature-pdf-upload.js
@@ -22,6 +22,7 @@ class SignaturePdfUpload extends VPUSignatureLitElement {
         this.signedFilesCount = 0;
         this.errorFiles = [];
         this.errorFilesCount = 0;
+        this.uploadInProgress = false;
     }
 
     static get properties() {
@@ -32,6 +33,7 @@ class SignaturePdfUpload extends VPUSignatureLitElement {
             signedFilesCount: { type: Number, attribute: false },
             errorFiles: { type: Array, attribute: false },
             errorFilesCount: { type: Number, attribute: false },
+            uploadInProgress: { type: Boolean, attribute: false },
         };
     }
 
@@ -40,15 +42,24 @@ class SignaturePdfUpload extends VPUSignatureLitElement {
 
         this.updateComplete.then(()=>{
             const fileUpload = this._("#file-upload");
-            fileUpload.addEventListener('vpu-fileupload-file-finished', this.onUploadFinished.bind(this));
-            // fileUpload.addEventListener('vpu-fileupload-all-finished', this.onUploadFinished.bind(this));
+            fileUpload.addEventListener('vpu-fileupload-all-start', this.onAllUploadStarted.bind(this));
+            fileUpload.addEventListener('vpu-fileupload-file-finished', this.onFileUploadFinished.bind(this));
+            fileUpload.addEventListener('vpu-fileupload-all-finished', this.onAllUploadFinished.bind(this));
         });
     }
 
     /**
      * @param ev
      */
-    onUploadFinished(ev) {
+    onAllUploadStarted(ev) {
+        console.log("Start upload process!");
+        this.uploadInProgress = true;
+    }
+
+    /**
+     * @param ev
+     */
+    onFileUploadFinished(ev) {
         if (ev.detail.status !== 201) {
             console.log(ev.detail);
             // this doesn't seem to trigger an update() execution
@@ -63,6 +74,14 @@ class SignaturePdfUpload extends VPUSignatureLitElement {
         }
     }
 
+    /**
+     * @param ev
+     */
+    onAllUploadFinished(ev) {
+        console.log("Finished upload process!");
+        this.uploadInProgress = false;
+    }
+
     update(changedProperties) {
         changedProperties.forEach((oldValue, propName) => {
             if (propName === "lang") {
@@ -217,6 +236,10 @@ class SignaturePdfUpload extends VPUSignatureLitElement {
                             text="${i18n.t('pdf-upload.upload-area-text')}" button-label="${i18n.t('pdf-upload.upload-button-label')}"></vpu-fileupload>
                     </div>
                 </div>
+                <div class="field notification is-info ${classMap({hidden: !this.uploadInProgress})}">
+                    <vpu-mini-spinner></vpu-mini-spinner>
+                    Upload in progress...
+                </div>
                 <div class="files-block field ${classMap({hidden: this.signedFilesCount === 0})}">
                     <label class="label">${i18n.t('pdf-upload.signed-files-label')}</label>
                     <div class="control">
-- 
GitLab