Enhance error handling and logging in MemberTransferService and MemberTransferDialog

Updated the MemberTransferService to provide detailed error messages during bulk transfers, including identification of problematic members. Improved logging for error responses to facilitate debugging. In the MemberTransferDialog, implemented $nextTick to ensure login credentials are cleared properly upon loading and closing, enhancing user experience and preventing autofill issues.
This commit is contained in:
Torsten Schulz (local)
2025-11-06 08:24:39 +01:00
parent 2f161d1eb5
commit 75242f63fc
2 changed files with 86 additions and 21 deletions

View File

@@ -58,17 +58,27 @@
<label>Login-Daten:</label>
<div class="credentials-group">
<div class="credential-row">
<!-- Dummy-Felder, um Browser-Autofill zu verhindern (ausgeblendet) -->
<input type="text" style="position: absolute; left: -9999px; opacity: 0;" tabindex="-1" autocomplete="off" />
<input type="password" style="position: absolute; left: -9999px; opacity: 0;" tabindex="-1" autocomplete="off" />
<input
type="text"
v-model="loginCredentials.username"
placeholder="Benutzername / Email"
class="form-input"
autocomplete="off"
name="transfer-username"
id="transfer-username"
/>
<input
type="password"
v-model="loginCredentials.password"
placeholder="Passwort (leer lassen für gespeichertes)"
class="form-input"
autocomplete="new-password"
name="transfer-password"
id="transfer-password"
/>
</div>
<div class="credential-row">
@@ -77,12 +87,16 @@
v-model="loginCredentials.additionalField1"
:placeholder="additionalField1Placeholder"
class="form-input"
autocomplete="off"
name="transfer-additional1"
/>
<input
type="text"
v-model="loginCredentials.additionalField2"
:placeholder="additionalField2Placeholder"
class="form-input"
autocomplete="off"
name="transfer-additional2"
/>
</div>
</div>
@@ -173,12 +187,15 @@ export default {
modelValue(newVal) {
if (newVal) {
// WICHTIG: Felder sofort leeren, bevor Konfiguration geladen wird
this.loginCredentials = {
username: '',
password: '',
additionalField1: '',
additionalField2: ''
};
// Verwende $nextTick, um sicherzustellen, dass Vue die Änderungen verarbeitet
this.$nextTick(() => {
this.loginCredentials = {
username: '',
password: '',
additionalField1: '',
additionalField2: ''
};
});
this.loadSavedConfig();
} else {
// Beim Schließen auch leeren
@@ -200,12 +217,15 @@ export default {
}
// WICHTIG: Login-Credentials sofort leeren, damit sie nicht vorausgefüllt werden
this.loginCredentials = {
username: '',
password: '',
additionalField1: '',
additionalField2: ''
};
// Verwende $nextTick, um sicherzustellen, dass Vue die Änderungen verarbeitet
this.$nextTick(() => {
this.loginCredentials = {
username: '',
password: '',
additionalField1: '',
additionalField2: ''
};
});
this.loadingConfig = true;
try {
@@ -235,12 +255,15 @@ export default {
}
} finally {
// Sicherstellen, dass Login-Credentials leer sind
this.loginCredentials = {
username: '',
password: '',
additionalField1: '',
additionalField2: ''
};
// Verwende $nextTick, um sicherzustellen, dass Vue die Änderungen verarbeitet
this.$nextTick(() => {
this.loginCredentials = {
username: '',
password: '',
additionalField1: '',
additionalField2: ''
};
});
this.loadingConfig = false;
}
},