ministry.home.ts 4.96 KB
Newer Older
1 2
import { Router, Params} from '@angular/router';
import { OnInit, Component} from '@angular/core';
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
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>
39 40 41
            <div class="alert alert-danger" *ngIf="!validLogin">
                Λάθος όνομα χρήστη / κωδικός. Παρακαλώ προσπαθήστε ξανά.
            </div>
42 43

            <div *ngFor="let loginInfoToken$ of loginInfo$ | async; let i=index"></div>
44 45 46 47 48 49 50
              <div class="row" style="min-height: 300px; margin-top: 100px;">
              <!--<div *ngIf="!mineduUsername" class="col-md-8 offset-md-4">-->
              <div 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>
51
            </div>
52

53 54 55 56 57 58 59 60 61
     </form>
  </div>
  `
})

export default class MinistryHome implements OnInit {
    public userDataGroup: FormGroup;
    private authRole: string;
    private mineduUsername: string;
62 63 64
    //private mineduPassword: string;
    //private cuName: string;
    private validLogin: boolean;
65 66 67 68 69 70 71 72 73 74 75 76
    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 = '';
77
        //this.mineduPassword = '';
78
        this.authRole = '';
79 80
        //this.cuName = '';
        this.validLogin = true;
81 82 83 84

        this.userDataGroup = this.fb.group({
          minedu_username: ['minedu01', [Validators.required]],
          minedu_userpassword: ['12345678', [Validators.required]],
85 86
          cu_name: [''],
          auth_role: [''],
87 88 89 90 91 92 93 94
        });
    };

    ngOnInit() {
        this.loginInfo$ = this._ngRedux.select(state => {
            if (state.loginInfo.size > 0) {
                state.loginInfo.reduce(({}, loginInfoToken) => {
                    this.mineduUsername = loginInfoToken.minedu_username;
95
                    //this.mineduPassword = loginInfoToken.minedu_userpassword;
96 97 98 99 100 101 102 103 104 105 106 107 108
                    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'])
109
          .catch(err => {console.log(err); success = false; this.validLogin = false; })
110 111 112
          .then(msg => {
            if (success)  {
              this.authRole = 'supervisor';
113
              this._hds.setMineduCurrentUser(this.userDataGroup.value['minedu_username'], this.userDataGroup.value['minedu_userpassword'],   this.authRole);
114
              console.log("MPHKA");
115 116 117
              this.validLogin = true;
              this.userDataGroup.value['cu_name'] = this.userDataGroup.value['minedu_username'];
              this.userDataGroup.value['auth_role'] = 'supervisor';
118 119 120 121 122 123 124 125
              this._ata.saveMinEduloginInfo([this.userDataGroup.value]);
          }
          });
        }



}