director-view.ts 7.53 KB
Newer Older
Open Source Developer's avatar
trans  
Open Source Developer committed
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 31 32
  <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>
      </div>      
      <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)">
Open Source Developer's avatar
trans  
Open Source Developer committed
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62
              <div *ngFor="let StudentDetails$  of StudentInfo$ | async">
                 Όνομα:         {{StudentDetails$.name}} <br>
                 Επώνυμο:       {{StudentDetails$.studentsurname}}<br>
                 Όνομα Πατέρα:  {{StudentDetails$.fatherfirstname}}<br>
                 Επώνυμο Πατέρα:{{StudentDetails$.fathersurname}}<br>
                 Όνομα Μητέρας: {{StudentDetails$.motherfirstname}}<br>
                 Επώνυμο Μητέρας:{{StudentDetails$.mothersurname}}<br>
                 Ημερομηνία Γέννησης: {{StudentDetails$.birthdate}}<br>
                 <br>
                 <input #cb type="checkbox" name="{{ StudentDetails$.id }}" (change)="updateCheckedOptions(StudentDetails$.id, $event)" >
                 
             </div>
             </div>
            <button type="button" class="btn-primary btn-sm pull-right" (click)="confirmStudent()">
                 Επιβεβαίωση Εγγραφής
             </button>
Open Source Developer's avatar
Open Source Developer committed
63 64 65 66 67
   `
})

@Injectable() export default class DirectorView implements OnInit , OnDestroy{

Open Source Developer's avatar
trans  
Open Source Developer committed
68
    public formGroup: FormGroup;
Open Source Developer's avatar
Open Source Developer committed
69 70
    private StudentSelected$: BehaviorSubject<any>;
    private StudentSelectedSub: Subscription;
Open Source Developer's avatar
trans  
Open Source Developer committed
71 72
    private StudentInfo$: BehaviorSubject<any>;
    private StudentInfoSub: Subscription;
Open Source Developer's avatar
trans  
Open Source Developer committed
73 74
    private StudentSelectedSpecial$: BehaviorSubject<any>;
    private StudentSelectedSpecialSub: Subscription;
Open Source Developer's avatar
trans  
Open Source Developer committed
75
    private retrievedStudent: BehaviorSubject<boolean>;
Open Source Developer's avatar
trans  
Open Source Developer committed
76 77
    private selectionBClass: BehaviorSubject<boolean>;
    private selectionCClass: BehaviorSubject<boolean>;
Open Source Developer's avatar
trans  
Open Source Developer committed
78
    private SchoolId = 147 ;
Open Source Developer's avatar
trans  
Open Source Developer committed
79
    private currentclass: Number;
Open Source Developer's avatar
trans  
Open Source Developer committed
80
    private saved :Array<number> = new Array();
Open Source Developer's avatar
trans  
Open Source Developer committed
81

Open Source Developer's avatar
trans  
Open Source Developer committed
82

Open Source Developer's avatar
trans  
Open Source Developer committed
83
    constructor(  private fb: FormBuilder,
Open Source Developer's avatar
trans  
Open Source Developer committed
84 85 86
                  private _hds: HelperDataService, 
                  private activatedRoute: ActivatedRoute,
                  private router: Router )
Open Source Developer's avatar
Open Source Developer committed
87 88
    {
       this.StudentSelected$ = new BehaviorSubject([{}]);
Open Source Developer's avatar
trans  
Open Source Developer committed
89
       this.StudentSelectedSpecial$ = new BehaviorSubject([{}]);
Open Source Developer's avatar
trans  
Open Source Developer committed
90 91
       this.StudentInfo$ = new BehaviorSubject([{}]);
       this.retrievedStudent = new BehaviorSubject(false);
Open Source Developer's avatar
trans  
Open Source Developer committed
92 93
       this.selectionBClass = new BehaviorSubject(false);
       this.selectionCClass = new BehaviorSubject(false);
Open Source Developer's avatar
trans  
Open Source Developer committed
94 95 96 97 98
       this.formGroup = this.fb.group({
         tomeas: ['', []],
         taxi: ['', []],
         specialit: ['', []],
       });
Open Source Developer's avatar
trans  
Open Source Developer committed
99
       
Open Source Developer's avatar
Open Source Developer committed
100 101 102 103 104 105
    }

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

    }


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

Open Source Developer's avatar
transf  
Open Source Developer committed
127
            }
Open Source Developer's avatar
trans  
Open Source Developer committed
128
            else if (txop.value === "2")
Open Source Developer's avatar
transf  
Open Source Developer committed
129
            {
Open Source Developer's avatar
trans  
Open Source Developer committed
130
                this.selectionBClass.next(true);
Open Source Developer's avatar
trans  
Open Source Developer committed
131 132
                this.selectionCClass.next(false);
                this.StudentSelected$ = new BehaviorSubject([{}]);
Open Source Developer's avatar
trans  
Open Source Developer committed
133
                this.StudentSelectedSub = this._hds.getSectorPerSchool(this.SchoolId).subscribe(this.StudentSelected$);
Open Source Developer's avatar
transf  
Open Source Developer committed
134
            }
Open Source Developer's avatar
trans  
Open Source Developer committed
135
            else if (txop.value === "3")
Open Source Developer's avatar
trans  
Open Source Developer committed
136
            {  
Open Source Developer's avatar
trans  
Open Source Developer committed
137 138
              this.selectionBClass.next(true);
              this.selectionCClass.next(true);              
Open Source Developer's avatar
trans  
Open Source Developer committed
139
              this.StudentSelected$ = new BehaviorSubject([{}]);
Open Source Developer's avatar
trans  
Open Source Developer committed
140
              this.StudentSelectedSub = this._hds.getSectorPerSchool(this.SchoolId).subscribe(this.StudentSelected$);
Open Source Developer's avatar
transf  
Open Source Developer committed
141
            }            
Open Source Developer's avatar
trans  
Open Source Developer committed
142 143
    }

Open Source Developer's avatar
Open Source Developer committed
144

Open Source Developer's avatar
trans  
Open Source Developer committed
145
    checkbclass(tmop,txop)
Open Source Developer's avatar
trans  
Open Source Developer committed
146
    {
Open Source Developer's avatar
trans  
Open Source Developer committed
147 148 149
        this.retrievedStudent.next(false);
        var sectorint = +this.formGroup.value.tomeas;
        console.log(sectorint,"tomeas");
Open Source Developer's avatar
trans  
Open Source Developer committed
150 151
        if (txop.value === "3")
        {
Open Source Developer's avatar
trans  
Open Source Developer committed
152
            this.StudentSelectedSpecial$ = new BehaviorSubject([{}]);
Open Source Developer's avatar
trans  
Open Source Developer committed
153 154 155 156
            this.StudentSelectedSpecialSub = this._hds.getSpecialityPerSchool(this.SchoolId, sectorint).subscribe(this.StudentSelectedSpecial$);        
        }
    }

Open Source Developer's avatar
trans  
Open Source Developer committed
157
    findstudent(txop)
Open Source Developer's avatar
trans  
Open Source Developer committed
158
    {
Open Source Developer's avatar
trans  
Open Source Developer committed
159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
            
            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;
            }       
            this.retrievedStudent.next(true);
            this.retrievedStudent = new BehaviorSubject(false);
            this.StudentInfoSub = this._hds.getStudentPerSchool(this.SchoolId, sectorint, this.currentclass).subscribe(this.StudentInfo$);        
         
         
Open Source Developer's avatar
trans  
Open Source Developer committed
178
        
Open Source Developer's avatar
trans  
Open Source Developer committed
179 180
    }

Open Source Developer's avatar
trans  
Open Source Developer committed
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203
updateCheckedOptions(id, event)
{

    let i = this.saved.length;

       
    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
204

Open Source Developer's avatar
trans  
Open Source Developer committed
205 206
confirmStudent()
{
Open Source Developer's avatar
trans  
Open Source Developer committed
207
   this._hds.saveConfirmStudents(this.saved);
Open Source Developer's avatar
trans  
Open Source Developer committed
208
}
Open Source Developer's avatar
trans  
Open Source Developer committed
209

Open Source Developer's avatar
trans  
Open Source Developer committed
210 211 212 213
checkcclass()
{
  this.retrievedStudent.next(false);
}
Open Source Developer's avatar
trans  
Open Source Developer committed
214

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