diff --git a/src/mocks/mock-signature/groupsMock.js b/src/mocks/mock-signature/groupsMock.js index b988ace..1d2bf77 100755 --- a/src/mocks/mock-signature/groupsMock.js +++ b/src/mocks/mock-signature/groupsMock.js @@ -72,8 +72,8 @@ export const groupsMock = [ }, { id: 104, - name: "Plan d'urgence", - description: "Document vierge pour le plan d'urgence", + name: "Urgency plan A", + description: "Document vierge pour le plan d'urgence A", visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, @@ -82,8 +82,8 @@ export const groupsMock = [ }, { id: 105, - name: "Plan d'urgence", - description: "Document vierge pour le plan d'urgence", + name: "Urgency plan B", + description: "Document vierge pour le plan d'urgence B", visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, @@ -92,8 +92,8 @@ export const groupsMock = [ }, { id: 106, - name: "Plan d'urgence", - description: "Document vierge pour le plan d'urgence", + name: "Urgency plan C", + description: "Document vierge pour le plan d'urgence C", visibility: VISIBILITY_LEVELS.PRIVATE, status: DOCUMENT_STATUS.DRAFT, createdAt: null, diff --git a/src/pages/signature/signature.ts b/src/pages/signature/signature.ts index aded98c..0486dd3 100755 --- a/src/pages/signature/signature.ts +++ b/src/pages/signature/signature.ts @@ -851,30 +851,51 @@ window.removeMember = removeMember; // Fonction pour gérer la nouvelle demande function newRequest(params: RequestParams) { + // Ajout de validation des paramètres + if (!params || !params.processId) { + console.error('Paramètres invalides:', params); + showAlert('Paramètres invalides pour la nouvelle demande'); + return; + } + const modal = document.createElement('div'); modal.className = 'modal-overlay'; - // Récupérer le processus + // Récupérer le processus avec une vérification const process = groupsMock.find(g => g.id === params.processId); - - // Déterminer les membres à afficher selon le contexte - let membersToDisplay = []; - if (params.roleName === 'common') { - // Vue "process detail" - tous les membres du processus - membersToDisplay = process?.roles.reduce((members: any[], role) => { - return members.concat(role.members.map(member => ({ - ...member, - roleName: role.name - }))); - }, []) || []; - } else { - // Vue "role detail" - uniquement les membres du rôle spécifique - const role = process?.roles.find(r => r.name === params.roleName); - membersToDisplay = role?.members.map(member => ({ - ...member, - roleName: params.roleName - })) || []; + if (!process) { + console.error('Processus non trouvé:', params.processId); + showAlert('Processus non trouvé'); + return; } + + // Déterminer les membres avec une vérification supplémentaire + let membersToDisplay = []; + try { + if (params.roleName === 'common') { + membersToDisplay = process.roles.reduce((members: any[], role) => { + return members.concat(role.members.map(member => ({ + ...member, + roleName: role.name + }))); + }, []); + } else { + const role = process.roles.find(r => r.name === params.roleName); + if (!role) { + throw new Error(`Rôle ${params.roleName} non trouvé`); + } + membersToDisplay = role.members.map(member => ({ + ...member, + roleName: params.roleName + })); + } + } catch (error) { + console.error('Erreur lors de la récupération des membres:', error); + showAlert('Erreur lors de la récupération des membres'); + return; + } + + modal.innerHTML = `