director-view.ts 9.34 KB
Newer Older
1
import { Component, OnInit, OnDestroy, ElementRef, ViewChild} from "@angular/core";
Open Source Developer's avatar
Open Source Developer committed
2 3 4 5 6
import { Injectable } from "@angular/core";
import { AppSettings } from '../../app.settings';
import { HelperDataService } from '../../services/helper-data-service';
import {Observable} from "rxjs/Observable";
import {Http, Headers, RequestOptions} from '@angular/http';
Open Source Developer's avatar
tran  
Open Source Developer committed
7
import { NgRedux, select } from 'ng2-redux';
Open Source Developer's avatar
Open Source Developer committed
8 9 10
import { IAppState } from '../../store/store';
import {Router, ActivatedRoute, Params} from '@angular/router';
import { BehaviorSubject, Subscription } from 'rxjs/Rx';
Open Source Developer's avatar
transf  
Open Source Developer committed
11
import { ILoginInfo } from '../../store/logininfo/logininfo.types';
Open Source Developer's avatar
trans  
Open Source Developer committed
12

Open Source Developer's avatar
trans  
Open Source Developer committed
13 14 15 16 17 18 19
import {
    FormBuilder,
    FormGroup,
    FormControl,
    FormArray,
    Validators,
} from '@angular/forms';
Open Source Developer's avatar
Open Source Developer committed
20 21 22
@Component({
    selector: 'director-view',
    template: `
Open Source Developer's avatar
trans  
Open Source Developer committed
23 24 25 26 27 28 29 30
  <form [formGroup]="formGroup">
      <label for="taxi">Τάξη</label><br/>
      <div class="form-group">
            <select #txoption  class="form-control" (change)="verifyclass(txoption)" formControlName="taxi">
              <option value="1" >Α' Λυκείου</option>
              <option value="2" >Β' Λυκείου</option>
              <option value="3" >Γ' Λυκείου</option>
            </select>
31
      </div>
Open Source Developer's avatar
trans  
Open Source Developer committed
32
      <div class="form-group">
Open Source Developer's avatar
trans  
Open Source Developer committed
33 34

            <select #tmop class="form-control" *ngIf="(selectionBClass | async)" (change)="checkbclass(tmop,txoption)" formControlName="tomeas">
Open Source Developer's avatar
trans  
Open Source Developer committed
35
              <option *ngFor="let SectorSelection$  of StudentSelected$ | async; let i=index" [value] = "SectorSelection$.id"> {{SectorSelection$.sector_id}} </option>
Open Source Developer's avatar
trans  
Open Source Developer committed
36 37 38
            </select>
      </div>
      <div class="form-group">
Open Source Developer's avatar
trans  
Open Source Developer committed
39 40
            <select #spop class="form-control" *ngIf="(selectionCClass | async)" (change) ="checkcclass()" formControlName="specialit">
              <option *ngFor="let SpecialSelection$  of StudentSelectedSpecial$ | async; let i=index" [value] = "SpecialSelection$.id"> {{SpecialSelection$.specialty_id}} </option>
Open Source Developer's avatar
trans  
Open Source Developer committed
41 42
            </select>
      </div>
Open Source Developer's avatar
trans  
Open Source Developer committed
43
            <button type="button" class="btn-primary btn-sm pull-right" (click)="findstudent(txoption)">
Open Source Developer's avatar
trans  
Open Source Developer committed
44 45
                Αναζήτηση
             </button>
Open Source Developer's avatar
trans  
Open Source Developer committed
46
             <div *ngIf="(retrievedStudent | async)">
47
              <div *ngFor="let StudentDetails$  of StudentInfo$ | async; let i=index">
Open Source Developer's avatar
Open Source Developer committed
48 49
                <br>
                <br>
Open Source Developer's avatar
trans  
Open Source Developer committed
50 51 52 53 54 55 56
                 Όνομα:         {{StudentDetails$.name}} <br>
                 Επώνυμο:       {{StudentDetails$.studentsurname}}<br>
                 Όνομα Πατέρα:  {{StudentDetails$.fatherfirstname}}<br>
                 Επώνυμο Πατέρα:{{StudentDetails$.fathersurname}}<br>
                 Όνομα Μητέρας: {{StudentDetails$.motherfirstname}}<br>
                 Επώνυμο Μητέρας:{{StudentDetails$.mothersurname}}<br>
                 Ημερομηνία Γέννησης: {{StudentDetails$.birthdate}}<br>
57 58

                 <strong>Επιβεβαίωση Εγγραφής: </strong>
Open Source Developer's avatar
Open Source Developer committed
59
                 <input #cb class="pull-right" type="checkbox" name="{{ StudentDetails$.id }}" (change)="updateCheckedOptions(StudentDetails$.id, $event)" >
60

61
<!--             </div>  -->
Open Source Developer's avatar
trans  
Open Source Developer committed
62 63 64 65
             </div>
            <button type="button" class="btn-primary btn-sm pull-right" (click)="confirmStudent()">
                 Επιβεβαίωση Εγγραφής
             </button>
Open Source Developer's avatar
Open Source Developer committed
66 67 68
   `
})

69
@Injectable() export default class DirectorView implements OnInit, OnDestroy {
Open Source Developer's avatar
Open Source Developer committed
70

Open Source Developer's avatar
trans  
Open Source Developer committed
71
    public formGroup: FormGroup;
Open Source Developer's avatar
Open Source Developer committed
72 73
    private StudentSelected$: BehaviorSubject<any>;
    private StudentSelectedSub: Subscription;
Open Source Developer's avatar
trans  
Open Source Developer committed
74 75
    private StudentInfo$: BehaviorSubject<any>;
    private StudentInfoSub: Subscription;
Open Source Developer's avatar
trans  
Open Source Developer committed
76 77
    private StudentSelectedSpecial$: BehaviorSubject<any>;
    private StudentSelectedSpecialSub: Subscription;
Open Source Developer's avatar
trans  
Open Source Developer committed
78
    private retrievedStudent: BehaviorSubject<boolean>;
Open Source Developer's avatar
trans  
Open Source Developer committed
79 80
    private selectionBClass: BehaviorSubject<boolean>;
    private selectionCClass: BehaviorSubject<boolean>;
81
    private SchoolId = 147;
Open Source Developer's avatar
trans  
Open Source Developer committed
82
    private currentclass: Number;
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
    private saved: Array<number> = new Array();


    constructor(private fb: FormBuilder,
        private _hds: HelperDataService,
        private activatedRoute: ActivatedRoute,
        private router: Router) {
        this.StudentSelected$ = new BehaviorSubject([{}]);
        this.StudentSelectedSpecial$ = new BehaviorSubject([{}]);
        this.StudentInfo$ = new BehaviorSubject([{}]);
        this.retrievedStudent = new BehaviorSubject(false);
        this.selectionBClass = new BehaviorSubject(false);
        this.selectionCClass = new BehaviorSubject(false);
        this.formGroup = this.fb.group({
            tomeas: ['', []],
            taxi: ['', []],
            specialit: ['', []],
        });
101

Open Source Developer's avatar
Open Source Developer committed
102 103
    }

104
    ngOnDestroy() {
Open Source Developer's avatar
Open Source Developer committed
105 106
        if (this.StudentSelectedSub)
            this.StudentSelectedSub.unsubscribe();
Open Source Developer's avatar
trans  
Open Source Developer committed
107 108
        if (this.StudentSelectedSpecialSub)
            this.StudentSelectedSpecialSub.unsubscribe();
Open Source Developer's avatar
trans  
Open Source Developer committed
109 110 111
        if (this.selectionBClass)
            this.selectionBClass.unsubscribe();
        if (this.selectionCClass)
112
            this.selectionCClass.unsubscribe();
113
        if (this.retrievedStudent)
Open Source Developer's avatar
Open Source Developer committed
114
            this.retrievedStudent.unsubscribe();
Open Source Developer's avatar
Open Source Developer committed
115
    }
116

Open Source Developer's avatar
Open Source Developer committed
117 118 119 120 121
    ngOnInit() {

    }


122 123 124 125 126
    verifyclass(txop) {
        this.retrievedStudent.next(false);
        if (txop.value === "1") {
            this.selectionBClass.next(false);
            this.selectionCClass.next(false);
Open Source Developer's avatar
trans  
Open Source Developer committed
127

128 129 130
        }
        else if (txop.value === "2") {
            this.StudentSelectedSub = this._hds.getSectorPerSchool(this.SchoolId).subscribe(data => {
Open Source Developer's avatar
trans  
Open Source Developer committed
131
                this.selectionBClass.next(true);
Open Source Developer's avatar
trans  
Open Source Developer committed
132
                this.selectionCClass.next(false);
133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155
                this.StudentSelected$.next(data);

            },
                error => {
                    this.StudentSelected$.next([{}]);
                    console.log("Error Getting StudentSelectedSpecial");
                },
                () => console.log("Getting StudentSelectedSpecial"));
        }
        else if (txop.value === "3") {
            var sectorint = +this.formGroup.value.tomeas;
            console.log(sectorint, "test");
            if (this.formGroup.value.tomeas != '') {
                var sectorint = +this.formGroup.value.tomeas;

                this.StudentSelectedSpecialSub = this._hds.getSpecialityPerSchool(this.SchoolId, sectorint).subscribe(data => {
                    this.StudentSelectedSpecial$.next(data);
                },
                    error => {
                        this.StudentSelectedSpecial$.next([{}]);
                        console.log("Error Getting StudentSelectedSpecial");
                    },
                    () => console.log("Getting StudentSelectedSpecial"));
156
            }
157 158 159 160 161 162 163 164 165 166 167 168

            this.StudentSelectedSub = this._hds.getSectorPerSchool(this.SchoolId).subscribe(data => {
                this.StudentSelected$.next(data);
                this.selectionBClass.next(true);
                this.selectionCClass.next(true);
            },
                error => {
                    this.StudentSelected$.next([{}]);
                    console.log("Error Getting StudentSelected");
                },
                () => console.log("Getting StudentSelected"));
        }
Open Source Developer's avatar
trans  
Open Source Developer committed
169 170
    }

Open Source Developer's avatar
Open Source Developer committed
171

172
    checkbclass(tmop, txop) {
Open Source Developer's avatar
trans  
Open Source Developer committed
173 174
        this.retrievedStudent.next(false);
        var sectorint = +this.formGroup.value.tomeas;
175 176 177 178 179 180 181 182 183 184 185 186
        console.log(sectorint, "tomeas");
        if (txop.value === "3") {
            //            this.StudentSelectedSpecial$ = new BehaviorSubject([{}]);
            this.StudentSelectedSpecialSub = this._hds.getSpecialityPerSchool(this.SchoolId, sectorint).subscribe(data => {
                this.StudentSelectedSpecial$.next(data);

            },
                error => {
                    this.StudentSelectedSpecial$.next([{}]);
                    console.log("Error Getting StudentSelectedSpecial");
                },
                () => console.log("Getting StudentSelectedSpecial"));
Open Source Developer's avatar
trans  
Open Source Developer committed
187 188 189
        }
    }

190
    findstudent(txop) {
191

192 193 194 195 196 197 198 199 200 201
        var sectorint = +this.formGroup.value.tomeas;
        if (txop.value === "1") {
            this.currentclass = 1;
        }
        else if (txop.value === "2") {
            this.currentclass = 2;
        }
        else if (txop.value === "3") {
            this.currentclass = 3;
        }
202

203 204 205 206 207 208 209 210 211 212 213
        //            this.StudentInfo$ = new BehaviorSubject([{}]);
        //            this.StudentInfoSub = this._hds.getStudentPerSchool(this.SchoolId, sectorint, this.currentclass).subscribe(this.StudentInfo$);
        this.StudentInfoSub = this._hds.getStudentPerSchool(this.SchoolId, sectorint, this.currentclass).subscribe(data => {
            this.StudentInfo$.next(data);
            this.retrievedStudent.next(true);
        },
            error => {
                this.StudentInfo$.next([{}]);
                console.log("Error Getting Students");
            },
            () => console.log("Getting Students"));
214

Open Source Developer's avatar
trans  
Open Source Developer committed
215 216
    }

217
    updateCheckedOptions(id, event) {
Open Source Developer's avatar
trans  
Open Source Developer committed
218

219
        let i = this.saved.length;
Open Source Developer's avatar
trans  
Open Source Developer committed
220

221

222 223 224 225 226 227 228 229 230 231
        if (event.target.checked === false) {
            var count = this.saved.length;
            for (var j = 0; j < count; j++) {
                if (this.saved[j] === id) {
                    this.saved.splice(j, 1);
                }
            }
        }
        else {
            this.saved[i] = id;
Open Source Developer's avatar
trans  
Open Source Developer committed
232 233
        }

234
    }
Open Source Developer's avatar
trans  
Open Source Developer committed
235

236 237 238
    confirmStudent() {
        this._hds.saveConfirmStudents(this.saved);
    }
Open Source Developer's avatar
trans  
Open Source Developer committed
239

240 241 242
    checkcclass() {
        this.retrievedStudent.next(false);
    }
Open Source Developer's avatar
trans  
Open Source Developer committed
243

244
}