ministry.home.ts 4.13 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111
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 'ng2-redux';
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: `
  <div>
       <form novalidate [formGroup]="userDataGroup"  #form>

            <div class="form-group">
                <label for="minedu_username">Όνομα διαχειριστή</label><input class="form-control" type="text" formControlName="minedu_username">
            </div>
            <div class="alert alert-danger" *ngIf="userDataGroup.get('minedu_username').touched && userDataGroup.get('minedu_username').hasError('required')">
                Το πεδίο δεν μπορεί να αφεθεί κενό!
            </div>

            <div class="form-group">
                <label for="minedu_userpassword">Κωδικός πρόσβασης</label><input class="form-control" type="password" formControlName="minedu_userpassword">
            </div>
            <div class="alert alert-danger" *ngIf="userDataGroup.get('minedu_userpassword').touched && userDataGroup.get('minedu_userpassword').hasError('required')">
                Το πεδίο δεν μπορεί να αφεθεί κενό!
            </div>

            <div *ngFor="let loginInfoToken$ of loginInfo$ | async; let i=index"></div>
            <div class="row" style="min-height: 300px; margin-top: 100px;">

            <div *ngIf="!mineduUsername" class="col-md-8 offset-md-4">
                <button type="submit" class="btn-primary btn-lg" (click)="submitCredentials()" [disabled]="userDataGroup.invalid">
                Είσοδος<span class="glyphicon glyphicon-menu-right"></span>
                </button>
            </div>
            </div>
     </form>
  </div>
  `
})

export default class MinistryHome implements OnInit {
    public userDataGroup: FormGroup;
    private authRole: string;
    private mineduUsername: string;
    private mineduPassword: string;
    private loginInfo$: Observable<ILoginInfo>;
    private apiEndPoint = API_ENDPOINT;

    constructor(private fb: FormBuilder,
        private _ata: LoginInfoActions,
        private _ngRedux: NgRedux<IAppState>,
        private _hds: HelperDataService,
        private http: Http,
        private router: Router
    ) {

        this.mineduUsername = '';
        this.mineduPassword = '';
        this.authRole = '';

        this.userDataGroup = this.fb.group({
          minedu_username: ['minedu01', [Validators.required]],
          minedu_userpassword: ['12345678', [Validators.required]],
        });
    };

    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-view']);
                    return loginInfoToken;
                }, {});
            }
            return state.loginInfo;
        });

    }

    submitCredentials() {
        let success = true;
        this._hds.sendMinisrtyCredentials(this.userDataGroup.value['minedu_username'],this.userDataGroup.value['minedu_userpassword'])
          .catch(err => {console.log(err); success = false;})
          .then(msg => {
            if (success)  {
              this.authRole = 'supervisor';
              console.log("MPHKA");
              this._ata.saveMinEduloginInfo([this.userDataGroup.value]);
          }
          });
        }



}