Skip to content
Snippets Groups Projects
Commit 520c4b7f authored by Reiter, Christoph's avatar Reiter, Christoph :snake:
Browse files

placment warning: refactor

Now that we check every file on start we can just compute the value
there and re-use it for future checks.
parent 89fa2dbb
Branches
No related tags found
No related merge requests found
Pipeline #15672 passed
......@@ -44,7 +44,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
this.withSigBlock = false;
this.queuedFilesSignaturePlacements = [];
this.queuedFilesPlacementModes = [];
this.queuedFilesMissingPlacement = new Map();
this.queuedFilesNeedsPlacement = new Map();
this.currentPreviewQueueKey = '';
}
......@@ -90,15 +90,12 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
setInterval(() => { this.handleQueuedFiles(); }, 1000);
}
async _updateMissingPlacementStatus(id) {
async _updateNeedsPlacementStatus(id) {
let file = this.queuedFiles[id];
let isManual = this.queuedFilesPlacementModes[id] === 'manual';
this.queuedFilesMissingPlacement.delete(id);
if (!isManual) {
let sigCount = await getPDFSignatureCount(file);
this.queuedFilesNeedsPlacement.delete(id);
if (sigCount > 0)
this.queuedFilesMissingPlacement.set(id, true);
}
this.queuedFilesNeedsPlacement.set(id, true);
}
/**
......@@ -118,13 +115,10 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
this.signaturePlacementInProgress = false;
// Validate that all PDFs with a signature have manual placement
this.queuedFilesMissingPlacement.clear();
for (const key of Object.keys(this.queuedFiles)) {
await this._updateMissingPlacementStatus(key);
}
const isManual = this.queuedFilesPlacementModes[key] === 'manual';
if (this.queuedFilesNeedsPlacement.get(key) && !isManual) {
// Some have a signature but are not "manual", stop everything
if (this.queuedFilesMissingPlacement.size) {
notify({
"body": i18n.t('error-manual-positioning-missing'),
"type": "danger",
......@@ -133,6 +127,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
this.signingProcessActive = false;
return;
}
}
// take the file off the queue
const key = Object.keys(this.queuedFiles)[0];
......@@ -171,7 +166,6 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
let key = this.currentPreviewQueueKey;
this.queuedFilesSignaturePlacements[key] = placement;
this.queuedFilesPlacementModes[key] = placementMode;
this.queuedFilesMissingPlacement.delete(key);
this.signaturePlacementInProgress = false;
}
......@@ -197,6 +191,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
} else if (this.currentPreviewQueueKey === key) {
this.signaturePlacementInProgress = false;
}
this.requestUpdate();
}
/**
......@@ -245,7 +240,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
async queueFile(file) {
let id = await super.queueFile(file);
await this._updateMissingPlacementStatus(id);
await this._updateNeedsPlacementStatus(id);
this.requestUpdate();
return id;
}
......@@ -378,7 +373,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
clearQueuedFiles() {
this.queuedFilesSignaturePlacements = [];
this.queuedFilesPlacementModes = [];
this.queuedFilesMissingPlacement.clear();
this.queuedFilesNeedsPlacement.clear();
super.clearQueuedFiles();
}
......@@ -654,7 +649,8 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
ids.forEach((id) => {
const file = this.queuedFiles[id];
const placementMissing = this.queuedFilesMissingPlacement.get(id);
const isManual = this.queuedFilesPlacementModes[id] === 'manual';
const placementMissing = this.queuedFilesNeedsPlacement.get(id) && !isManual;
results.push(html`
<div class="file-block">
......
......@@ -45,7 +45,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
this.withSigBlock = false;
this.queuedFilesSignaturePlacements = [];
this.queuedFilesPlacementModes = [];
this.queuedFilesMissingPlacement = new Map();
this.queuedFilesNeedsPlacement = new Map();
this.currentPreviewQueueKey = '';
this._onReceiveIframeMessage = this.onReceiveIframeMessage.bind(this);
......@@ -111,15 +111,12 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
super.disconnectedCallback();
}
async _updateMissingPlacementStatus(id) {
async _updateNeedsPlacementStatus(id) {
let file = this.queuedFiles[id];
let isManual = this.queuedFilesPlacementModes[id] === 'manual';
this.queuedFilesMissingPlacement.delete(id);
if (!isManual) {
let sigCount = await getPDFSignatureCount(file);
this.queuedFilesNeedsPlacement.delete(id);
if (sigCount > 0)
this.queuedFilesMissingPlacement.set(id, true);
}
this.queuedFilesNeedsPlacement.set(id, true);
}
/**
......@@ -139,13 +136,10 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
this.signaturePlacementInProgress = false;
// Validate that all PDFs with a signature have manual placement
this.queuedFilesMissingPlacement.clear();
for (const key of Object.keys(this.queuedFiles)) {
await this._updateMissingPlacementStatus(key);
}
const isManual = this.queuedFilesPlacementModes[key] === 'manual';
if (this.queuedFilesNeedsPlacement.get(key) && !isManual) {
// Some have a signature but are not "manual", stop everything
if (this.queuedFilesMissingPlacement.size) {
notify({
"body": i18n.t('error-manual-positioning-missing'),
"type": "danger",
......@@ -154,6 +148,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
this.signingProcessActive = false;
return;
}
}
// take the file off the queue
const key = Object.keys(this.queuedFiles)[0];
......@@ -190,7 +185,6 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
let key = this.currentPreviewQueueKey;
this.queuedFilesSignaturePlacements[key] = placement;
this.queuedFilesPlacementModes[key] = placementMode;
this.queuedFilesMissingPlacement.delete(key);
this.signaturePlacementInProgress = false;
}
......@@ -216,6 +210,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
} else if (this.currentPreviewQueueKey === key) {
this.signaturePlacementInProgress = false;
}
this.requestUpdate();
}
/**
......@@ -366,7 +361,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
async queueFile(file) {
let id = await super.queueFile(file);
await this._updateMissingPlacementStatus(id);
await this._updateNeedsPlacementStatus(id);
this.requestUpdate();
return id;
}
......@@ -500,7 +495,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
clearQueuedFiles() {
this.queuedFilesSignaturePlacements = [];
this.queuedFilesPlacementModes = [];
this.queuedFilesMissingPlacement.clear();
this.queuedFilesNeedsPlacement.clear();
super.clearQueuedFiles();
}
......@@ -794,7 +789,8 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
ids.forEach((id) => {
const file = this.queuedFiles[id];
const placementMissing = this.queuedFilesMissingPlacement.get(id);
const isManual = this.queuedFilesPlacementModes[id] === 'manual';
const placementMissing = this.queuedFilesNeedsPlacement.get(id) && !isManual;
results.push(html`
<div class="file-block">
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment