request_doc_roles_with_localstorage_ok
This commit is contained in:
parent
36f37a8549
commit
391fe2e290
@ -994,11 +994,11 @@ function submitNewDocument(event: Event) {
|
|||||||
|
|
||||||
const form = document.getElementById('newDocumentForm') as HTMLFormElement;
|
const form = document.getElementById('newDocumentForm') as HTMLFormElement;
|
||||||
if (!form) {
|
if (!form) {
|
||||||
showAlert('Form not found');
|
showAlert('Formulaire non trouvé');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get form values
|
// Récupération des valeurs du formulaire
|
||||||
const processId = Number((form.querySelector('#processId') as HTMLInputElement)?.value);
|
const processId = Number((form.querySelector('#processId') as HTMLInputElement)?.value);
|
||||||
const documentId = Number((form.querySelector('#documentId') as HTMLInputElement)?.value);
|
const documentId = Number((form.querySelector('#documentId') as HTMLInputElement)?.value);
|
||||||
const documentName = (form.querySelector('#documentName') as HTMLInputElement)?.value?.trim();
|
const documentName = (form.querySelector('#documentName') as HTMLInputElement)?.value?.trim();
|
||||||
@ -1008,64 +1008,83 @@ function submitNewDocument(event: Event) {
|
|||||||
|
|
||||||
// Validation
|
// Validation
|
||||||
if (!documentName || !description || !deadline) {
|
if (!documentName || !description || !deadline) {
|
||||||
showAlert('Please fill in all required fields');
|
showAlert('Veuillez remplir tous les champs obligatoires');
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Mettre à jour à la fois le mock local et le localStorage
|
try {
|
||||||
let groups = JSON.parse(localStorage.getItem('groups') || JSON.stringify(groupsMock));
|
// Récupérer les données actuelles
|
||||||
const group = groups.find((g: Group) => g.id === processId);
|
const groups = JSON.parse(localStorage.getItem('groups') || JSON.stringify(groupsMock));
|
||||||
|
const group = groups.find((g: Group) => g.id === processId);
|
||||||
if (!group) {
|
|
||||||
showAlert('Process not found');
|
if (!group) {
|
||||||
return;
|
showAlert('Processus non trouvé');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const role = group.roles.find((r: any) => {
|
||||||
|
return r.documents?.some((d: any) => d.id === documentId);
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!role) {
|
||||||
|
showAlert('Rôle non trouvé');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Créer le nouveau document avec les signatures des membres du rôle
|
||||||
|
const updatedDocument = {
|
||||||
|
id: documentId,
|
||||||
|
name: documentName,
|
||||||
|
description: description,
|
||||||
|
createdAt: new Date().toISOString(),
|
||||||
|
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,
|
||||||
|
signedAt: null
|
||||||
|
}))
|
||||||
|
};
|
||||||
|
|
||||||
|
// Mettre à jour le document dans le rôle
|
||||||
|
const documentIndex = role.documents.findIndex((d: any) => d.id === documentId);
|
||||||
|
if (documentIndex !== -1) {
|
||||||
|
role.documents[documentIndex] = updatedDocument;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Sauvegarder dans le localStorage
|
||||||
|
localStorage.setItem('groups', JSON.stringify(groups));
|
||||||
|
|
||||||
|
// Mettre à jour également groupsMock pour la cohérence
|
||||||
|
const mockGroup = groupsMock.find(g => g.id === processId);
|
||||||
|
if (mockGroup) {
|
||||||
|
const mockRole = mockGroup.roles.find(r => r.name === role.name);
|
||||||
|
if (mockRole && mockRole.documents) {
|
||||||
|
const mockDocIndex = mockRole.documents.findIndex(d => d.id === documentId);
|
||||||
|
if (mockDocIndex !== -1) {
|
||||||
|
mockRole.documents[mockDocIndex] = {
|
||||||
|
...updatedDocument,
|
||||||
|
status: undefined
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fermer le modal
|
||||||
|
if (event.target instanceof HTMLElement) {
|
||||||
|
closeModal(event.target);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Recharger la vue des documents avec les données mises à jour
|
||||||
|
showRoleDocuments(role, group);
|
||||||
|
showAlert('Document mis à jour avec succès!');
|
||||||
|
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Erreur lors de la sauvegarde:', error);
|
||||||
|
showAlert('Une erreur est survenue lors de la sauvegarde');
|
||||||
}
|
}
|
||||||
|
|
||||||
// Trouver le rôle qui contient le document
|
|
||||||
const role = group.roles.find((r: any) => {
|
|
||||||
return r.documents?.some((d: any) => d.id === documentId);
|
|
||||||
});
|
|
||||||
|
|
||||||
if (!role) {
|
|
||||||
showAlert('Role not found');
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const documentIndex = role.documents.findIndex((d: any) => d.id === documentId);
|
|
||||||
|
|
||||||
const updatedDocument = {
|
|
||||||
id: documentId,
|
|
||||||
name: documentName,
|
|
||||||
description: description,
|
|
||||||
createdAt: new Date().toISOString(),
|
|
||||||
deadline: deadline,
|
|
||||||
visibility: visibility,
|
|
||||||
status: "pending",
|
|
||||||
signatures: role.members.map((member: { id: string | number; name: string }) => ({
|
|
||||||
member: member,
|
|
||||||
signed: false,
|
|
||||||
signedAt: null
|
|
||||||
}))
|
|
||||||
};
|
|
||||||
|
|
||||||
// Mettre à jour le document dans le rôle
|
|
||||||
if (documentIndex !== -1) {
|
|
||||||
role.documents[documentIndex] = updatedDocument;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Mettre à jour le localStorage et le mock global
|
|
||||||
localStorage.setItem('groups', JSON.stringify(groups));
|
|
||||||
Object.assign(groupsMock, groups);
|
|
||||||
|
|
||||||
// Fermer le modal
|
|
||||||
if (event.target instanceof HTMLElement) {
|
|
||||||
closeModal(event.target);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Recharger la vue des documents
|
|
||||||
showRoleDocuments(role, group);
|
|
||||||
|
|
||||||
showAlert('Document updated successfully!');
|
|
||||||
}
|
}
|
||||||
|
|
||||||
window.submitNewDocument = submitNewDocument;
|
window.submitNewDocument = submitNewDocument;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user