passwordSignin.component.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import {Component, OnInit, ViewChild} from '@angular/core';
  2. import {Router} from '@angular/router';
  3. import {FormBuilder, FormGroup, Validators, FormControl} from '@angular/forms';
  4. import {HttpClient} from '@angular/common/http';
  5. import {AuthService} from '../../../classes/servicess/auth.service';
  6. import {Dialog} from '../../../classes/base_components/dialog/dialog';
  7. import {repairErrors, setErrors} from '../../../classes/utils';
  8. @Component({
  9. selector: 'app-signin',
  10. templateUrl: './passwordSignin.component.html',
  11. styleUrls: ['./passwordSignin.component.scss']
  12. })
  13. export class PasswordSigninComponent implements OnInit {
  14. public loading = false;
  15. passwordCtrl = new FormControl('', [Validators.required]);
  16. type;
  17. mobileCtrl = new FormControl('', [Validators.required, Validators.minLength(4)]);
  18. public form: FormGroup;
  19. remember: boolean = false;
  20. /**
  21. * @param {FormBuilder} fb marbot be form
  22. * @param {Router} router baray navigate kardan hast
  23. * @param {HttpClient} http baray darkhast hay http estefade mishe
  24. * @param {AuthService} auth baray moshakhas kardan inke login hast ya na
  25. */
  26. constructor(
  27. private fb: FormBuilder,
  28. private router: Router,
  29. private http: HttpClient,
  30. private auth: AuthService,
  31. private dialog: Dialog,
  32. ) {
  33. }
  34. ngOnInit() {
  35. this.form = this.fb.group({
  36. passwordCtrl: this.passwordCtrl,
  37. mobileCtrl: this.mobileCtrl,
  38. });
  39. }
  40. onSubmit() {
  41. this.loading = true;
  42. this.auth.loginWithPassword(this.form.controls['mobileCtrl'].value, this.form.controls['passwordCtrl'].value
  43. , this.remember)
  44. .subscribe(
  45. loggedIn => {
  46. if (loggedIn) {
  47. this.loading = false;
  48. this.router.navigateByUrl('/');
  49. }
  50. },
  51. error => {
  52. this.loading = false;
  53. let errors = error.json().errors;
  54. setErrors(repairErrors(errors), this.form.controls, this.dialog);
  55. });
  56. }
  57. }