can show_roles_and_members

This commit is contained in:
Pascal 2025-01-29 11:15:36 +01:00
parent 24310cf12a
commit edbc966ff9
2 changed files with 61 additions and 1 deletions

View File

@ -356,6 +356,18 @@ body {
padding-left: 4%;
}
.signature-content {
padding: 10px;
background-color: var(--secondary-color);
color: var(--primary-color);
height: 100%;
border-radius: 10px;
margin: 1%;
display: flex;
flex-direction: column;
align-items: center;
}
#close-signature {
cursor: pointer;
align-items: center;

View File

@ -1013,6 +1013,7 @@ class ChatElement extends HTMLElement {
const li = document.createElement('li');
li.className = 'group-list-item';
const oneProcess = process.states[0].commited_in;
const roles = process.states[0].encrypted_pcd.roles;
// Si le processus est dans notre Set, ajouter la classe my-process
if (this.userProcessSet && this.userProcessSet.has(oneProcess)) {
@ -1041,6 +1042,10 @@ class ChatElement extends HTMLElement {
signatureHeader.textContent = `Signature of ${emoji}`;
}
this.openSignature();
//afficher les roles dans chaque processus
console.log('🎯 Roles de signature:', roles);
await this.loadAllRolesAndMembersInSignature(roles);
};
groupList.appendChild(li);
@ -1063,7 +1068,7 @@ class ChatElement extends HTMLElement {
li.appendChild(container);
// afficher les roles dans chaque processus
const roles = process.states[0].encrypted_pcd.roles;
//console.log('🎯 Roles:', roles);
const roleList = document.createElement('ul');
roleList.className = 'role-list';
@ -1128,6 +1133,49 @@ class ChatElement extends HTMLElement {
});
}
private async loadAllRolesAndMembersInSignature(roles: any) {
console.log('🎯 Roles:', roles);
const signatureDescription = this.shadowRoot?.querySelector('.signature-description');
if (signatureDescription) {
signatureDescription.innerHTML = '';
Object.entries(roles).forEach(([roleName, roleData]: [string, any]) => {
const roleItem = document.createElement('li');
roleItem.className = 'role-signature';
const roleContainer = document.createElement('div');
roleContainer.className = 'role-signature-container';
const roleNameSpan = document.createElement('span');
roleNameSpan.className = 'role-signature-name';
roleNameSpan.textContent = roleName;
// Filtrer les membres dupliqués ici, avant de les passer à toggleMembers
const uniqueMembers = new Map<string, any>();
roleData.members?.forEach((member: any) => {
const spAddress = member.sp_addresses?.[0];
if (spAddress && !uniqueMembers.has(spAddress)) {
uniqueMembers.set(spAddress, member);
}
});
const filteredRoleData = {
...roleData,
members: Array.from(uniqueMembers.values())
};
roleContainer.addEventListener('click', async (event) => {
console.log("CLICKED ON ROLE:", roleName);
event.stopPropagation();
await this.toggleMembers(filteredRoleData, roleItem);
});
roleContainer.appendChild(roleNameSpan);
roleItem.appendChild(roleContainer);
signatureDescription.appendChild(roleItem);
});
}
}
//fonction qui ferme la signature
private closeSignature() {
const closeSignature = this.shadowRoot?.querySelector('#close-signature');