-
+
@if (isResetMode()) {
-
-
+ Passwort zurücksetzen
+ } @else {
+ Passwort vergessen
}
+
-
-
-
- Zurück zur Startseite
-
-
+ @if (errorMessage()) {
+
+ {{ errorMessage() }}
+ }
+
+ @if (successMessage()) {
+
+ {{ successMessage() }}
+
+ }
+
+ @if (!isResetMode()) {
+
+
+ }
+
+ @if (isResetMode()) {
+
+
+ }
+
+
+
+
+ Zurück zum Login
+
+
diff --git a/frontend/src/app/feature/auth/recover-password/recover-password.component.ts b/frontend/src/app/feature/auth/recover-password/recover-password.component.ts
index d1ad253..3695d57 100644
--- a/frontend/src/app/feature/auth/recover-password/recover-password.component.ts
+++ b/frontend/src/app/feature/auth/recover-password/recover-password.component.ts
@@ -1,16 +1,16 @@
-import { Component, EventEmitter, Output, signal } from '@angular/core';
+import { Component, EventEmitter, Output, signal, OnInit } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
-import { ActivatedRoute, Router } from '@angular/router';
+import { ActivatedRoute, Router, RouterModule } from '@angular/router';
import { AuthService } from '@service/auth.service';
@Component({
selector: 'app-recover-password',
standalone: true,
- imports: [CommonModule, ReactiveFormsModule],
+ imports: [CommonModule, ReactiveFormsModule, RouterModule],
templateUrl: './recover-password.component.html',
})
-export class RecoverPasswordComponent {
+export class RecoverPasswordComponent implements OnInit {
emailForm: FormGroup;
resetPasswordForm: FormGroup;
errorMessage = signal('');
@@ -20,6 +20,7 @@ export class RecoverPasswordComponent {
isResetMode = signal(false);
@Output() closeDialog = new EventEmitter
();
+ @Output() switchToLogin = new EventEmitter();
constructor(
private fb: FormBuilder,
@@ -40,8 +41,11 @@ export class RecoverPasswordComponent {
validators: this.passwordMatchValidator,
}
);
+ }
- // Check if we're in reset mode
+ ngOnInit(): void {
+ // Check if we're in reset mode via URL parameters
+ // This is still needed for direct access via URLs with token
this.route.queryParamMap.subscribe((params) => {
const token = params.get('token');
if (token) {
@@ -111,7 +115,8 @@ export class RecoverPasswordComponent {
'Dein Passwort wurde erfolgreich zurückgesetzt. Du kannst dich jetzt anmelden.'
);
setTimeout(() => {
- this.router.navigate([''], { queryParams: { login: true } });
+ this.closeDialog.emit();
+ this.switchToLogin.emit();
}, 3000);
},
error: (err) => {
@@ -122,4 +127,8 @@ export class RecoverPasswordComponent {
},
});
}
+
+ goBackToLogin(): void {
+ this.switchToLogin.emit();
+ }
}