doc_common_working

This commit is contained in:
Pascal 2024-11-25 21:29:39 +01:00
parent dc36c75ebe
commit 3acb110931
2 changed files with 48 additions and 27 deletions

View File

@ -72,8 +72,8 @@ export const groupsMock = [
}, },
{ {
id: 104, id: 104,
name: "Plan d'urgence", name: "Urgency plan A",
description: "Document vierge pour le plan d'urgence", description: "Document vierge pour le plan d'urgence A",
visibility: VISIBILITY_LEVELS.PRIVATE, visibility: VISIBILITY_LEVELS.PRIVATE,
status: DOCUMENT_STATUS.DRAFT, status: DOCUMENT_STATUS.DRAFT,
createdAt: null, createdAt: null,
@ -82,8 +82,8 @@ export const groupsMock = [
}, },
{ {
id: 105, id: 105,
name: "Plan d'urgence", name: "Urgency plan B",
description: "Document vierge pour le plan d'urgence", description: "Document vierge pour le plan d'urgence B",
visibility: VISIBILITY_LEVELS.PRIVATE, visibility: VISIBILITY_LEVELS.PRIVATE,
status: DOCUMENT_STATUS.DRAFT, status: DOCUMENT_STATUS.DRAFT,
createdAt: null, createdAt: null,
@ -92,8 +92,8 @@ export const groupsMock = [
}, },
{ {
id: 106, id: 106,
name: "Plan d'urgence", name: "Urgency plan C",
description: "Document vierge pour le plan d'urgence", description: "Document vierge pour le plan d'urgence C",
visibility: VISIBILITY_LEVELS.PRIVATE, visibility: VISIBILITY_LEVELS.PRIVATE,
status: DOCUMENT_STATUS.DRAFT, status: DOCUMENT_STATUS.DRAFT,
createdAt: null, createdAt: null,

View File

@ -851,30 +851,51 @@ window.removeMember = removeMember;
// Fonction pour gérer la nouvelle demande // Fonction pour gérer la nouvelle demande
function newRequest(params: RequestParams) { 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'); const modal = document.createElement('div');
modal.className = 'modal-overlay'; 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); const process = groupsMock.find(g => g.id === params.processId);
if (!process) {
// Déterminer les membres à afficher selon le contexte console.error('Processus non trouvé:', params.processId);
let membersToDisplay = []; showAlert('Processus non trouvé');
if (params.roleName === 'common') { return;
// 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
})) || [];
} }
// 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 = ` modal.innerHTML = `
<div class="modal-document"> <div class="modal-document">
@ -882,7 +903,7 @@ function newRequest(params: RequestParams) {
<div class="details-header"> <div class="details-header">
<h2>New Document Request</h2> <h2>New Document Request</h2>
<span class="document-context"> <span class="document-context">
Process: ${params.processName} | Role: ${params.roleName} | Document: ${params.documentName} Process: ${params.processName} | Role: ${params.roleName} | Document: ${params.documentName.replace(/'/g, "&#39;")}
</span> </span>
</div> </div>
@ -1067,7 +1088,7 @@ function submitNewDocument(event: Event) {
} }
try { try {
// Récupérer les données actuelles // R<EFBFBD><EFBFBD>cupérer les données actuelles
const groups = JSON.parse(localStorage.getItem('groups') || JSON.stringify(groupsMock)); const groups = JSON.parse(localStorage.getItem('groups') || JSON.stringify(groupsMock));
const group = groups.find((g: Group) => g.id === processId); const group = groups.find((g: Group) => g.id === processId);