Guest User

Untitled

a guest
Jul 22nd, 2018
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.64 KB | None | 0 0
  1. import {Component, EventEmitter, HostListener, Input, OnChanges, OnInit, Output} from '@angular/core';
  2. import {TransportService} from '../../services/transport.service';
  3. import {LoggerService} from '../../services/logger.service';
  4. import {ActivatedRoute, Router} from '@angular/router';
  5. import {GlobalVarsService} from '../../services/global-vars.service';
  6.  
  7.  
  8. import {FormControl, Validators} from '@angular/forms';
  9. import {EventService} from '../../services/event.service';
  10.  
  11. const EMAIL_REGEX = /[a-zA-Z0-9!#$%&'*+\/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+\/=?^_`{|}~-]+)*@(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])/;
  12. const TEL_REGEX = /\b\d{3}[-.]?\d{3}[-.]?\d{4}\b/;
  13. const statuses = {
  14. 0: 'offline',
  15. 1: 'online',
  16. 2: 'mobile',
  17. 3: 'donotdisturb'
  18. };
  19.  
  20. @Component({
  21. selector: 'app-login-page',
  22. templateUrl: './login-page.component.html',
  23. styleUrls: ['./login-page.component.scss']
  24. })
  25.  
  26.  
  27. export class LoginPageComponent implements OnInit, OnChanges {
  28. name: string;
  29. pass: string;
  30. error: boolean = false;
  31. errorMsg: string;
  32. authUser: any;
  33. authUserInPrm: any;
  34. connection: any;
  35. viewPwd: boolean = false;
  36. viewInfo: boolean = false;
  37.  
  38. @Input() login: boolean;
  39. @Output() loginChange = new EventEmitter();
  40. emailFormControl = new FormControl('', [
  41. Validators.required,
  42. Validators.pattern(EMAIL_REGEX)
  43. ]);
  44.  
  45. constructor(private transportService: TransportService,
  46. private logger: LoggerService,
  47. private eventService: EventService,
  48. private router: Router,
  49. private _gv: GlobalVarsService,
  50. private route: ActivatedRoute) {
  51. this.route.params.subscribe(data => {
  52. if (data.key) {
  53. this.authUserInPrm = this.transportService.getAuthUserInParam(data.key);
  54. this.authUserInPrm.subscribe(
  55. result => this.responseLogin(result.json()),
  56. error => this.errorLogin(error)
  57. )
  58. }
  59. });
  60.  
  61. }
  62.  
  63.  
  64. ngOnChanges(changes) {
  65. if (changes.login!= null){
  66. this.logger.l(changes.login);
  67. }
  68. }
  69.  
  70. @HostListener('window:keyup', ['$event']) pressEnter(event: KeyboardEvent) {
  71. if (event.keyCode === 13) {
  72. this.sendData(this.name, this.pass);
  73. }
  74. }
  75.  
  76. sendData(a,b){
  77. this.logger.l(a);
  78. this.logger.l(b);
  79.  
  80. if(a != undefined && b != undefined){
  81. this.authUser = this.transportService.getAuthUser(a,b);
  82. this.authUser.subscribe(
  83. result => this.responseLogin(result.json()),
  84. error => this.errorLogin(error)
  85. )
  86.  
  87. }
  88. }
  89.  
  90. cancelData(){
  91. this.name = undefined;
  92. this.pass = undefined;
  93. this.error = false;
  94.  
  95. }
  96.  
  97. errorLogin(dt){
  98. this.logger.w(dt);
  99. this.errorMsg = "Ошибка";
  100.  
  101. switch (dt.status) {
  102. case 404:
  103. this.logger.w('404');
  104. this.errorMsg = "Пользователь не найден";
  105. break;
  106. case 500:
  107. this.logger.w('500');
  108. this.errorMsg = "Сервер не доступен";
  109. break;
  110.  
  111. default:
  112. // code...
  113. break;
  114. }
  115.  
  116. this.error = true;
  117. }
  118.  
  119. responseLogin(dt){
  120. this.error = false;
  121. this.logger.w(dt);
  122. if(dt.sid == undefined){
  123. this.error = true;
  124. this.errorMsg = dt.err_str;
  125. this.login = false;
  126. this.loginChange.emit(this.login);
  127. } else {
  128. this.error = false;
  129. dt.user.status = statuses[dt.user.status];
  130. this._gv.setCurrentUser(dt);
  131. this.login = true;
  132. this.loginChange.emit(this.login);
  133. this.router.navigate(['dashboard/home']);
  134. }
  135. }
  136.  
  137. ngOnInit() {
  138.  
  139. }
  140.  
  141.  
  142.  
  143.  
  144. }
Add Comment
Please, Sign In to add comment