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,
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,

View File

@ -851,38 +851,59 @@ 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 = `
<div class="modal-document">
<div class="modal-content-document">
<div class="details-header">
<h2>New Document Request</h2>
<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>
</div>
@ -1067,7 +1088,7 @@ function submitNewDocument(event: Event) {
}
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 group = groups.find((g: Group) => g.id === processId);