diff --git a/backend/services/memberTransferService.js b/backend/services/memberTransferService.js index f5e7207..0cd7db5 100644 --- a/backend/services/memberTransferService.js +++ b/backend/services/memberTransferService.js @@ -251,6 +251,12 @@ class MemberTransferService { config.transferTemplate, member ); + + // Debug-Logging: Erste 3 Mitglieder vollständig loggen + if (membersArray.length < 3) { + devLog(`[transferMembers] Mitglied ${membersArray.length + 1} (${member.firstName} ${member.lastName}):`, JSON.stringify(memberData, null, 2)); + } + membersArray.push(memberData); } catch (error) { devLog(`[transferMembers] Error processing ${member.firstName} ${member.lastName}:`, error); @@ -261,6 +267,8 @@ class MemberTransferService { } } + devLog(`[transferMembers] Anzahl zu übertragender Mitglieder: ${membersArray.length}`); + // Bulk-Objekt erstellen let bulkData; @@ -305,6 +313,30 @@ class MemberTransferService { }; } + // Debug-Logging: Was wird übertragen? + devLog('[transferMembers] Bulk-Daten werden übertragen:'); + devLog('[transferMembers] Endpoint:', transferEndpointUrl); + devLog('[transferMembers] Methode:', config.transferMethod || 'POST'); + devLog('[transferMembers] Format:', config.transferFormat || 'json'); + devLog('[transferMembers] Anzahl Mitglieder im Bulk:', membersArray.length); + + // Logge die ersten 2 Mitglieder vollständig für Debugging + if (membersArray.length > 0) { + devLog('[transferMembers] Erstes Mitglied (Beispiel):', JSON.stringify(membersArray[0], null, 2)); + if (membersArray.length > 1) { + devLog('[transferMembers] Zweites Mitglied (Beispiel):', JSON.stringify(membersArray[1], null, 2)); + } + } + + // Logge die vollständige Bulk-Struktur (begrenzt auf erste 1000 Zeichen) + const bulkDataString = JSON.stringify(bulkData, null, 2); + if (bulkDataString.length > 1000) { + devLog('[transferMembers] Bulk-Daten (erste 1000 Zeichen):', bulkDataString.substring(0, 1000) + '...'); + devLog('[transferMembers] Bulk-Daten Gesamtlänge:', bulkDataString.length, 'Zeichen'); + } else { + devLog('[transferMembers] Vollständige Bulk-Daten:', bulkDataString); + } + const transferResult = await this.transferMember( transferEndpointUrl, config.transferMethod || 'POST', @@ -551,6 +583,44 @@ class MemberTransferService { */ async transferMember(endpoint, method, format, data, authToken, sessionCookie) { try { + // Debug-Logging + devLog('[transferMember] Starte Übertragung:'); + devLog('[transferMember] Endpoint:', endpoint); + devLog('[transferMember] Method:', method); + devLog('[transferMember] Format:', format); + devLog('[transferMember] AuthToken vorhanden:', !!authToken); + devLog('[transferMember] SessionCookie vorhanden:', !!sessionCookie); + + // Logge Daten-Struktur (ohne vollständige Daten bei großen Objekten) + if (typeof data === 'object' && data !== null) { + if (Array.isArray(data)) { + devLog('[transferMember] Daten ist Array mit', data.length, 'Elementen'); + if (data.length > 0) { + devLog('[transferMember] Erstes Array-Element:', JSON.stringify(data[0], null, 2)); + } + } else if (data.members && Array.isArray(data.members)) { + devLog('[transferMember] Daten enthält members-Array mit', data.members.length, 'Elementen'); + if (data.members.length > 0) { + devLog('[transferMember] Erstes Mitglied im members-Array:', JSON.stringify(data.members[0], null, 2)); + if (data.members.length > 1) { + devLog('[transferMember] Zweites Mitglied im members-Array:', JSON.stringify(data.members[1], null, 2)); + } + } + } else { + const dataString = JSON.stringify(data, null, 2); + if (dataString.length > 500) { + devLog('[transferMember] Daten (erste 500 Zeichen):', dataString.substring(0, 500) + '...'); + } else { + devLog('[transferMember] Vollständige Daten:', dataString); + } + } + } else { + devLog('[transferMember] Daten-Typ:', typeof data); + if (typeof data === 'string') { + devLog('[transferMember] Daten-String (erste 500 Zeichen):', data.substring(0, 500)); + } + } + let requestConfig = { url: endpoint, method: method.toUpperCase(), diff --git a/frontend/src/components/MemberTransferDialog.vue b/frontend/src/components/MemberTransferDialog.vue index 0dad70e..bfda938 100644 --- a/frontend/src/components/MemberTransferDialog.vue +++ b/frontend/src/components/MemberTransferDialog.vue @@ -172,7 +172,17 @@ export default { watch: { modelValue(newVal) { if (newVal) { + // WICHTIG: Felder sofort leeren, bevor Konfiguration geladen wird + this.loginCredentials = { + username: '', + password: '', + additionalField1: '', + additionalField2: '' + }; this.loadSavedConfig(); + } else { + // Beim Schließen auch leeren + this.resetForm(); } } },