gisaf-frontend/src/app/login/login.component.ts
2024-03-31 17:48:36 +05:30

63 lines
No EOL
2 KiB
TypeScript

import {
Component, OnInit, ViewChild, ElementRef,
ChangeDetectorRef, ChangeDetectionStrategy, Inject
} from '@angular/core'
import { Router } from '@angular/router'
import { UntypedFormGroup, UntypedFormControl, Validators } from '@angular/forms'
import { MAT_DIALOG_DATA, MatDialog, MatDialogRef } from '@angular/material/dialog'
import { ConfigService } from '../_services/config.service'
import { AuthenticationService } from '../_services/authentication.service'
export interface LoginDialogData {
username: string;
password: string;
}
@Component({
selector: 'gisaf-login-dialog',
templateUrl: 'login.component.html',
styleUrls: ['./login.component.css'],
standalone: false,
})
export class LoginDialogComponent implements OnInit {
error = ''
formGroup: UntypedFormGroup
@ViewChild('userName', { static: true }) userName: ElementRef
constructor(
public dialogRef: MatDialogRef<LoginDialogComponent>,
@Inject(MAT_DIALOG_DATA) public data: LoginDialogData,
private authenticationService: AuthenticationService,
private cdr: ChangeDetectorRef,
) { }
ngOnInit() {
this.userName.nativeElement.focus()
this.formGroup = new UntypedFormGroup({
userName: new UntypedFormControl('', Validators.required),
password: new UntypedFormControl('', Validators.required),
})
}
onNoClick(): void {
this.dialogRef.close();
}
submit() {
this.authenticationService.login(this.formGroup.value.userName, this.formGroup.value.password).subscribe({
next: result => {
console.log('Login successful')
// this.router.navigate(['/'])
this.dialogRef.close()
this.cdr.markForCheck()
},
error: error => {
console.error(error)
this.error = error.statusText
this.cdr.markForCheck()
}
})
}
}