can_see_process
This commit is contained in:
parent
7455b07fbc
commit
65bf38f8bd
@ -37,6 +37,11 @@ export function initChat() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
class ChatElement extends HTMLElement {
|
class ChatElement extends HTMLElement {
|
||||||
|
static get observedAttributes() {
|
||||||
|
return ['process-id'];
|
||||||
|
}
|
||||||
|
|
||||||
|
private processId: string | null = null;
|
||||||
private selectedMemberId: string | null = null;
|
private selectedMemberId: string | null = null;
|
||||||
private messagesMock: any[] = [];
|
private messagesMock: any[] = [];
|
||||||
private dom: Node;
|
private dom: Node;
|
||||||
@ -58,6 +63,10 @@ class ChatElement extends HTMLElement {
|
|||||||
this.messagesMock = messageStore.getMessages();
|
this.messagesMock = messageStore.getMessages();
|
||||||
this.dom = getCorrectDOM('signature-element');
|
this.dom = getCorrectDOM('signature-element');
|
||||||
|
|
||||||
|
// Récupérer le processId depuis l'attribut du composant
|
||||||
|
this.processId = this.getAttribute('process-id');
|
||||||
|
console.log('🔍 Constructor - Process ID from element:', this.processId);
|
||||||
|
|
||||||
this.shadowRoot!.innerHTML = `
|
this.shadowRoot!.innerHTML = `
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@ -115,6 +124,14 @@ class ChatElement extends HTMLElement {
|
|||||||
}) as EventListener);
|
}) as EventListener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
attributeChangedCallback(name: string, oldValue: string, newValue: string) {
|
||||||
|
console.log(`🔄 Attribute ${name} changed from ${oldValue} to ${newValue}`);
|
||||||
|
if (name === 'process-id' && newValue) {
|
||||||
|
console.log('🔍 Loading chat with new process ID:', newValue);
|
||||||
|
this.loadGroupList(newValue);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private initMessageEvents() {
|
private initMessageEvents() {
|
||||||
// Pour le bouton Send
|
// Pour le bouton Send
|
||||||
const sendButton = this.shadowRoot?.querySelector('#send-button');
|
const sendButton = this.shadowRoot?.querySelector('#send-button');
|
||||||
@ -390,53 +407,34 @@ class ChatElement extends HTMLElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private loadGroupList(): void {
|
private loadGroupList(processId: string): void {
|
||||||
|
console.log('🔍 Loading group list with processId:', processId);
|
||||||
const groupList = this.shadowRoot?.querySelector('#group-list');
|
const groupList = this.shadowRoot?.querySelector('#group-list');
|
||||||
if (!groupList) return;
|
if (!groupList) {
|
||||||
|
console.error('❌ Group list element not found');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
groupsMock.forEach(group => {
|
// Vider la liste existante
|
||||||
const li = document.createElement('li');
|
groupList.innerHTML = '';
|
||||||
li.className = 'group-list-item';
|
|
||||||
|
|
||||||
// Create a flex container for the name and the icon
|
|
||||||
const container = document.createElement('div');
|
|
||||||
container.className = 'group-item-container';
|
|
||||||
|
|
||||||
// Span for the process name
|
|
||||||
const nameSpan = document.createElement('span');
|
|
||||||
nameSpan.textContent = group.name;
|
|
||||||
nameSpan.className = 'process-name';
|
|
||||||
|
|
||||||
// Add click event to show roles
|
|
||||||
nameSpan.addEventListener('click', (event) => {
|
|
||||||
event.stopPropagation();
|
|
||||||
this.toggleRoles(group, li);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Assemble the elements
|
|
||||||
container.appendChild(nameSpan);
|
|
||||||
li.appendChild(container);
|
|
||||||
|
|
||||||
// Create and append the role list container
|
// Créer l'élément pour le processus de messaging
|
||||||
const roleList = document.createElement('ul');
|
const li = document.createElement('li');
|
||||||
roleList.className = 'role-list';
|
li.className = 'group-list-item';
|
||||||
roleList.style.display = 'none';
|
li.setAttribute('data-process-id', processId);
|
||||||
|
|
||||||
// Add roles for this process
|
const container = document.createElement('div');
|
||||||
group.roles.forEach(role => {
|
container.className = 'group-item-container';
|
||||||
const roleItem = document.createElement('li');
|
|
||||||
roleItem.className = 'role-item';
|
const nameSpan = document.createElement('span');
|
||||||
roleItem.textContent = role.name;
|
nameSpan.textContent = `Messaging Process ${processId}`;
|
||||||
roleItem.onclick = (event) => {
|
nameSpan.className = 'process-name';
|
||||||
event.stopPropagation();
|
|
||||||
this.toggleMembers(role, roleItem);
|
container.appendChild(nameSpan);
|
||||||
};
|
li.appendChild(container);
|
||||||
roleList.appendChild(roleItem);
|
groupList.appendChild(li);
|
||||||
});
|
|
||||||
|
console.log('✅ Group list item added for process:', processId);
|
||||||
li.appendChild(roleList);
|
|
||||||
groupList.appendChild(li);
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -555,8 +553,13 @@ class ChatElement extends HTMLElement {
|
|||||||
connectedCallback() {
|
connectedCallback() {
|
||||||
this.updateCurrentUserDisplay();
|
this.updateCurrentUserDisplay();
|
||||||
this.initializeEventListeners();
|
this.initializeEventListeners();
|
||||||
this.loadGroupList();
|
|
||||||
|
|
||||||
|
if (this.processId) {
|
||||||
|
console.log('🔍 Loading chat with process ID:', this.processId);
|
||||||
|
this.loadGroupList(this.processId);
|
||||||
|
} else {
|
||||||
|
console.error('❌ No process ID found in element attributes');
|
||||||
|
}
|
||||||
// Si un membre est sélectionné par défaut, charger ses messages
|
// Si un membre est sélectionné par défaut, charger ses messages
|
||||||
if (this.selectedMemberId) {
|
if (this.selectedMemberId) {
|
||||||
this.loadMemberChat(this.selectedMemberId);
|
this.loadMemberChat(this.selectedMemberId);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user