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