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 6b2bbe7c914c2b92a719a5d13dd210c3acfa3a7e..b9316605ca7ca54e449ea6f637cc8373b59ad9ee 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 25ad97b33cf45c9e76d8b5af912551fd227af1a7..fc2db684050b25766dd3b5832e5d8b98081aed44 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 7813923975c5eba60721100ed1b1b1056cc9df48..6e95f8c7c0e6283dc73ebd864253697ecb9d8be5 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 a68b9431572ab157dd1d99f9aa040bd6578be29c..d95a0c4c7ffdbe1ee68e2c4cbabc963939a65c53 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 8bb7b621c402136b510f86d96e7f0f7ba8af7b54..56a0515895f744397027e4f65a275e7a22cbfc8b 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); + } + } }