Enhance member validation and error reporting in MemberTransferService and MemberTransferDialog

Updated the MemberTransferService to include validation for required member fields, categorizing members into valid and invalid lists. Improved error handling to provide detailed feedback on invalid members during transfers. Enhanced the MemberTransferDialog to display information about excluded members and their errors, ensuring users are informed of any issues during the transfer process.
This commit is contained in:
Torsten Schulz (local)
2025-11-06 08:28:27 +01:00
parent 75242f63fc
commit c9d82827ff
2 changed files with 148 additions and 11 deletions

View File

@@ -369,24 +369,50 @@ export default {
`${response.data.transferred} von ${response.data.total} Mitglieder(n) erfolgreich übertragen.`;
let details = '';
// Zeige ausgeschlossene Mitglieder an
if (response.data.invalidMembers && response.data.invalidMembers.length > 0) {
details += 'Ausgeschlossene Mitglieder (fehlende Pflichtfelder):\n';
details += response.data.invalidMembers.map(inv => {
const name = `${inv.member.firstName} ${inv.member.lastName}`.trim() || `ID: ${inv.member.id}`;
return `${name}: ${inv.errors.join(', ')}`;
}).join('\n');
details += '\n\n';
}
// Zeige weitere Fehler an
if (response.data.errors && response.data.errors.length > 0) {
details = 'Fehler:\n' + response.data.errors.map(e =>
details += 'Weitere Fehler:\n';
details += response.data.errors.map(e =>
`${e.member}: ${e.error}`
).join('\n');
}
this.$emit('success', {
message: message,
details: details,
details: details.trim(),
results: response.data
});
this.handleClose();
} else {
// Bei Fehlern auch ausgeschlossene Mitglieder anzeigen
let errorDetails = response.data.error || '';
if (response.data.invalidMembers && response.data.invalidMembers.length > 0) {
errorDetails += '\n\nAusgeschlossene Mitglieder (fehlende Pflichtfelder):\n';
errorDetails += response.data.invalidMembers.map(inv => {
const name = `${inv.member.firstName} ${inv.member.lastName}`.trim() || `ID: ${inv.member.id}`;
return `${name}: ${inv.errors.join(', ')}`;
}).join('\n');
}
this.$emit('error', {
message: response.data.message || 'Übertragung fehlgeschlagen',
error: response.data.error
error: errorDetails
});
this.handleClose();
}
} catch (error) {
console.error('Transfer error:', error);
@@ -399,6 +425,8 @@ export default {
message: 'Fehler bei der Übertragung',
error: errorMessage
});
this.handleClose();
} finally {
this.isTransferring = false;
}