Aktualisiert die Schaltflächen im MyTischtennisAccount.vue, um die Benutzeroberfläche zu verbessern. Ändert den Text der Schaltfläche "Verbindung testen" in "Erneut einloggen" und entfernt die Testausgabe für Login-Tests. Optimiert die Erfolgsmeldung nach erfolgreichem Login und aktualisiert die Account-Daten. Entfernt die nicht mehr benötigte Funktionalität für den Login-Flow-Test.
This commit is contained in:
@@ -36,17 +36,10 @@
|
||||
|
||||
<div class="button-group">
|
||||
<button class="btn-primary" @click="openEditDialog">Account bearbeiten</button>
|
||||
<button class="btn-secondary" @click="testConnection">Verbindung testen</button>
|
||||
<button class="btn-secondary" @click="testLoginFlow">Test: Login-Flow</button>
|
||||
<button class="btn-secondary" @click="testConnection">Erneut einloggen</button>
|
||||
<button class="btn-danger" @click="deleteAccount">Account trennen</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Test-Ausgabe -->
|
||||
<div v-if="testResult" class="test-result" :class="testResult.type">
|
||||
<h3>Test-Ergebnis:</h3>
|
||||
<pre>{{ testResult.data }}</pre>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-else class="no-account">
|
||||
@@ -89,8 +82,7 @@ export default {
|
||||
return {
|
||||
loading: true,
|
||||
account: null,
|
||||
showDialog: false,
|
||||
testResult: null
|
||||
showDialog: false
|
||||
};
|
||||
},
|
||||
mounted() {
|
||||
@@ -131,16 +123,15 @@ export default {
|
||||
},
|
||||
|
||||
async testConnection() {
|
||||
this.testResult = null;
|
||||
try {
|
||||
await apiClient.post('/mytischtennis/verify');
|
||||
this.$store.dispatch('showMessage', {
|
||||
text: 'Verbindung erfolgreich! Login funktioniert.',
|
||||
text: 'Login erfolgreich! Verbindungsdaten aktualisiert.',
|
||||
type: 'success'
|
||||
});
|
||||
await this.loadAccount(); // Aktualisiere lastLoginSuccess
|
||||
await this.loadAccount(); // Aktualisiere Account-Daten inkl. clubId, fedNickname
|
||||
} catch (error) {
|
||||
const message = error.response?.data?.message || 'Verbindung fehlgeschlagen';
|
||||
const message = error.response?.data?.message || 'Login fehlgeschlagen';
|
||||
|
||||
if (error.response?.status === 400 && message.includes('Kein Passwort gespeichert')) {
|
||||
// Passwort-Dialog öffnen
|
||||
@@ -154,71 +145,6 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
async testLoginFlow() {
|
||||
this.testResult = null;
|
||||
|
||||
try {
|
||||
// 1. Verify Login
|
||||
console.log('Testing login...');
|
||||
const verifyResponse = await apiClient.post('/mytischtennis/verify');
|
||||
console.log('Login successful:', verifyResponse.data);
|
||||
|
||||
// 2. Get Session
|
||||
console.log('Fetching session...');
|
||||
const sessionResponse = await apiClient.get('/mytischtennis/session');
|
||||
console.log('Session data:', sessionResponse.data);
|
||||
|
||||
// 3. Check Status
|
||||
console.log('Checking status...');
|
||||
const statusResponse = await apiClient.get('/mytischtennis/status');
|
||||
console.log('Status:', statusResponse.data);
|
||||
|
||||
this.testResult = {
|
||||
type: 'success',
|
||||
data: {
|
||||
message: 'Alle Tests erfolgreich!',
|
||||
login: {
|
||||
accessToken: verifyResponse.data.accessToken ? '✓ vorhanden' : '✗ fehlt',
|
||||
expiresAt: verifyResponse.data.expiresAt,
|
||||
clubId: verifyResponse.data.clubId || '✗ nicht gefunden',
|
||||
clubName: verifyResponse.data.clubName || '✗ nicht gefunden'
|
||||
},
|
||||
session: {
|
||||
accessToken: sessionResponse.data.session?.accessToken ? '✓ vorhanden' : '✗ fehlt',
|
||||
refreshToken: sessionResponse.data.session?.refreshToken ? '✓ vorhanden' : '✗ fehlt',
|
||||
cookie: sessionResponse.data.session?.cookie ? '✓ vorhanden' : '✗ fehlt',
|
||||
userData: sessionResponse.data.session?.userData ? '✓ vorhanden' : '✗ fehlt',
|
||||
expiresAt: sessionResponse.data.session?.expiresAt
|
||||
},
|
||||
status: statusResponse.data
|
||||
}
|
||||
};
|
||||
|
||||
this.$store.dispatch('showMessage', {
|
||||
text: 'Test erfolgreich! Details siehe unten.',
|
||||
type: 'success'
|
||||
});
|
||||
|
||||
} catch (error) {
|
||||
console.error('Test failed:', error);
|
||||
|
||||
this.testResult = {
|
||||
type: 'error',
|
||||
data: {
|
||||
message: 'Test fehlgeschlagen',
|
||||
error: error.response?.data?.message || error.message,
|
||||
status: error.response?.status,
|
||||
details: error.response?.data
|
||||
}
|
||||
};
|
||||
|
||||
this.$store.dispatch('showMessage', {
|
||||
text: `Test fehlgeschlagen: ${error.response?.data?.message || error.message}`,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
},
|
||||
|
||||
async deleteAccount() {
|
||||
if (!confirm('Möchten Sie die Verknüpfung zum myTischtennis-Account wirklich trennen?')) {
|
||||
return;
|
||||
@@ -384,40 +310,5 @@ h1 {
|
||||
.btn-danger:hover {
|
||||
background-color: #c82333;
|
||||
}
|
||||
|
||||
.test-result {
|
||||
background: white;
|
||||
border-radius: 8px;
|
||||
padding: 1.5rem;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.test-result.success {
|
||||
border-left: 4px solid #28a745;
|
||||
}
|
||||
|
||||
.test-result.error {
|
||||
border-left: 4px solid #dc3545;
|
||||
}
|
||||
|
||||
.test-result h3 {
|
||||
margin-top: 0;
|
||||
margin-bottom: 1rem;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
.test-result pre {
|
||||
background: #f8f9fa;
|
||||
border: 1px solid #dee2e6;
|
||||
border-radius: 4px;
|
||||
padding: 1rem;
|
||||
overflow-x: auto;
|
||||
font-family: 'Courier New', monospace;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.5;
|
||||
white-space: pre-wrap;
|
||||
word-wrap: break-word;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user