import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core'; import { Router, ActivatedRoute } from '@angular/router'; import { User, IAuthenticationService } from 'sigma-ng/admin-panel' @Component({ selector: 'admin-panel-login', templateUrl: './login.component.html', styleUrls: ['./login.component.css'], exportAs: 'admin-panel-login', providers: [] }) export class LoginComponent implements OnInit { @Input() user: User; @Input('background-image') backgroundImage: string; @Input() logo: string; @Input() title: string; @Input() description: string; @Input() message: string; @Input() captcha: string; @Input() progress: boolean; @Input() service: IAuthenticationService; @Output() onsuccess: EventEmitter = new EventEmitter; @Output() onfailed: EventEmitter = new EventEmitter; @Output() oncaptcha: EventEmitter = new EventEmitter; @Output() onforget: EventEmitter = new EventEmitter; public constructor(private router: Router, private route: ActivatedRoute) { } ngOnInit(): void { //localStorage.removeItem('token'); document.getElementById('username').focus(); setTimeout(() => document.getElementById('login-box').style.opacity = '1',100); } login() { this.progress = true; this.service.login(this.user).subscribe(op => { if (op.success) { if(this.onsuccess.observers.length > 0) this.onsuccess.emit(op); else { localStorage.setItem('token', op.data); this.router.navigate(['../'],{ relativeTo: this.route }) } } else { if(this.onfailed.observers.length > 0) this.onfailed.emit(op); else { this.message = (op.message.length > 0 ? op.message : 'نام کاربری یا گذرواژه اشتباه است'); let username = document.getElementById('username'); if(username) username.focus(); this.user.username = ''; this.user.password = ''; } } },() => { this.progress = false; this.message = 'خطایی در ارسال اطلاعات رخ داده است'; },() => this.progress = false); } }