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:
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user