From b750f43d8d5eafed6810fce1478f47feb89321d4 Mon Sep 17 00:00:00 2001
From: Hamza HRAMCHI <hamza.hramchi@xelians.fr>
Date: Mon, 27 Dec 2021 16:48:58 +0100
Subject: [PATCH] FIX #15943 TIME 1 fix signature positions if workflow
 contains note roles

---
 src/frontend/app/indexation/indexation.component.ts           | 3 +--
 .../signature-position/signature-position.component.html      | 3 ++-
 .../signature-position/signature-position.component.scss      | 4 ++++
 .../signature-position/signature-position.component.ts        | 4 +++-
 4 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/frontend/app/indexation/indexation.component.ts b/src/frontend/app/indexation/indexation.component.ts
index 19c6175c02..b9623e4795 100644
--- a/src/frontend/app/indexation/indexation.component.ts
+++ b/src/frontend/app/indexation/indexation.component.ts
@@ -363,12 +363,11 @@ export class IndexationComponent implements OnInit {
                     this.appVisaWorkflow.visaWorkflow[indexUser].signaturePositions = [];
                 }
             });
-            const currentWorkflow: any[] = this.appVisaWorkflow.getCurrentWorkflow().filter((user: any) => user.role !== 'note');
             const modal = await this.modalController.create({
                 component: SignaturePositionComponent,
                 cssClass: 'custom-alert-fullscreen',
                 componentProps: {
-                    'workflow': currentWorkflow,
+                    'workflow': this.appVisaWorkflow.getCurrentWorkflow(),
                     'resource': this.filesToUpload[index],
                     'pdfContent': 'data:application/pdf;base64,' + this.filesToUpload[index].content,
                 }
diff --git a/src/frontend/app/indexation/signature-position/signature-position.component.html b/src/frontend/app/indexation/signature-position/signature-position.component.html
index 181ff2e1ca..decd4d0304 100644
--- a/src/frontend/app/indexation/signature-position/signature-position.component.html
+++ b/src/frontend/app/indexation/signature-position/signature-position.component.html
@@ -5,7 +5,8 @@
     <ion-toolbar color="primary">
         <ion-segment color="warning" scrollable [value]="currentUser" (ionChange)="selectUser($event.detail.value)"
             style="justify-content: center;">
-            <ion-segment-button *ngFor="let user of workflow;let i=index" [value]="i" layout="icon-start">
+            <ion-segment-button *ngFor="let user of workflow;let i=index" [value]="i" layout="icon-start"
+                [disabled]="user.role === 'note'">
                 <ion-label>
                     <h2>{{user.userDisplay}}</h2>
                     <p class="chip-item-content">
diff --git a/src/frontend/app/indexation/signature-position/signature-position.component.scss b/src/frontend/app/indexation/signature-position/signature-position.component.scss
index fd2879167a..359f54efc3 100644
--- a/src/frontend/app/indexation/signature-position/signature-position.component.scss
+++ b/src/frontend/app/indexation/signature-position/signature-position.component.scss
@@ -155,3 +155,7 @@ img {
 .hide {
   display: none;
 }
+
+::ng-deep.segment-button-disabled {
+    cursor: not-allowed;
+}
diff --git a/src/frontend/app/indexation/signature-position/signature-position.component.ts b/src/frontend/app/indexation/signature-position/signature-position.component.ts
index 99ae68c804..8e3bf242a2 100644
--- a/src/frontend/app/indexation/signature-position/signature-position.component.ts
+++ b/src/frontend/app/indexation/signature-position/signature-position.component.ts
@@ -11,7 +11,7 @@ import { SignaturesContentService } from '../../service/signatures.service';
 })
 export class SignaturePositionComponent implements OnInit {
 
-    @Input() workflow: any = [];
+    @Input() workflow: any[] = [];
     @Input() resource: any = [];
     @Input() pdfContent: any = null;
 
@@ -76,6 +76,8 @@ export class SignaturePositionComponent implements OnInit {
     async onPagesLoaded(ev: any) {
         this.pages = Array.from({ length: ev.pagesCount }).map((_, i) => i + 1);
         this.changePage(1);
+        const isSign: any = ((user: any) => user.role !== 'note');
+        this.goToSignUserPage(this.workflow.findIndex(isSign), this.currentPage);
     }
 
     public async exportAsImage(): Promise<void> {
-- 
GitLab