Skip to content
Snippets Groups Projects
Unverified Commit 624b451c authored by Bekerle, Patrizio's avatar Bekerle, Patrizio :fire:
Browse files

Integrate vpu-file-sink to download signed documents as zip file for the...

Integrate vpu-file-sink to download signed documents as zip file for the official signing process (#28)
parent 5e4e932a
No related branches found
No related tags found
No related merge requests found
Pipeline #11987 passed with warnings
......@@ -7,12 +7,14 @@ import {PdfPreview} from "./vpu-pdf-preview";
import * as commonUtils from 'vpu-common/utils';
import * as utils from './utils';
import {Button, Icon, MiniSpinner} from 'vpu-common';
import FileSaver from 'file-saver';
import * as commonStyles from 'vpu-common/styles';
import {classMap} from 'lit-html/directives/class-map.js';
import {FileSource} from 'vpu-file-handling';
import JSONLD from "vpu-common/jsonld";
import {TextSwitch} from './textswitch.js';
import nextcloudWebAppPasswordURL from 'consts:nextcloudWebAppPasswordURL';
import nextcloudWebDavURL from 'consts:nextcloudWebDavURL';
import {FileSink} from "../vendor/file-handling/src/file-sink";
const i18n = createI18nInstance();
......@@ -44,6 +46,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(VPUSignatureLitElem
return {
'vpu-icon': Icon,
'vpu-file-source': FileSource,
'vpu-file-sink': FileSink,
'vpu-pdf-preview': PdfPreview,
'vpu-mini-spinner': MiniSpinner,
'vpu-button': Button,
......@@ -253,34 +256,6 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(VPUSignatureLitElem
this.lang = e.detail.lang;
}
/**
* Download signed pdf-files as zip
*/
async zipDownloadClickHandler() {
// see: https://stuk.github.io/jszip/
let JSZip = (await import('jszip/dist/jszip.js')).default;
let zip = new JSZip();
const that = this;
let fileNames = [];
// add all signed pdf-files
this.signedFiles.forEach((file) => {
let fileName = file.name;
// add pseudo-random string on duplicate file name
if (fileNames.indexOf(fileName) !== -1) {
fileName = utils.baseName(fileName) + "-" + Math.random().toString(36).substring(7) + ".pdf";
}
fileNames.push(fileName);
zip.file(fileName, utils.getPDFFileBase64Content(file), {base64: true});
});
let content = await zip.generateAsync({type:"blob"});
FileSaver.saveAs(content, "signed-documents.zip");
that._("#zip-download-button").stop();
}
/**
* Re-Upload all failed files
*/
......@@ -861,6 +836,11 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(VPUSignatureLitElem
<div class="${classMap({hidden: !this.isLoading()})}">
<vpu-mini-spinner></vpu-mini-spinner>
</div>
<vpu-file-sink id="file-sink"
nextcloud-auth-url="${this.showTestNextcloudFilePicker ? nextcloudWebAppPasswordURL : ""}"
nextcloud-web-dav-url="${nextcloudWebDavURL}"
lang="${this.lang}"
></vpu-file-sink>
`;
}
}
......
import {LitElement} from "lit-element";
import {EventBus} from 'vpu-common';
import buildinfo from 'consts:buildinfo';
import * as utils from "./utils";
export default class VPUSignatureLitElement extends LitElement {
constructor() {
......@@ -12,6 +14,8 @@ export default class VPUSignatureLitElement extends LitElement {
// will be set in function update
this.fileSourceUrl = "";
this.showTestNextcloudFilePicker = buildinfo.env === 'local';
}
/**
......@@ -200,4 +204,23 @@ export default class VPUSignatureLitElement extends LitElement {
return organization !== null ? organization.alternateName : "";
}
/**
* Download signed pdf-files as zip
*/
async zipDownloadClickHandler() {
let files = [];
// add all signed pdf-files
this.signedFiles.forEach((file) => {
const arr = utils.convertDataURIToBinary(file.contentUrl);
const binaryFile = new File([arr], file.name, { type: utils.getDataURIContentType(file.contentUrl) });
files.push(binaryFile);
});
const detail = { "files": files, "filename": "signed-documents.zip" };
const event = new CustomEvent("vpu-file-sink-download-compressed-files", { "detail": detail });
this._("#file-sink").dispatchEvent(event);
this._("#zip-download-button").stop();
}
}
Subproject commit 2374986a58762ae47ff115b2a6a863878b20d3cd
Subproject commit 63b49c3a2eeae312b4a2aeec4cc2f7f0ee12b749
Subproject commit 39d039c761f484c6028dea6b2e0c064f04662af4
Subproject commit a2dcbdcac25ab88561aec86d6b7863e27deaddd1
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment