128 lines
3.1 KiB
TypeScript
Raw Normal View History

2019-09-18 15:02:21 +09:00
import {
Component,
OnInit,
Input,
Output,
EventEmitter,
ViewChild,
2019-11-15 11:21:42 +09:00
ElementRef,
ChangeDetectorRef
2019-09-18 15:02:21 +09:00
} from '@angular/core';
import {
FormGroup,
FormBuilder,
Validators,
FormControl,
ValidatorFn
} from '@angular/forms';
2019-09-18 15:02:21 +09:00
import { Company } from '@ucap-webmessenger/api-external';
@Component({
selector: 'ucap-account-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {
@Input()
2019-09-26 14:38:21 +09:00
companyList?: Company[];
@Input()
2019-12-15 14:49:04 +09:00
curCompanyCode?: string;
@Input()
loginBtnText?: string;
@Input()
loginBtnEnable: boolean;
@Input()
notiText?: string;
2019-09-18 15:02:21 +09:00
2019-12-15 22:49:35 +09:00
@Input()
companyCode: string;
@Input()
loginId: string;
@Input()
rememberMe: boolean;
@Input()
autoLogin: boolean;
@Input()
useRememberMe: boolean;
@Input()
useAutoLogin: boolean;
2019-09-18 15:02:21 +09:00
@Output()
login = new EventEmitter<{
companyCode: string;
loginId: string;
loginPw: string;
rememberMe: boolean;
2019-12-15 22:49:35 +09:00
autoLogin: boolean;
2019-09-18 15:02:21 +09:00
notValid: () => void;
}>();
@Output()
notiClick = new EventEmitter();
2019-09-18 15:02:21 +09:00
@ViewChild('loginPw', { static: true }) loginPwElementRef: ElementRef;
loginForm: FormGroup;
companyCodeFormControl = new FormControl('');
loginIdFormControl = new FormControl('');
loginPwFormControl = new FormControl('');
2019-09-18 15:02:21 +09:00
constructor(
private formBuilder: FormBuilder,
2019-12-15 22:49:35 +09:00
private changeDetectorRef: ChangeDetectorRef
) {}
2019-09-18 15:02:21 +09:00
ngOnInit() {
const companyCodeValidators: ValidatorFn[] = [Validators.required];
this.companyCodeFormControl.setValidators(companyCodeValidators);
if (!!this.curCompanyCode) {
this.companyCodeFormControl.setValue(this.curCompanyCode);
}
const loginIdValidators: ValidatorFn[] = [Validators.required];
this.loginIdFormControl.setValidators(loginIdValidators);
if (!!this.loginId) {
this.loginIdFormControl.setValue(this.loginId);
}
const loginPwValidators: ValidatorFn[] = [Validators.required];
this.loginPwFormControl.setValidators(loginPwValidators);
2019-09-18 15:02:21 +09:00
this.loginForm = this.formBuilder.group({
companyCodeFormControl: this.companyCodeFormControl,
loginIdFormControl: this.loginIdFormControl,
loginPwFormControl: this.loginPwFormControl,
2019-12-15 22:49:35 +09:00
rememberMe: [false],
autoLogin: [false]
2019-09-18 15:02:21 +09:00
});
2019-12-15 22:49:35 +09:00
if (!!this.rememberMe && this.rememberMe) {
this.loginForm.get('rememberMe').setValue(true);
}
if (!!this.autoLogin && this.autoLogin) {
this.loginForm.get('autoLogin').setValue(true);
}
if (!this.loginBtnText || this.loginBtnText.trim().length === 0) {
this.loginBtnText = 'LOGIN';
}
2019-12-15 22:49:35 +09:00
this.changeDetectorRef.detectChanges();
2019-09-18 15:02:21 +09:00
}
onClickLogin() {
this.login.emit({
companyCode: this.loginForm.get('companyCode').value,
loginId: this.loginForm.get('loginId').value,
loginPw: this.loginForm.get('loginPw').value,
2019-12-15 22:49:35 +09:00
rememberMe: this.loginForm.get('rememberMe').value,
autoLogin: this.loginForm.get('autoLogin').value,
2019-09-18 15:02:21 +09:00
notValid: () => {
this.loginPwElementRef.nativeElement.focus();
}
});
}
onClickNoti(): void {
this.notiClick.emit();
}
2019-09-18 15:02:21 +09:00
}