From 391796ac7d061bbb77d5fdf0d71ee992bec812ce Mon Sep 17 00:00:00 2001 From: Alex ORLUC <alex.orluc@maarch.org> Date: Mon, 30 Nov 2020 14:31:13 +0100 Subject: [PATCH] FEAT #12026 TIME 0:35 WIP signature position --- .../maarch-paraph.component.html | 13 +++++++-- .../maarch-paraph.component.scss | 4 +++ .../maarch-paraph/maarch-paraph.component.ts | 8 ++--- .../signature-position.component.ts | 3 ++ ...xternal-signatory-book-action.component.ts | 29 +++++++++++++++---- 5 files changed, 45 insertions(+), 12 deletions(-) diff --git a/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.html b/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.html index 6b2bbe7c914..b9316605ca7 100755 --- a/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.html +++ b/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.html @@ -13,9 +13,16 @@ </div> </div> <div class="col-md-12" style="text-align: right;"> - <button mat-button *ngIf="additionalsInfos.attachments.length === 1" color="primary" type="button" [matMenuTriggerFor]="menu" [disabled]="!isValidParaph()">Gérer les positions de signature...</button> - <mat-menu #menu="matMenu"> - <button mat-menu-item *ngFor="let resource of resourcesToSign" (click)="openSignaturePosition(resource.resId)">{{resource.title}}</button> + <button mat-button *ngIf="additionalsInfos.attachments.length === 1" color="primary" type="button" + [matMenuTriggerFor]="menu" [disabled]="!isValidParaph()">Gérer les positions de signature...</button> + <mat-menu #menu="matMenu" class="docToSignTemplateMenu"> + <button mat-menu-item *ngFor="let resource of resourcesToSign" (click)="openSignaturePosition(resource)" + style="font-size:12px;"> + <mat-icon style="height: auto;" class="fas fa-compress-arrows-alt"></mat-icon> + <span> + <span color="primary">{{resource.chrono}}</span> - {{resource.title}} + </span> + </button> </mat-menu> </div> <div class="col-md-12" *ngIf="additionalsInfos.visaWorkflowError"> diff --git a/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.scss b/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.scss index 25ad97b33cf..fc2db684050 100644 --- a/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.scss +++ b/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.scss @@ -33,4 +33,8 @@ .alert-message { margin: 0 ; +} + +::ng-deep.docToSignTemplateMenu.mat-menu-panel { + max-width: 100% !important; } \ No newline at end of file diff --git a/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.ts b/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.ts index 7813923975c..6e95f8c7c0e 100644 --- a/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.ts +++ b/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/maarch-paraph.component.ts @@ -77,22 +77,22 @@ export class MaarchParaphComponent implements OnInit { return this.externalSignatoryBookDatas; } - openSignaturePosition(resId: number) { + openSignaturePosition(resource: any) { console.log('this.additionalsInfos', this.additionalsInfos); const dialogRef = this.dialog.open(SignaturePositionComponent, { height: '99vh', panelClass: 'maarch-modal', disableClose: true, data: { - resId: resId, + resource: resource, workflow: this.appVisaWorkflow.getWorkflow() } }); dialogRef.afterClosed().pipe( filter((res: any) => !this.functions.empty(res)), tap((res: any) => { - this.signaturePositions[resId] = res; - console.log('result', this.signaturePositions); + this.resourcesToSign.filter((itemToSign: any) => itemToSign.resId === resource.resId && itemToSign.mainDocument === resource.mainDocument)[0]['signaturePositions'] = res; + console.log('result', this.resourcesToSign); }), finalize(() => this.loading = false), catchError((err: any) => { diff --git a/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/signature-position/signature-position.component.ts b/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/signature-position/signature-position.component.ts index a68b9431572..d95a0c4c7ff 100644 --- a/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/signature-position/signature-position.component.ts +++ b/src/frontend/app/actions/send-external-signatory-book-action/maarch-paraph/signature-position/signature-position.component.ts @@ -41,6 +41,9 @@ export class SignaturePositionComponent implements OnInit { ngOnInit(): void { this.currentPage = 1; this.getPageAttachment(); + if (this.data.resource.signaturePositions !== undefined) { + this.signList = this.data.resource.signaturePositions; + } console.log(this.data.workflow); } diff --git a/src/frontend/app/actions/send-external-signatory-book-action/send-external-signatory-book-action.component.ts b/src/frontend/app/actions/send-external-signatory-book-action/send-external-signatory-book-action.component.ts index 8bb7b621c40..56a0515895f 100755 --- a/src/frontend/app/actions/send-external-signatory-book-action/send-external-signatory-book-action.component.ts +++ b/src/frontend/app/actions/send-external-signatory-book-action/send-external-signatory-book-action.component.ts @@ -62,7 +62,9 @@ export class SendExternalSignatoryBookActionComponent implements OnInit { ngOnInit(): void { this.loading = true; - + if (this.data.resource.integrations['inSignatureBook']) { + this.toggleDocToSign(true, this.data.resource, true); + } this.checkExternalSignatureBook(); } @@ -80,18 +82,21 @@ export class SendExternalSignatoryBookActionComponent implements OnInit { this.http.post(`../rest/resourcesList/users/${this.data.userId}/groups/${this.data.groupId}/baskets/${this.data.basketId}/checkExternalSignatoryBook`, { resources: this.data.resIds }).pipe( tap((data: any) => { // FOR TEST - this.resourcesToSign = [ + const test = [ { resId: 103, chrono: 'MAARCH/2020A/2', - title: 'Réponse à signer', + subject: 'Réponse à signer', }, { resId: 104, chrono: 'MAARCH/2020A/4', - title: 'Réponse à signer 2', + subject: 'Réponse à signer 2', } ]; + test.forEach((res: any) => { + this.toggleDocToSign(true, res, false); + }); this.additionalsInfos = data.additionalsInfos; if (this.additionalsInfos.attachments.length > 0) { this.signatoryBookEnabled = data.signatureBookEnabled; @@ -150,6 +155,7 @@ export class SendExternalSignatoryBookActionComponent implements OnInit { this.http.put(`../rest/resourcesList/integrations`, { resources: this.data.resIds, integrations: { [integrationId]: !this.data.resource.integrations[integrationId] } }).pipe( tap(async () => { this.data.resource.integrations[integrationId] = !this.data.resource.integrations[integrationId]; + this.toggleDocToSign(this.data.resource.integrations[integrationId], this.data.resource, true); await this.checkExternalSignatureBook(); this.changeDetectorRef.detectChanges(); }), @@ -160,5 +166,18 @@ export class SendExternalSignatoryBookActionComponent implements OnInit { ).subscribe(); } - + toggleDocToSign(state: boolean, document: any, mainDocument: boolean = true) { + if (state) { + this.resourcesToSign.push( + { + resId: document.resId, + chrono: document.chrono, + title: document.subject, + mainDocument: mainDocument, + }); + } else { + const index = this.resourcesToSign.map((item: any) => `${item.resId}_${item.mainDocument}`).indexOf(`${document.resId}_${mainDocument}`); + this.resourcesToSign.splice(index, 1); + } + } } -- GitLab