From aea624ae26ba451aa0430d861535edf393e01cf2 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Mon, 8 Sep 2025 13:28:48 +0200 Subject: [PATCH] =?UTF-8?q?Refactor:=20Einf=C3=BChrung=20einer=20handleEve?= =?UTF-8?q?nt-Methode=20zur=20zentralen=20Verarbeitung=20von=20Socket.io-E?= =?UTF-8?q?vents=20in=20mehreren=20Views?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Änderung: - In den Views StatusBar, BankView, BranchView, DirectorView, FamilyView, HealthView, HouseView und NobilityView wurde eine neue Methode `handleEvent` hinzugefügt, um die Verarbeitung von empfangenen Socket.io-Events zu zentralisieren. - Die spezifischen Event-Handler wurden aktualisiert, um die `handleEvent`-Methode aufzurufen, was die Lesbarkeit und Wartbarkeit des Codes verbessert. Diese Anpassung sorgt für eine konsistentere Handhabung von Socket.io-Events und erleichtert zukünftige Erweiterungen und Anpassungen der Event-Logik. --- frontend/src/components/falukant/StatusBar.vue | 18 +++++++++++++++--- frontend/src/views/falukant/BankView.vue | 12 +++++++++++- frontend/src/views/falukant/BranchView.vue | 6 ++---- frontend/src/views/falukant/DirectorView.vue | 12 +++++++++++- frontend/src/views/falukant/FamilyView.vue | 15 +++++++++++++-- frontend/src/views/falukant/HealthView.vue | 12 +++++++++++- frontend/src/views/falukant/HouseView.vue | 15 +++++++++++++-- frontend/src/views/falukant/NobilityView.vue | 12 +++++++++++- frontend/src/views/falukant/OverviewView.vue | 15 +++++++++++++-- 9 files changed, 100 insertions(+), 17 deletions(-) diff --git a/frontend/src/components/falukant/StatusBar.vue b/frontend/src/components/falukant/StatusBar.vue index 4130ca3..edeb363 100644 --- a/frontend/src/components/falukant/StatusBar.vue +++ b/frontend/src/components/falukant/StatusBar.vue @@ -108,15 +108,15 @@ export default { if (this.socket) { this.socket.on('falukantUpdateStatus', (data) => { console.log('📨 StatusBar: falukantUpdateStatus empfangen:', data); - this.fetchStatus(); + this.handleEvent({ event: 'falukantUpdateStatus', ...data }); }); this.socket.on('stock_change', (data) => { console.log('📨 StatusBar: stock_change empfangen:', data); - this.fetchStatus(); + this.handleEvent({ event: 'stock_change', ...data }); }); this.socket.on('familychanged', (data) => { console.log('📨 StatusBar: familychanged empfangen:', data); - this.fetchStatus(); + this.handleEvent({ event: 'familychanged', ...data }); }); console.log('✅ StatusBar: Socket.io Events registriert'); } else { @@ -124,6 +124,18 @@ export default { setTimeout(() => this.setupSocketEvents(), 1000); } }, + handleEvent(eventData) { + console.log('🔄 StatusBar: handleEvent aufgerufen mit:', eventData); + switch (eventData.event) { + case 'falukantUpdateStatus': + case 'stock_change': + case 'familychanged': + this.loadStatus(); + break; + default: + console.log('⚠️ StatusBar: Unbekanntes Event:', eventData.event); + } + }, openPage(url, hasSubmenu = false) { if (hasSubmenu) { return; diff --git a/frontend/src/views/falukant/BankView.vue b/frontend/src/views/falukant/BankView.vue index aa9edfc..1bb43fd 100644 --- a/frontend/src/views/falukant/BankView.vue +++ b/frontend/src/views/falukant/BankView.vue @@ -134,7 +134,7 @@ export default { if (this.socket) { this.socket.on('falukantUpdateStatus', (data) => { console.log('📨 BankView: falukantUpdateStatus empfangen:', data); - this.loadBankOverview(); + this.handleEvent({ event: 'falukantUpdateStatus', ...data }); }); console.log('✅ BankView: Socket.io Events registriert'); } else { @@ -142,6 +142,16 @@ export default { setTimeout(() => this.setupSocketEvents(), 1000); } }, + handleEvent(eventData) { + console.log('🔄 BankView: handleEvent aufgerufen mit:', eventData); + switch (eventData.event) { + case 'falukantUpdateStatus': + this.loadBankOverview(); + break; + default: + console.log('⚠️ BankView: Unbekanntes Event:', eventData.event); + } + }, async loadBankOverview() { try { const { data } = await apiClient.get('/api/falukant/bank/overview'); diff --git a/frontend/src/views/falukant/BranchView.vue b/frontend/src/views/falukant/BranchView.vue index 2c3d3c0..47bc9f0 100644 --- a/frontend/src/views/falukant/BranchView.vue +++ b/frontend/src/views/falukant/BranchView.vue @@ -112,13 +112,11 @@ export default { if (this.socket) { this.socket.on('falukantBranchUpdate', (data) => { console.log('📨 BranchView: falukantBranchUpdate empfangen:', data); - this.loadBranches(); - this.loadProducts(); + this.handleEvent({ event: 'falukantBranchUpdate', ...data }); }); this.socket.on('falukantUpdateStatus', (data) => { console.log('📨 BranchView: falukantUpdateStatus empfangen:', data); - this.loadBranches(); - this.loadProducts(); + this.handleEvent({ event: 'falukantUpdateStatus', ...data }); }); console.log('✅ BranchView: Socket.io Events registriert'); } else { diff --git a/frontend/src/views/falukant/DirectorView.vue b/frontend/src/views/falukant/DirectorView.vue index 940d81c..d7be517 100644 --- a/frontend/src/views/falukant/DirectorView.vue +++ b/frontend/src/views/falukant/DirectorView.vue @@ -108,7 +108,7 @@ export default { if (this.socket) { this.socket.on('falukantUpdateStatus', (data) => { console.log('📨 DirectorView: falukantUpdateStatus empfangen:', data); - this.loadDirectors(); + this.handleEvent({ event: 'falukantUpdateStatus', ...data }); }); console.log('✅ DirectorView: Socket.io Events registriert'); } else { @@ -116,6 +116,16 @@ export default { setTimeout(() => this.setupSocketEvents(), 1000); } }, + handleEvent(eventData) { + console.log('🔄 DirectorView: handleEvent aufgerufen mit:', eventData); + switch (eventData.event) { + case 'falukantUpdateStatus': + this.loadDirectors(); + break; + default: + console.log('⚠️ DirectorView: Unbekanntes Event:', eventData.event); + } + }, async loadDirectors() { try { const { data } = await apiClient.get('/api/falukant/directors'); diff --git a/frontend/src/views/falukant/FamilyView.vue b/frontend/src/views/falukant/FamilyView.vue index 1eb380f..d5e63b7 100644 --- a/frontend/src/views/falukant/FamilyView.vue +++ b/frontend/src/views/falukant/FamilyView.vue @@ -208,11 +208,11 @@ export default { if (this.socket) { this.socket.on('falukantUpdateStatus', (data) => { console.log('📨 FamilyView: falukantUpdateStatus empfangen:', data); - this.loadFamilyData(); + this.handleEvent({ event: 'falukantUpdateStatus', ...data }); }); this.socket.on('familychanged', (data) => { console.log('📨 FamilyView: familychanged empfangen:', data); - this.loadFamilyData(); + this.handleEvent({ event: 'familychanged', ...data }); }); console.log('✅ FamilyView: Socket.io Events registriert'); } else { @@ -220,6 +220,17 @@ export default { setTimeout(() => this.setupSocketEvents(), 1000); } }, + handleEvent(eventData) { + console.log('🔄 FamilyView: handleEvent aufgerufen mit:', eventData); + switch (eventData.event) { + case 'falukantUpdateStatus': + case 'familychanged': + this.loadFamilyData(); + break; + default: + console.log('⚠️ FamilyView: Unbekanntes Event:', eventData.event); + } + }, async loadFamilyData() { try { const response = await apiClient.get('/api/falukant/family'); diff --git a/frontend/src/views/falukant/HealthView.vue b/frontend/src/views/falukant/HealthView.vue index 6dc7beb..2cd46e7 100644 --- a/frontend/src/views/falukant/HealthView.vue +++ b/frontend/src/views/falukant/HealthView.vue @@ -99,7 +99,7 @@ export default { if (this.socket) { this.socket.on('falukantUpdateStatus', (data) => { console.log('📨 HealthView: falukantUpdateStatus empfangen:', data); - this.loadHealthData(); + this.handleEvent({ event: 'falukantUpdateStatus', ...data }); }); console.log('✅ HealthView: Socket.io Events registriert'); } else { @@ -107,6 +107,16 @@ export default { setTimeout(() => this.setupSocketEvents(), 1000); } }, + handleEvent(eventData) { + console.log('🔄 HealthView: handleEvent aufgerufen mit:', eventData); + switch (eventData.event) { + case 'falukantUpdateStatus': + this.loadHealthData(); + break; + default: + console.log('⚠️ HealthView: Unbekanntes Event:', eventData.event); + } + }, async loadHealthData() { try { const { data } = await apiClient.get('/api/falukant/health'); diff --git a/frontend/src/views/falukant/HouseView.vue b/frontend/src/views/falukant/HouseView.vue index 259d3b0..986c6cd 100644 --- a/frontend/src/views/falukant/HouseView.vue +++ b/frontend/src/views/falukant/HouseView.vue @@ -203,17 +203,28 @@ export default { if (this.socket) { this.socket.on('falukantHouseUpdate', (data) => { console.log('📨 HouseView: falukantHouseUpdate empfangen:', data); - this.loadData(); + this.handleEvent({ event: 'falukantHouseUpdate', ...data }); }); this.socket.on('falukantUpdateStatus', (data) => { console.log('📨 HouseView: falukantUpdateStatus empfangen:', data); - this.loadData(); + this.handleEvent({ event: 'falukantUpdateStatus', ...data }); }); console.log('✅ HouseView: Socket.io Events registriert'); } else { console.log('⚠️ HouseView: Socket.io noch nicht verfügbar'); setTimeout(() => this.setupSocketEvents(), 1000); } + }, + handleEvent(eventData) { + console.log('🔄 HouseView: handleEvent aufgerufen mit:', eventData); + switch (eventData.event) { + case 'falukantUpdateStatus': + case 'falukantHouseUpdate': + this.loadData(); + break; + default: + console.log('⚠️ HouseView: Unbekanntes Event:', eventData.event); + } } } }; diff --git a/frontend/src/views/falukant/NobilityView.vue b/frontend/src/views/falukant/NobilityView.vue index 8a2075b..9085106 100644 --- a/frontend/src/views/falukant/NobilityView.vue +++ b/frontend/src/views/falukant/NobilityView.vue @@ -84,7 +84,7 @@ if (this.socket) { this.socket.on('falukantUpdateStatus', (data) => { console.log('📨 NobilityView: falukantUpdateStatus empfangen:', data); - this.loadNobility(); + this.handleEvent({ event: 'falukantUpdateStatus', ...data }); }); console.log('✅ NobilityView: Socket.io Events registriert'); } else { @@ -92,6 +92,16 @@ setTimeout(() => this.setupSocketEvents(), 1000); } }, + handleEvent(eventData) { + console.log('🔄 NobilityView: handleEvent aufgerufen mit:', eventData); + switch (eventData.event) { + case 'falukantUpdateStatus': + this.loadNobility(); + break; + default: + console.log('⚠️ NobilityView: Unbekanntes Event:', eventData.event); + } + }, async loadNobility() { try { const { data } = await apiClient.get('/api/falukant/nobility'); diff --git a/frontend/src/views/falukant/OverviewView.vue b/frontend/src/views/falukant/OverviewView.vue index 2bd1f5e..c3e3903 100644 --- a/frontend/src/views/falukant/OverviewView.vue +++ b/frontend/src/views/falukant/OverviewView.vue @@ -232,11 +232,11 @@ export default { this.socket.on("production_ready", this.handleProductionReadyEvent); this.socket.on("falukantUpdateStatus", (data) => { console.log('📨 FalukantOverviewView: falukantUpdateStatus empfangen:', data); - this.fetchFalukantUser(); + this.handleEvent({ event: 'falukantUpdateStatus', ...data }); }); this.socket.on("falukantBranchUpdate", (data) => { console.log('📨 FalukantOverviewView: falukantBranchUpdate empfangen:', data); - this.fetchFalukantUser(); + this.handleEvent({ event: 'falukantBranchUpdate', ...data }); }); console.log('✅ FalukantOverviewView: Socket.io Events registriert'); } else { @@ -247,6 +247,17 @@ export default { }, 1000); } }, + handleEvent(eventData) { + console.log('🔄 FalukantOverviewView: handleEvent aufgerufen mit:', eventData); + switch (eventData.event) { + case 'falukantUpdateStatus': + case 'falukantBranchUpdate': + this.fetchFalukantUser(); + break; + default: + console.log('⚠️ FalukantOverviewView: Unbekanntes Event:', eventData.event); + } + }, getAgeGroup(age) { if (age <= 1) return "0-1"; if (age <= 3) return "2-3";