Refactor: Einführung einer handleEvent-Methode zur zentralen Verarbeitung von Socket.io-Events in mehreren Views

Ä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.
This commit is contained in:
Torsten Schulz (local)
2025-09-08 13:28:48 +02:00
parent fbe41e627b
commit aea624ae26
9 changed files with 100 additions and 17 deletions

View File

@@ -108,15 +108,15 @@ export default {
if (this.socket) { if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => { this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 StatusBar: falukantUpdateStatus empfangen:', data); console.log('📨 StatusBar: falukantUpdateStatus empfangen:', data);
this.fetchStatus(); this.handleEvent({ event: 'falukantUpdateStatus', ...data });
}); });
this.socket.on('stock_change', (data) => { this.socket.on('stock_change', (data) => {
console.log('📨 StatusBar: stock_change empfangen:', data); console.log('📨 StatusBar: stock_change empfangen:', data);
this.fetchStatus(); this.handleEvent({ event: 'stock_change', ...data });
}); });
this.socket.on('familychanged', (data) => { this.socket.on('familychanged', (data) => {
console.log('📨 StatusBar: familychanged empfangen:', data); console.log('📨 StatusBar: familychanged empfangen:', data);
this.fetchStatus(); this.handleEvent({ event: 'familychanged', ...data });
}); });
console.log('✅ StatusBar: Socket.io Events registriert'); console.log('✅ StatusBar: Socket.io Events registriert');
} else { } else {
@@ -124,6 +124,18 @@ export default {
setTimeout(() => this.setupSocketEvents(), 1000); 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) { openPage(url, hasSubmenu = false) {
if (hasSubmenu) { if (hasSubmenu) {
return; return;

View File

@@ -134,7 +134,7 @@ export default {
if (this.socket) { if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => { this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 BankView: falukantUpdateStatus empfangen:', data); console.log('📨 BankView: falukantUpdateStatus empfangen:', data);
this.loadBankOverview(); this.handleEvent({ event: 'falukantUpdateStatus', ...data });
}); });
console.log('✅ BankView: Socket.io Events registriert'); console.log('✅ BankView: Socket.io Events registriert');
} else { } else {
@@ -142,6 +142,16 @@ export default {
setTimeout(() => this.setupSocketEvents(), 1000); 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() { async loadBankOverview() {
try { try {
const { data } = await apiClient.get('/api/falukant/bank/overview'); const { data } = await apiClient.get('/api/falukant/bank/overview');

View File

@@ -112,13 +112,11 @@ export default {
if (this.socket) { if (this.socket) {
this.socket.on('falukantBranchUpdate', (data) => { this.socket.on('falukantBranchUpdate', (data) => {
console.log('📨 BranchView: falukantBranchUpdate empfangen:', data); console.log('📨 BranchView: falukantBranchUpdate empfangen:', data);
this.loadBranches(); this.handleEvent({ event: 'falukantBranchUpdate', ...data });
this.loadProducts();
}); });
this.socket.on('falukantUpdateStatus', (data) => { this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 BranchView: falukantUpdateStatus empfangen:', data); console.log('📨 BranchView: falukantUpdateStatus empfangen:', data);
this.loadBranches(); this.handleEvent({ event: 'falukantUpdateStatus', ...data });
this.loadProducts();
}); });
console.log('✅ BranchView: Socket.io Events registriert'); console.log('✅ BranchView: Socket.io Events registriert');
} else { } else {

View File

@@ -108,7 +108,7 @@ export default {
if (this.socket) { if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => { this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 DirectorView: falukantUpdateStatus empfangen:', data); console.log('📨 DirectorView: falukantUpdateStatus empfangen:', data);
this.loadDirectors(); this.handleEvent({ event: 'falukantUpdateStatus', ...data });
}); });
console.log('✅ DirectorView: Socket.io Events registriert'); console.log('✅ DirectorView: Socket.io Events registriert');
} else { } else {
@@ -116,6 +116,16 @@ export default {
setTimeout(() => this.setupSocketEvents(), 1000); 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() { async loadDirectors() {
try { try {
const { data } = await apiClient.get('/api/falukant/directors'); const { data } = await apiClient.get('/api/falukant/directors');

View File

@@ -208,11 +208,11 @@ export default {
if (this.socket) { if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => { this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 FamilyView: falukantUpdateStatus empfangen:', data); console.log('📨 FamilyView: falukantUpdateStatus empfangen:', data);
this.loadFamilyData(); this.handleEvent({ event: 'falukantUpdateStatus', ...data });
}); });
this.socket.on('familychanged', (data) => { this.socket.on('familychanged', (data) => {
console.log('📨 FamilyView: familychanged empfangen:', data); console.log('📨 FamilyView: familychanged empfangen:', data);
this.loadFamilyData(); this.handleEvent({ event: 'familychanged', ...data });
}); });
console.log('✅ FamilyView: Socket.io Events registriert'); console.log('✅ FamilyView: Socket.io Events registriert');
} else { } else {
@@ -220,6 +220,17 @@ export default {
setTimeout(() => this.setupSocketEvents(), 1000); 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() { async loadFamilyData() {
try { try {
const response = await apiClient.get('/api/falukant/family'); const response = await apiClient.get('/api/falukant/family');

View File

@@ -99,7 +99,7 @@ export default {
if (this.socket) { if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => { this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 HealthView: falukantUpdateStatus empfangen:', data); console.log('📨 HealthView: falukantUpdateStatus empfangen:', data);
this.loadHealthData(); this.handleEvent({ event: 'falukantUpdateStatus', ...data });
}); });
console.log('✅ HealthView: Socket.io Events registriert'); console.log('✅ HealthView: Socket.io Events registriert');
} else { } else {
@@ -107,6 +107,16 @@ export default {
setTimeout(() => this.setupSocketEvents(), 1000); 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() { async loadHealthData() {
try { try {
const { data } = await apiClient.get('/api/falukant/health'); const { data } = await apiClient.get('/api/falukant/health');

View File

@@ -203,17 +203,28 @@ export default {
if (this.socket) { if (this.socket) {
this.socket.on('falukantHouseUpdate', (data) => { this.socket.on('falukantHouseUpdate', (data) => {
console.log('📨 HouseView: falukantHouseUpdate empfangen:', data); console.log('📨 HouseView: falukantHouseUpdate empfangen:', data);
this.loadData(); this.handleEvent({ event: 'falukantHouseUpdate', ...data });
}); });
this.socket.on('falukantUpdateStatus', (data) => { this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 HouseView: falukantUpdateStatus empfangen:', data); console.log('📨 HouseView: falukantUpdateStatus empfangen:', data);
this.loadData(); this.handleEvent({ event: 'falukantUpdateStatus', ...data });
}); });
console.log('✅ HouseView: Socket.io Events registriert'); console.log('✅ HouseView: Socket.io Events registriert');
} else { } else {
console.log('⚠️ HouseView: Socket.io noch nicht verfügbar'); console.log('⚠️ HouseView: Socket.io noch nicht verfügbar');
setTimeout(() => this.setupSocketEvents(), 1000); 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);
}
} }
} }
}; };

View File

@@ -84,7 +84,7 @@
if (this.socket) { if (this.socket) {
this.socket.on('falukantUpdateStatus', (data) => { this.socket.on('falukantUpdateStatus', (data) => {
console.log('📨 NobilityView: falukantUpdateStatus empfangen:', data); console.log('📨 NobilityView: falukantUpdateStatus empfangen:', data);
this.loadNobility(); this.handleEvent({ event: 'falukantUpdateStatus', ...data });
}); });
console.log('✅ NobilityView: Socket.io Events registriert'); console.log('✅ NobilityView: Socket.io Events registriert');
} else { } else {
@@ -92,6 +92,16 @@
setTimeout(() => this.setupSocketEvents(), 1000); 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() { async loadNobility() {
try { try {
const { data } = await apiClient.get('/api/falukant/nobility'); const { data } = await apiClient.get('/api/falukant/nobility');

View File

@@ -232,11 +232,11 @@ export default {
this.socket.on("production_ready", this.handleProductionReadyEvent); this.socket.on("production_ready", this.handleProductionReadyEvent);
this.socket.on("falukantUpdateStatus", (data) => { this.socket.on("falukantUpdateStatus", (data) => {
console.log('📨 FalukantOverviewView: falukantUpdateStatus empfangen:', data); console.log('📨 FalukantOverviewView: falukantUpdateStatus empfangen:', data);
this.fetchFalukantUser(); this.handleEvent({ event: 'falukantUpdateStatus', ...data });
}); });
this.socket.on("falukantBranchUpdate", (data) => { this.socket.on("falukantBranchUpdate", (data) => {
console.log('📨 FalukantOverviewView: falukantBranchUpdate empfangen:', data); console.log('📨 FalukantOverviewView: falukantBranchUpdate empfangen:', data);
this.fetchFalukantUser(); this.handleEvent({ event: 'falukantBranchUpdate', ...data });
}); });
console.log('✅ FalukantOverviewView: Socket.io Events registriert'); console.log('✅ FalukantOverviewView: Socket.io Events registriert');
} else { } else {
@@ -247,6 +247,17 @@ export default {
}, 1000); }, 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) { getAgeGroup(age) {
if (age <= 1) return "0-1"; if (age <= 1) return "0-1";
if (age <= 3) return "2-3"; if (age <= 3) return "2-3";