From ce25ecc237019f155f96bb63f0b82ee0908fd27f Mon Sep 17 00:00:00 2001 From: Pascal Date: Fri, 17 Jan 2025 16:33:00 +0100 Subject: [PATCH] load_allgroup_ok --- src/pages/chat/chat.ts | 166 +++++------------------------------------ 1 file changed, 19 insertions(+), 147 deletions(-) diff --git a/src/pages/chat/chat.ts b/src/pages/chat/chat.ts index 19fb879..1a714e5 100755 --- a/src/pages/chat/chat.ts +++ b/src/pages/chat/chat.ts @@ -121,10 +121,6 @@ class ChatElement extends HTMLElement { }); this.initMessageEvents(); - document.addEventListener('newMessagingProcess', ((event: CustomEvent) => { - console.log('🎯 Received newMessagingProcess event:', event.detail); - this.addNewMessagingProcess(event.detail.processId, event.detail.processName); - }) as EventListener); } attributeChangedCallback(name: string, oldValue: string, newValue: string) { @@ -628,32 +624,18 @@ class ChatElement extends HTMLElement { return; } - groupList.innerHTML = ''; - const service = await Services.getInstance(); - - // Récupérer tous les processus - const processes = await service.getProcesses(); - console.log('All processes here:', processes); + const processes = await this.getProcesses(); if (!processes || Object.keys(processes).length === 0) { console.log('⚠️ No processes found'); return; } - // Pour chaque processus, récupérer et afficher les rôles - /*for (const [processId, process] of Object.entries(processes)) { - console.log(`🔄 Processing: ${processId}`, process); - const roles = await this.getRoles(process); - console.log(`👥 Roles for ${processId}:`, roles); - - if (roles === null) { - console.error(`❌ No roles in process ${processId}`); - continue; - } - - console.log(`📝 Loading group list for process ${processId}`); - await this.loadGroupListFromAProcess(processId); - }*/ + for (const {key} of processes) { + const processName = await key; + console.log("Je suis l'id process de la boucle :" ,processName); + this.loadGroupListFromAProcess(processName); + } } private async loadGroupListFromAProcess(processId: string): Promise { @@ -925,26 +907,27 @@ class ChatElement extends HTMLElement { }); } + private async getProcesses(): Promise { + const service = await Services.getInstance(); + const processes = await service.getProcesses(); + + const res = Object.entries(processes).map(([key, value]) => ({ + key, + value, + })); + + return res; + } + async connectedCallback() { console.log('🔍 Connected Callback started'); - // Log du contenu d'IndexedDB - const dbRequest = indexedDB.open('4nk'); - dbRequest.onsuccess = (event: any) => { - const db = event.target.result; - const transaction = db.transaction('processes', 'readonly'); - // Log des processes - const processesStore = transaction.objectStore('processes'); - processesStore.getAll().onsuccess = (event: any) => { - console.log('🔄 Processes in IndexedDB:', event.target.result); - }; - }; - if (this.processId) { console.log('🔍 Loading chat with process ID:', this.processId); this.loadGroupListFromAProcess(this.processId); } else { console.error('❌ No process ID found in element attributes'); + this.loadAllGroupList(); } // Si un membre est sélectionné par défaut, charger ses messages @@ -953,117 +936,6 @@ class ChatElement extends HTMLElement { } } - private addNewMessagingProcess(processId: string, processName: string) { - console.log('🎯 Début addNewMessagingProcess'); - console.log('📝 ProcessId reçu:', processId); - - // Stockage immédiat du processId - this.processId = processId; - console.log('💾 ProcessId stocké dans this.processId:', this.processId); - - const groupList = this.shadowRoot?.querySelector('#group-list'); - if (!groupList) { - console.error('Group list not found'); - return; - } - - // Vérification que le processId est bien stocké - console.log('Vérification this.processId après stockage:', this.processId); - - const existingProcess = groupList.querySelector(`[data-process-id="${processId}"]`); - if (existingProcess) { - console.log('Process already exists:', processId); - return; - } - - const li = document.createElement('li'); - li.className = 'group-list-item'; - li.setAttribute('data-process-id', processId); - - const container = document.createElement('div'); - container.className = 'group-item-container'; - - const nameSpan = document.createElement('span'); - nameSpan.textContent = processName; - nameSpan.className = 'process-name'; - - const emojiSpan = document.createElement('span'); - emojiSpan.className = 'process-emoji'; - - addressToEmoji(processId).then(emojis => { - emojiSpan.textContent = emojis; - }); - - container.appendChild(nameSpan); - container.appendChild(emojiSpan); - li.appendChild(container); - - const roleList = document.createElement('ul'); - roleList.className = 'role-list'; - roleList.style.display = 'none'; - - const roleItem = document.createElement('li'); - roleItem.className = 'role-item'; - roleItem.textContent = 'Messaging'; - roleList.appendChild(roleItem); - - li.appendChild(roleList); - groupList.appendChild(li); - - console.log('🎯 New messaging process added successfully'); - } - - private async getExistingMessageProcess(parentId: string, spAddresses: string[]): Promise { - try { - console.log('🔍 Recherche du processus message'); - console.log('Parent ID:', parentId); - console.log('SP Addresses:', spAddresses); - - const db = await Database.getInstance(); - const processStore = 'processes'; - - // Récupérer le processus parent - const parentProcess = await db.getObject(processStore, parentId); - console.log('📂 Process parent trouvé dans IndexedDB:', { - store: processStore, - processId: parentId, - data: parentProcess - }); - - // Afficher la structure détaillée - if (parentProcess?.states) { - console.log('📝 States:', parentProcess.states); - console.log('🔐 Encrypted PCD:', parentProcess.states[0]?.encrypted_pcd); - console.log('🔄 Processes:', parentProcess.states[0]?.encrypted_pcd?.processes); - } - - // Chercher dans les states[0].encrypted_pcd.roles - const roles = parentProcess?.states?.[0]?.encrypted_pcd?.roles; - console.log('👥 Roles trouvés:', roles); - - // Chercher le processus message dans les rôles - for (const role in roles) { - console.log(` Vérification du rôle: ${role}`); - const members = roles[role].members; - if (members?.some((member: any) => - spAddresses.includes(member.sp_addresses[0]) - )) { - console.log('✅ Membre trouvé dans le rôle:', role); - return { - description: 'messaging', - parent_id: parentId, - roles: roles - }; - } - } - - console.log('❌ Aucun processus message correspondant trouvé'); - return null; - } catch (error) { - console.error('❌ Erreur recherche processus:', error); - return null; - } - } } customElements.define('chat-element', ChatElement);