From dc36c75ebe97243dfd73b9e79586b99136e89e8f Mon Sep 17 00:00:00 2001 From: Pascal Date: Mon, 25 Nov 2024 21:04:37 +0100 Subject: [PATCH] button_common_worked --- src/pages/signature/signature.ts | 87 ++++++++++++++++++++++++-------- 1 file changed, 66 insertions(+), 21 deletions(-) diff --git a/src/pages/signature/signature.ts b/src/pages/signature/signature.ts index 2ae5370..aded98c 100755 --- a/src/pages/signature/signature.ts +++ b/src/pages/signature/signature.ts @@ -44,6 +44,10 @@ interface Group { name: string; visibility: string; description: string; + createdAt?: string | null; + deadline?: string | null; + signatures?: DocumentSignature[]; + status?: string; }>; } @@ -533,30 +537,62 @@ function showProcessDetails(group: Group, groupId: number) {

${group.description || 'No description available'}

-

Documents Communs

- ${group.commonDocuments.map(document => ` -
-
-

⚠️ ${document.name}

- ${document.visibility} + ${group.commonDocuments.map(document => { + const totalSignatures = document.signatures?.length || 0; + const signedCount = document.signatures?.filter((sig: DocumentSignature) => sig.signed).length || 0; + const percentage = totalSignatures > 0 ? (signedCount / totalSignatures) * 100 : 0; + const isVierge = !document.createdAt || !document.deadline || !document.signatures?.length; + + return ` +
+
+

${isVierge ? `⚠️ ${document.name}` : document.name}

+ ${document.visibility} +
+
+ ${!isVierge ? ` +

Created on: ${document.createdAt ? new Date(document.createdAt).toLocaleDateString() : 'N/A'}

+

Deadline: ${document.deadline ? new Date(document.deadline).toLocaleDateString() : 'N/A'}

+

Duration: ${calculateDuration(document.createdAt || '', document.deadline || '')} days

+
+
Signatures:
+
+ ${document.signatures?.map((sig: DocumentSignature) => ` +
+ ${sig.member.name} + + ${sig.signed ? + `✓ Signed on ${sig.signedAt ? new Date(sig.signedAt).toLocaleDateString() : 'Unknown date'}` : + '⌛ Pending'} + +
+ `).join('')} +
+
+
+
+

${signedCount} out of ${totalSignatures} signed (${percentage.toFixed(0)}%)

+
+ ` : ` +

Document vierge - En attente de création

+ + `} +
-
-

${document.description}

- -
-
- `).join('')} + `; + }).join('')}
+

Roles and Documents

${group.roles.map(role => `
@@ -1058,7 +1094,6 @@ function submitNewDocument(event: Event) { deadline: deadline, visibility: visibility, status: "pending", - // Ajouter les signatures pour tous les membres du rôle signatures: role.members.map((member: { id: string | number; name: string }) => ({ member: member, signed: false, @@ -1137,6 +1172,11 @@ function submitCommonDocument(event: Event) { return; } + // Récupérer tous les membres de tous les rôles du groupe + const allMembers = group.roles.reduce((acc: any[], role: any) => { + return acc.concat(role.members); + }, []); + const updatedDocument = { id: documentId, name: documentName, @@ -1144,7 +1184,12 @@ function submitCommonDocument(event: Event) { createdAt: new Date().toISOString(), deadline: deadline, visibility: visibility, - status: "pending" + status: "pending", + signatures: allMembers.map((member: { id: string | number; name: string }) => ({ + member: member, + signed: false, + signedAt: null + })) }; // Mettre à jour le document commun