role_document_view_ok
This commit is contained in:
parent
b3873e7fca
commit
a9d70fc654
@ -1221,9 +1221,7 @@ body {
|
|||||||
background: white;
|
background: white;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
width: 90%;
|
width: 97%;
|
||||||
max-width: 600px;
|
|
||||||
max-height: 90vh;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.modal-header {
|
.modal-header {
|
||||||
|
@ -782,20 +782,33 @@ function showRoleDocuments(role: {
|
|||||||
const detailsArea = document.createElement('div');
|
const detailsArea = document.createElement('div');
|
||||||
detailsArea.id = `role-documents-${displayRole.name}`;
|
detailsArea.id = `role-documents-${displayRole.name}`;
|
||||||
detailsArea.className = 'process-details';
|
detailsArea.className = 'process-details';
|
||||||
|
// Filtrer les documents accessibles
|
||||||
|
const accessibleDocuments = (displayRole.documents || []).filter((doc: {
|
||||||
|
name: string;
|
||||||
|
visibility: string;
|
||||||
|
createdAt: string | null | undefined;
|
||||||
|
deadline: string | null | undefined;
|
||||||
|
signatures: DocumentSignature[];
|
||||||
|
id: number;
|
||||||
|
description?: string;
|
||||||
|
status?: string;
|
||||||
|
}) =>
|
||||||
|
canUserAccessDocument(doc, displayRole.name, currentUser.processRoles?.[0]?.role || '')
|
||||||
|
);
|
||||||
|
|
||||||
detailsArea.innerHTML = `
|
detailsArea.innerHTML = `
|
||||||
<div class="process-details-header">
|
<div class="modal-content-document">
|
||||||
<h2>${displayRole.name} Documents</h2>
|
<div class="details-header">
|
||||||
<div class="header-buttons">
|
<h2>${displayRole.name} Documents</h2>
|
||||||
<button class="close-btn" onclick="closeRoleDocuments('${displayRole.name}')">✕</button>
|
<div class="header-buttons">
|
||||||
|
<button class="close-btn" onclick="closeRoleDocuments('${displayRole.name}')">✕</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="process-details-content">
|
||||||
<div class="process-details-content">
|
<div class="details-section">
|
||||||
<div class="details-section">
|
<h3>Documents</h3>
|
||||||
<h3>Documents</h3>
|
<div class="documents-grid">
|
||||||
<div class="documents-grid">
|
${accessibleDocuments.map((document: {
|
||||||
${(displayRole.documents || []).length > 0 ?
|
|
||||||
(displayRole.documents || []).map((document: {
|
|
||||||
name: string;
|
name: string;
|
||||||
visibility: string;
|
visibility: string;
|
||||||
createdAt: string | null | undefined;
|
createdAt: string | null | undefined;
|
||||||
@ -844,21 +857,22 @@ function showRoleDocuments(role: {
|
|||||||
</div>
|
</div>
|
||||||
` : `
|
` : `
|
||||||
<p>Document vierge - En attente de création</p>
|
<p>Document vierge - En attente de création</p>
|
||||||
<button class="new-request-btn" onclick="newRequest({
|
${canUserAccessDocument(document, displayRole.name, currentUser.processRoles?.[0]?.role || '') ? `
|
||||||
processId: ${group.id},
|
<button class="new-request-btn" onclick="newRequest({
|
||||||
processName: '${group.name}',
|
processId: ${group.id},
|
||||||
roleId: ${role.id},
|
processName: '${group.name}',
|
||||||
roleName: '${role.name}',
|
roleId: ${role.id},
|
||||||
documentId: ${document.id},
|
roleName: '${role.name}',
|
||||||
documentName: '${document.name}'
|
documentId: ${document.id},
|
||||||
})">New request</button>
|
documentName: '${document.name}'
|
||||||
|
})">New request</button>
|
||||||
|
` : ''}
|
||||||
`}
|
`}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
`;
|
`;
|
||||||
}).join('')
|
}).join('')}
|
||||||
: '<p class="no-documents">No documents available for this role</p>'
|
</div>
|
||||||
}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -1585,7 +1599,7 @@ function signDocument(documentId: number, processId: number, isCommonDocument: b
|
|||||||
${Array.isArray(targetDoc.files) && targetDoc.files.length > 0 ?
|
${Array.isArray(targetDoc.files) && targetDoc.files.length > 0 ?
|
||||||
targetDoc.files.map((file: any) => `
|
targetDoc.files.map((file: any) => `
|
||||||
<div class="file-item">
|
<div class="file-item">
|
||||||
<span class="file-icon"><EFBFBD><EFBFBD><EFBFBD></span>
|
<span class="file-icon"></span>
|
||||||
<span class="file-name">${file.name}</span>
|
<span class="file-name">${file.name}</span>
|
||||||
<a href="${file.url}" class="download-link" download="${file.name}">
|
<a href="${file.url}" class="download-link" download="${file.name}">
|
||||||
<span class="download-icon">⬇</span>
|
<span class="download-icon">⬇</span>
|
||||||
@ -1755,10 +1769,10 @@ if (typeof window !== 'undefined') {
|
|||||||
|
|
||||||
// Ajouter cette fonction helper
|
// Ajouter cette fonction helper
|
||||||
function canUserAccessDocument(document: any, roleId: string, currentUserRole: string): boolean {
|
function canUserAccessDocument(document: any, roleId: string, currentUserRole: string): boolean {
|
||||||
// Si l'utilisateur a le même rôle, il peut voir tous les documents
|
// Si l'utilisateur a le même rôle, il peut voir et modifier tous les documents
|
||||||
if (roleId === currentUserRole) {
|
if (roleId === currentUserRole) {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
// Sinon, il ne peut voir que les documents publics
|
// Pour les autres rôles, il ne peut que voir les documents publics
|
||||||
return document.visibility === 'public';
|
return document.visibility === 'public';
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user