import { Router, Params} from '@angular/router';
import { OnInit, Component} from '@angular/core';
import { LoginInfoActions } from '../actions/logininfo.actions';
import { ILoginInfo } from '../store/logininfo/logininfo.types';
import { NgRedux, select } from '@angular-redux/store';
import { Observable } from 'rxjs/Rx';
import { IAppState } from '../store/store';
import { HelperDataService } from '../services/helper-data-service';
import {Http, Response, RequestOptions} from '@angular/http';
import {
FormBuilder,
FormGroup,
FormControl,
FormArray,
Validators
} from '@angular/forms';
import { API_ENDPOINT } from '../app.settings';
@Component({
selector: 'ministry-home',
template: `
`
})
export default class MinistryHome implements OnInit {
public userDataGroup: FormGroup;
private authRole: string;
private mineduUsername: string;
//private mineduPassword: string;
//private cuName: string;
private validLogin: number;
private loginInfo$: Observable;
private apiEndPoint = API_ENDPOINT;
constructor(private fb: FormBuilder,
private _ata: LoginInfoActions,
private _ngRedux: NgRedux,
private _hds: HelperDataService,
private http: Http,
private router: Router
) {
this.mineduUsername = '';
//this.mineduPassword = '';
this.authRole = '';
//this.cuName = '';
//this.validLogin = true;
this.validLogin = 1;
this.userDataGroup = this.fb.group({
minedu_username: ['', [Validators.required]],
minedu_userpassword: ['', [Validators.required]],
cu_name: [''],
auth_role: [''],
});
};
ngOnInit() {
this.loginInfo$ = this._ngRedux.select(state => {
if (state.loginInfo.size > 0) {
state.loginInfo.reduce(({}, loginInfoToken) => {
this.mineduUsername = loginInfoToken.minedu_username;
//this.mineduPassword = loginInfoToken.minedu_userpassword;
if (this.mineduUsername && this.mineduUsername.length > 0)
this.router.navigate(['/ministry/minister-settings']);
return loginInfoToken;
}, {});
}
return state.loginInfo;
});
}
submitCredentials() {
this.validLogin = -1;
let success = true;
this._hds.sendMinisrtyCredentials(this.userDataGroup.value['minedu_username'],this.userDataGroup.value['minedu_userpassword'])
.catch(err => {console.log(err); success = false; this.validLogin = 0; })
.then(msg => {
if (success) {
this.authRole = 'supervisor';
this._hds.setMineduCurrentUser(this.userDataGroup.value['minedu_username'], this.userDataGroup.value['minedu_userpassword'], this.authRole);
this.validLogin = 1;
this.userDataGroup.value['cu_name'] = this.userDataGroup.value['minedu_username'];
this.userDataGroup.value['auth_role'] = 'supervisor';
this._ata.saveMinEduloginInfo([this.userDataGroup.value]);
}
});
}
}