From 705548c16248514ed38a7c81d5ad5f5fe8d17567 Mon Sep 17 00:00:00 2001 From: "florian.azizian" <florian.azizian@maarch.org> Date: Mon, 28 Dec 2020 16:53:50 +0100 Subject: [PATCH] FEAT #15116 TIME 2:30 set height for date --- .../controllers/DocumentController.php | 21 +++++---- src/app/workflow/models/WorkflowModel.php | 3 +- .../app/document/document.component.ts | 1 - src/frontend/app/service/actions.service.ts | 1 + .../app/signatures/signatures.component.ts | 43 +++++++++++-------- 5 files changed, 41 insertions(+), 28 deletions(-) diff --git a/src/app/document/controllers/DocumentController.php b/src/app/document/controllers/DocumentController.php index 67c15d1827..1ce9d06621 100755 --- a/src/app/document/controllers/DocumentController.php +++ b/src/app/document/controllers/DocumentController.php @@ -343,7 +343,7 @@ class DocumentController foreach ($workflow['datePositions'] as $keyDP => $datePosition) { if (empty($datePosition['positionX']) || empty($datePosition['positionY']) || empty($datePosition['page'])) { return $response->withStatus(400)->withJson(['errors' => "Body workflow[{$key}][datePositions][{$keyDP}] is wrong formatted"]); - } elseif (empty($datePosition['color']) || empty($datePosition['font']) || empty($datePosition['format']) || empty($datePosition['size'])) { + } elseif (empty($datePosition['color']) || empty($datePosition['font']) || empty($datePosition['format']) || empty($datePosition['width'])) { return $response->withStatus(400)->withJson(['errors' => "Body workflow[{$key}][datePositions][{$keyDP}] is wrong formatted"]); } } @@ -452,7 +452,8 @@ class DocumentController 'mode' => $workflow['mode'], 'order' => $key + 1, 'signatureMode' => $workflow['signatureMode'], - 'signaturePositions' => empty($workflow['signaturePositions']) ? '[]' : json_encode($workflow['signaturePositions']) + 'signaturePositions' => empty($workflow['signaturePositions']) ? '[]' : json_encode($workflow['signaturePositions']), + 'datePositions' => empty($workflow['datePositions']) ? '[]' : json_encode($workflow['datePositions']) ]); } @@ -1100,13 +1101,15 @@ class DocumentController $affectedPages[] = $i; } if ($signature['positionX'] == 0 && $signature['positionY'] == 0) { - $signWidth = $size['width']; - $signPosX = 0; - $signPosY = 0; + $signWidth = $size['width']; + $signPosX = 0; + $signPosY = 0; + $signHeight = null; } else { - $signWidth = ($signature['width'] * $size['width']) / 100; - $signPosX = ($signature['positionX'] * $size['width']) / 100; - $signPosY = ($signature['positionY'] * $size['height']) / 100; + $signWidth = ($signature['width'] * $size['width']) / 100; + $signHeight = ($signature['height'] * $size['height']) / 100; + $signPosX = ($signature['positionX'] * $size['width']) / 100; + $signPosY = ($signature['positionY'] * $size['height']) / 100; } if ($signature['type'] == 'SVG') { $image = str_replace('data:image/svg+xml;base64,', '', $signature['encodedImage']); @@ -1117,7 +1120,7 @@ class DocumentController $imageTmpPath = $tmpPath . $GLOBALS['id'] . '_' . rand() . '_writing.svg'; file_put_contents($imageTmpPath, $image); - $pdf->ImageSVG($imageTmpPath, $signPosX, $signPosY, $signWidth); + $pdf->ImageSVG($imageTmpPath, $signPosX, $signPosY, $signWidth, $signHeight); } else { $image = base64_decode($signature['encodedImage']); if ($image === false) { diff --git a/src/app/workflow/models/WorkflowModel.php b/src/app/workflow/models/WorkflowModel.php index 487e54af39..ca6121ad01 100755 --- a/src/app/workflow/models/WorkflowModel.php +++ b/src/app/workflow/models/WorkflowModel.php @@ -86,7 +86,7 @@ class WorkflowModel { ValidatorModel::notEmpty($args, ['userId', 'mainDocumentId', 'mode', 'order', 'signatureMode']); ValidatorModel::intVal($args, ['userId', 'mainDocumentId', 'order']); - ValidatorModel::stringType($args, ['mode', 'signatureMode', 'signaturePositions']); + ValidatorModel::stringType($args, ['mode', 'signatureMode', 'signaturePositions', 'datePositions']); DatabaseModel::insert([ 'table' => 'workflows', @@ -96,6 +96,7 @@ class WorkflowModel 'mode' => $args['mode'], 'signature_mode' => $args['signatureMode'], 'signature_positions' => $args['signaturePositions'], + 'date_positions' => $args['datePositions'], '"order"' => $args['order'] ] ]); diff --git a/src/frontend/app/document/document.component.ts b/src/frontend/app/document/document.component.ts index 134578861f..c72a6dcab2 100755 --- a/src/frontend/app/document/document.component.ts +++ b/src/frontend/app/document/document.component.ts @@ -337,7 +337,6 @@ export class DocumentComponent implements OnInit { item.userSignatureModes.unshift('visa'); return { ...item, - 'datePositions': [], 'role': item.mode === 'visa' ? 'visa' : item.signatureMode, 'modes': item.userSignatureModes }; diff --git a/src/frontend/app/service/actions.service.ts b/src/frontend/app/service/actions.service.ts index ed204e74e1..163414e0ca 100644 --- a/src/frontend/app/service/actions.service.ts +++ b/src/frontend/app/service/actions.service.ts @@ -88,6 +88,7 @@ export class ActionsService { { 'encodedImage': date.content.replace('data:image/svg+xml;base64,', ''), 'width': date.width, + 'height': date.height, 'positionX': date.positionX, 'positionY': date.positionY, 'type': 'SVG', diff --git a/src/frontend/app/signatures/signatures.component.ts b/src/frontend/app/signatures/signatures.component.ts index 62a18402b6..26fa8f4195 100755 --- a/src/frontend/app/signatures/signatures.component.ts +++ b/src/frontend/app/signatures/signatures.component.ts @@ -129,10 +129,10 @@ export class SignaturesComponent implements OnInit { this.storeSignature(signature, this.signaturesService.currentPage); } - signPosOtherPage.forEach((postion: any) => { - signature.positionX = postion.positionX; - signature.positionY = postion.positionY; - this.storeSignature(signature, postion.page); + signPosOtherPage.forEach((position: any) => { + signature.positionX = position.positionX; + signature.positionY = position.positionY; + this.storeSignature(signature, position.page); }); if (this.currentWorflow.signaturePositions.length === 1) { @@ -152,16 +152,17 @@ export class SignaturesComponent implements OnInit { } addNewDate() { - const dateBlock: any = { - width: (130 * 100) / this.signaturesService.workingAreaWidth, - height: (30 * 100) / this.signaturesService.workingAreaHeight, - positionX: 0, - positionY: 0 - }; const datePosCurrentPage = this.currentWorflow.datePositions.filter((item: any) => item.page === this.signaturesService.currentPage); const datePosOtherPage = this.currentWorflow.datePositions.filter((item: any) => item.page !== this.signaturesService.currentPage); - if (!this.datePosMode || (datePosCurrentPage.length === 0 && datePosOtherPage.length === 0)) { + if (datePosCurrentPage.length === 0 && datePosOtherPage.length === 0) { + let dateBlock: any = { + width: (130 * 100) / this.signaturesService.workingAreaWidth, + height: (30 * 100) / this.signaturesService.workingAreaHeight, + positionX: 0, + positionY: 0 + }; + dateBlock.positionX = 130; dateBlock.positionY = 30; this.storeDate(dateBlock, this.signaturesService.currentPage); @@ -173,15 +174,23 @@ export class SignaturesComponent implements OnInit { this.modalController.dismiss('success'); } else { if (datePosCurrentPage.length > 0) { - dateBlock.positionX = datePosCurrentPage[0].positionX; - dateBlock.positionY = datePosCurrentPage[0].positionY; + let dateBlock: any = { + width: datePosCurrentPage[0].width, + height: datePosCurrentPage[0].height, + positionX: datePosCurrentPage[0].positionX, + positionY: datePosCurrentPage[0].positionY + }; this.storeDate(dateBlock, this.signaturesService.currentPage); } - datePosOtherPage.forEach((postion: any) => { - dateBlock.positionX = postion.positionX; - dateBlock.positionY = postion.positionY; - this.storeDate(dateBlock, postion.page); + datePosOtherPage.forEach((position: any) => { + let dateBlock: any = { + width: position.width, + height: position.height, + positionX: position.positionX, + positionY: position.positionY + }; + this.storeDate(dateBlock, position.page); }); if (this.currentWorflow.signaturePositions.length === 1) { -- GitLab