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
No related branches found
No related tags found
No related merge requests found
Pipeline #15672 passed
...@@ -44,7 +44,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem ...@@ -44,7 +44,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
this.withSigBlock = false; this.withSigBlock = false;
this.queuedFilesSignaturePlacements = []; this.queuedFilesSignaturePlacements = [];
this.queuedFilesPlacementModes = []; this.queuedFilesPlacementModes = [];
this.queuedFilesMissingPlacement = new Map(); this.queuedFilesNeedsPlacement = new Map();
this.currentPreviewQueueKey = ''; this.currentPreviewQueueKey = '';
} }
...@@ -90,15 +90,12 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem ...@@ -90,15 +90,12 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
setInterval(() => { this.handleQueuedFiles(); }, 1000); setInterval(() => { this.handleQueuedFiles(); }, 1000);
} }
async _updateMissingPlacementStatus(id) { async _updateNeedsPlacementStatus(id) {
let file = this.queuedFiles[id]; let file = this.queuedFiles[id];
let isManual = this.queuedFilesPlacementModes[id] === 'manual';
this.queuedFilesMissingPlacement.delete(id);
if (!isManual) {
let sigCount = await getPDFSignatureCount(file); let sigCount = await getPDFSignatureCount(file);
this.queuedFilesNeedsPlacement.delete(id);
if (sigCount > 0) if (sigCount > 0)
this.queuedFilesMissingPlacement.set(id, true); this.queuedFilesNeedsPlacement.set(id, true);
}
} }
/** /**
...@@ -118,13 +115,10 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem ...@@ -118,13 +115,10 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
this.signaturePlacementInProgress = false; this.signaturePlacementInProgress = false;
// Validate that all PDFs with a signature have manual placement // Validate that all PDFs with a signature have manual placement
this.queuedFilesMissingPlacement.clear();
for (const key of Object.keys(this.queuedFiles)) { 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 // Some have a signature but are not "manual", stop everything
if (this.queuedFilesMissingPlacement.size) {
notify({ notify({
"body": i18n.t('error-manual-positioning-missing'), "body": i18n.t('error-manual-positioning-missing'),
"type": "danger", "type": "danger",
...@@ -133,6 +127,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem ...@@ -133,6 +127,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
this.signingProcessActive = false; this.signingProcessActive = false;
return; return;
} }
}
// take the file off the queue // take the file off the queue
const key = Object.keys(this.queuedFiles)[0]; const key = Object.keys(this.queuedFiles)[0];
...@@ -171,7 +166,6 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem ...@@ -171,7 +166,6 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
let key = this.currentPreviewQueueKey; let key = this.currentPreviewQueueKey;
this.queuedFilesSignaturePlacements[key] = placement; this.queuedFilesSignaturePlacements[key] = placement;
this.queuedFilesPlacementModes[key] = placementMode; this.queuedFilesPlacementModes[key] = placementMode;
this.queuedFilesMissingPlacement.delete(key);
this.signaturePlacementInProgress = false; this.signaturePlacementInProgress = false;
} }
...@@ -197,6 +191,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem ...@@ -197,6 +191,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
} else if (this.currentPreviewQueueKey === key) { } else if (this.currentPreviewQueueKey === key) {
this.signaturePlacementInProgress = false; this.signaturePlacementInProgress = false;
} }
this.requestUpdate();
} }
/** /**
...@@ -245,7 +240,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem ...@@ -245,7 +240,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
async queueFile(file) { async queueFile(file) {
let id = await super.queueFile(file); let id = await super.queueFile(file);
await this._updateMissingPlacementStatus(id); await this._updateNeedsPlacementStatus(id);
this.requestUpdate(); this.requestUpdate();
return id; return id;
} }
...@@ -378,7 +373,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem ...@@ -378,7 +373,7 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
clearQueuedFiles() { clearQueuedFiles() {
this.queuedFilesSignaturePlacements = []; this.queuedFilesSignaturePlacements = [];
this.queuedFilesPlacementModes = []; this.queuedFilesPlacementModes = [];
this.queuedFilesMissingPlacement.clear(); this.queuedFilesNeedsPlacement.clear();
super.clearQueuedFiles(); super.clearQueuedFiles();
} }
...@@ -654,7 +649,8 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem ...@@ -654,7 +649,8 @@ class OfficialSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitElem
ids.forEach((id) => { ids.forEach((id) => {
const file = this.queuedFiles[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` results.push(html`
<div class="file-block"> <div class="file-block">
......
...@@ -45,7 +45,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle ...@@ -45,7 +45,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
this.withSigBlock = false; this.withSigBlock = false;
this.queuedFilesSignaturePlacements = []; this.queuedFilesSignaturePlacements = [];
this.queuedFilesPlacementModes = []; this.queuedFilesPlacementModes = [];
this.queuedFilesMissingPlacement = new Map(); this.queuedFilesNeedsPlacement = new Map();
this.currentPreviewQueueKey = ''; this.currentPreviewQueueKey = '';
this._onReceiveIframeMessage = this.onReceiveIframeMessage.bind(this); this._onReceiveIframeMessage = this.onReceiveIframeMessage.bind(this);
...@@ -111,15 +111,12 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle ...@@ -111,15 +111,12 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
super.disconnectedCallback(); super.disconnectedCallback();
} }
async _updateMissingPlacementStatus(id) { async _updateNeedsPlacementStatus(id) {
let file = this.queuedFiles[id]; let file = this.queuedFiles[id];
let isManual = this.queuedFilesPlacementModes[id] === 'manual';
this.queuedFilesMissingPlacement.delete(id);
if (!isManual) {
let sigCount = await getPDFSignatureCount(file); let sigCount = await getPDFSignatureCount(file);
this.queuedFilesNeedsPlacement.delete(id);
if (sigCount > 0) if (sigCount > 0)
this.queuedFilesMissingPlacement.set(id, true); this.queuedFilesNeedsPlacement.set(id, true);
}
} }
/** /**
...@@ -139,13 +136,10 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle ...@@ -139,13 +136,10 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
this.signaturePlacementInProgress = false; this.signaturePlacementInProgress = false;
// Validate that all PDFs with a signature have manual placement // Validate that all PDFs with a signature have manual placement
this.queuedFilesMissingPlacement.clear();
for (const key of Object.keys(this.queuedFiles)) { 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 // Some have a signature but are not "manual", stop everything
if (this.queuedFilesMissingPlacement.size) {
notify({ notify({
"body": i18n.t('error-manual-positioning-missing'), "body": i18n.t('error-manual-positioning-missing'),
"type": "danger", "type": "danger",
...@@ -154,6 +148,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle ...@@ -154,6 +148,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
this.signingProcessActive = false; this.signingProcessActive = false;
return; return;
} }
}
// take the file off the queue // take the file off the queue
const key = Object.keys(this.queuedFiles)[0]; const key = Object.keys(this.queuedFiles)[0];
...@@ -190,7 +185,6 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle ...@@ -190,7 +185,6 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
let key = this.currentPreviewQueueKey; let key = this.currentPreviewQueueKey;
this.queuedFilesSignaturePlacements[key] = placement; this.queuedFilesSignaturePlacements[key] = placement;
this.queuedFilesPlacementModes[key] = placementMode; this.queuedFilesPlacementModes[key] = placementMode;
this.queuedFilesMissingPlacement.delete(key);
this.signaturePlacementInProgress = false; this.signaturePlacementInProgress = false;
} }
...@@ -216,6 +210,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle ...@@ -216,6 +210,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
} else if (this.currentPreviewQueueKey === key) { } else if (this.currentPreviewQueueKey === key) {
this.signaturePlacementInProgress = false; this.signaturePlacementInProgress = false;
} }
this.requestUpdate();
} }
/** /**
...@@ -366,7 +361,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle ...@@ -366,7 +361,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
async queueFile(file) { async queueFile(file) {
let id = await super.queueFile(file); let id = await super.queueFile(file);
await this._updateMissingPlacementStatus(id); await this._updateNeedsPlacementStatus(id);
this.requestUpdate(); this.requestUpdate();
return id; return id;
} }
...@@ -500,7 +495,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle ...@@ -500,7 +495,7 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
clearQueuedFiles() { clearQueuedFiles() {
this.queuedFilesSignaturePlacements = []; this.queuedFilesSignaturePlacements = [];
this.queuedFilesPlacementModes = []; this.queuedFilesPlacementModes = [];
this.queuedFilesMissingPlacement.clear(); this.queuedFilesNeedsPlacement.clear();
super.clearQueuedFiles(); super.clearQueuedFiles();
} }
...@@ -794,7 +789,8 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle ...@@ -794,7 +789,8 @@ class QualifiedSignaturePdfUpload extends ScopedElementsMixin(DBPSignatureLitEle
ids.forEach((id) => { ids.forEach((id) => {
const file = this.queuedFiles[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` results.push(html`
<div class="file-block"> <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