loleaflet/js/toolbar.js          |    3 
 loleaflet/src/control/Signing.js |  207 ++++++++++++++++++++++-----------------
 2 files changed, 123 insertions(+), 87 deletions(-)

New commits:
commit 8ddfbead3ca62146a316f1e7959a0c11b4a65075
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Tue Jan 1 22:00:52 2019 +0100
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Tue Jan 1 23:40:30 2019 +0100

    add functions to get API, iframe and WOPI URL for Vereign
    
    Change-Id: Ib97b696f5a3965c4bdf6ddc79aa4cab196630ce2
    Reviewed-on: https://gerrit.libreoffice.org/65785
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>
    Tested-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/loleaflet/src/control/Signing.js b/loleaflet/src/control/Signing.js
index 7c308c482..5f2bc61b8 100644
--- a/loleaflet/src/control/Signing.js
+++ b/loleaflet/src/control/Signing.js
@@ -29,6 +29,16 @@ function getVereignWopiURL() {
        return vereignURL + '/wopi/';
 }
 
+function getVereignApiURL() {
+       var vereignURL = window.documentSigningURL == null ? '' : 
window.documentSigningURL;
+       return vereignURL + '/api/';
+}
+
+function getVereignIFrameURL() {
+       var vereignURL = window.documentSigningURL == null ? '' : 
window.documentSigningURL;
+       return vereignURL + '/vcl/js/iframe';
+}
+
 function randomName() {
        return Math.random().toString(36).substring(2) + (new 
Date()).getTime().toString(36);
 }
@@ -495,8 +505,8 @@ L.Map.include({
                                        }
                                }
                        },
-                       vereignURL + '/vcl/js/iframe',
-                       vereignURL + '/api/',
+                       getVereignIFrameURL(),
+                       getVereignApiURL(),
                        getVereignWopiURL()
                ).then(function(lib) {
                        library = lib;
commit 4656bdcb38fef68410d4ce62517ccc9732cddba6
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Tue Jan 1 21:58:28 2019 +0100
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Tue Jan 1 23:40:18 2019 +0100

    Combine Sign and Upload to one action
    
    First the document is signed, then when the signature status is
    returned, upload to Vereign.
    
    Change-Id: I02a3a3d401cffa295751483ba85bd45c22c7950f
    Reviewed-on: https://gerrit.libreoffice.org/65784
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>
    Tested-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/loleaflet/js/toolbar.js b/loleaflet/js/toolbar.js
index 0d7335049..7b42ae28a 100644
--- a/loleaflet/js/toolbar.js
+++ b/loleaflet/js/toolbar.js
@@ -1096,8 +1096,7 @@ function initNormalToolbar(toolItems) {
                        items: [
                                {type: 'html',  id: 'left'},
                                {type: 'html', id: 'logo', html: 
'<p><b>Vereign</b></p>'},
-                               {type: 'button',  id: 'sign',  caption: 
_('Sign'), img: '', hint: _('Sign document')},
-                               {type: 'button',  id: 'upload',  caption: 
_('Upload'), img: '', hint: _('Upload document')},
+                               {type: 'button',  id: 'sign-upload',  caption: 
_('Sign & Upload'), img: '', hint: _('Sign and upload document')},
                                {type: 'break' },
                                {type: 'html', id: 'identity-label', html: 
'<b>' + _('Identity:') + '&nbsp;</b>'},
                                {type: 'html', id: 'identity', html: _('N/A')},
diff --git a/loleaflet/src/control/Signing.js b/loleaflet/src/control/Signing.js
index 1450d2615..7c308c482 100644
--- a/loleaflet/src/control/Signing.js
+++ b/loleaflet/src/control/Signing.js
@@ -14,6 +14,8 @@ var oldtoolbarSize = null;
 var _map = null;
 var currentDocumentSigningStatus = 'N/A'
 
+var awaitForDocumentStatusToUpload = false;
+
 function isSuccess(result) {
        return result.code == '200';
 }
@@ -22,6 +24,22 @@ function haveIdentity() {
        return identity != null;
 }
 
+function getVereignWopiURL() {
+       var vereignURL = window.documentSigningURL == null ? '' : 
window.documentSigningURL;
+       return vereignURL + '/wopi/';
+}
+
+function randomName() {
+       return Math.random().toString(36).substring(2) + (new 
Date()).getTime().toString(36);
+}
+
+function getCurrentDocumentFilename(documentType) {
+       var filename = _map['wopi'].BaseFileName;
+       if (!filename)
+               filename = randomName() + '.' + documentType;
+       return filename;
+}
+
 function updateIndentity() {
        if (library) {
                if (identity) {
@@ -121,8 +139,7 @@ function adjustUIState() {
                if (currentPassport) {
                        w2ui['document-signing-bar'].show('passport');
                        w2ui['document-signing-bar'].show('current-passport');
-                       w2ui['document-signing-bar'].show('sign');
-                       w2ui['document-signing-bar'].show('upload');
+                       w2ui['document-signing-bar'].show('sign-upload');
                }
                else {
                        w2ui['document-signing-bar'].show('passport');
@@ -265,8 +282,86 @@ function vereignRestoreIdentity() {
        });
 }
 
-function randomName() {
-       return Math.random().toString(36).substring(2) + (new 
Date()).getTime().toString(36);
+function vereignSign() {
+       if (library == null) {
+               return;
+       }
+       if (currentPassport == null) {
+               return;
+       }
+       
library.getOneTimeCertificateByPassport(currentPassport.uuid).then(function(result)
 {
+               if (isSuccess(result)) {
+                       var otp = result.data;
+                       var blob = new Blob(['signdocument\n', 
JSON.stringify(otp)]);
+                       _map._socket.sendMessage(blob);
+                       awaitForDocumentStatusToUpload = true;
+                       checkCurrentDocument();
+               }
+       });
+}
+
+function vereignUploadForType(uploadDocType) {
+       var vereignWopiUrl = getVereignWopiURL();
+       if (vereignWopiUrl == null || vereignWopiUrl == '')
+               return;
+
+       var documentType = null;
+
+       switch (uploadDocType) {
+       case 'ODT':
+               documentType = 'odt';
+               break;
+       case 'DOCX':
+               documentType = 'docx';
+               break;
+       case 'PDF':
+               documentType = 'pdf';
+               break;
+       }
+
+       if (documentType == null)
+               return;
+
+       var filename = getCurrentDocumentFilename(documentType);
+
+       library.getPassports(filename).then(function(result) {
+               if (!isSuccess(result)) {
+                       return;
+               }
+               var resultArray = result.data;
+               for (var i = 0; i < resultArray.length; i++) {
+                       if (currentPassport.uuid == 
resultArray[i].PassportUUID) {
+                               var jsonRequest = {
+                                       filename: filename,
+                                       wopiUrl: vereignWopiUrl + 'files/',
+                                       token: resultArray[i].AccessToken,
+                                       type: documentType
+                               };
+                               var blob = new Blob(['uploadsigneddocument\n', 
JSON.stringify(jsonRequest)]);
+                               _map._socket.sendMessage(blob);
+                               // Let the user know that we're done.
+                               _map.fire('infobar', {
+                                       msg: _('Document uploaded.') + '\n\n' + 
filename,
+                                       action: null,
+                                       actionLabel: null
+                               });
+                       }
+               }
+       });
+}
+
+function vereignUploadDialog() {
+       if (library == null) {
+               return;
+       }
+
+       vex.dialog.open({
+               message: _('Select document type to upload'),
+               input: _('Type:') + '<select name="selection"><option 
value="ODT">ODT</option><option value="DOCX">DOCX</option><option 
value="PDF">PDF</option></select>',
+               callback: function(data) {
+                       vereignUploadForType(data.selection);
+               }
+       });
 }
 
 L.Map.include({
@@ -293,79 +388,8 @@ L.Map.include({
                $('#document-signing-bar').hide();
                adjustUIState();
        },
-       signDocument: function() {
-               if (library) {
-                       var map = this;
-                       if (currentPassport) {
-                               
library.getOneTimeCertificateByPassport(currentPassport.uuid).then(function(result)
 {
-                                       if (isSuccess(result)) {
-                                               var otp = result.data;
-                                               var blob = new 
Blob(['signdocument\n', JSON.stringify(otp)]);
-                                               map._socket.sendMessage(blob);
-                                               checkCurrentDocument();
-                                       }
-                               });
-                       }
-               }
-       },
-       uploadToVereign: function() {
-               if (library == null) {
-                       return;
-               }
-
-               var map = this;
-
-               vex.dialog.open({
-                       message: _('Select document type to upload'),
-                       input: _('Type:') + '<select name="selection"><option 
value="ODT">ODT</option><option value="DOCX">DOCX</option><option 
value="PDF">PDF</option></select>',
-                       callback: function(data) {
-                               var documentType = null;
-
-                               switch (data.selection) {
-                               case 'ODT':
-                                       documentType = 'odt';
-                                       break;
-                               case 'DOCX':
-                                       documentType = 'docx';
-                                       break;
-                               case 'PDF':
-                                       documentType = 'pdf';
-                                       break;
-                               }
-
-                               if (documentType == null)
-                                       return;
-
-                               var filename = map['wopi'].BaseFileName;
-                               if (!filename)
-                                       filename = randomName() + '.' + 
documentType;
-
-                               
library.getPassports(filename).then(function(result) {
-                                       var vereignURL = 
window.documentSigningURL == null ? '' : window.documentSigningURL;
-                                       if (isSuccess(result)) {
-                                               var resultArray = result.data;
-                                               for (var i = 0; i < 
resultArray.length; i++) {
-                                                       if 
(currentPassport.uuid == resultArray[i].PassportUUID) {
-                                                               var jsonRequest 
= {
-                                                                       
filename: filename,
-                                                                       
wopiUrl: vereignURL + '/wopi/files',
-                                                                       token: 
resultArray[i].AccessToken,
-                                                                       type: 
documentType
-                                                               };
-                                                               var blob = new 
Blob(['uploadsigneddocument\n', JSON.stringify(jsonRequest)]);
-                                                               
map._socket.sendMessage(blob);
-                                                               // Let the user 
know that we're done.
-                                                               
map.fire('infobar', {
-                                                                       msg: 
_('Document uploaded.') + '\n\n' + filename,
-                                                                       action: 
null,
-                                                                       
actionLabel: null
-                                                               });
-                                                       }
-                                               }
-                                       }
-                               });
-                       }
-               });
+       signAndUploadDocument: function() {
+               vereignSign();
        },
        signingLogout: function() {
                if (library) {
@@ -473,7 +497,7 @@ L.Map.include({
                        },
                        vereignURL + '/vcl/js/iframe',
                        vereignURL + '/api/',
-                       vereignURL + '/wopi/'
+                       getVereignWopiURL()
                ).then(function(lib) {
                        library = lib;
                        adjustUIState();
@@ -499,11 +523,8 @@ L.Map.include({
                else if (id === 'logout') {
                        this.signingLogout();
                }
-               else if (id === 'sign') {
-                       this.signDocument();
-               }
-               else if (id === 'upload') {
-                       this.uploadToVereign();
+               else if (id === 'sign-upload') {
+                       this.signAndUploadDocument();
                }
                else if (id.startsWith('passport:')) {
                        this.setCurrentPassport(item.value, item.text);
@@ -549,5 +570,11 @@ L.Map.include({
                }
 
                adjustUIState();
+
+               if (awaitForDocumentStatusToUpload) {
+                       awaitForDocumentStatusToUpload = false;
+                       vereignUploadDialog();
+               }
+               awaitForDocumentStatusToUpload = false;
        }
 });
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to