director-view.ts 8.21 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
              <div *ngFor="let StudentDetails$  of StudentInfo$ | async">
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>
Open Source Developer's avatar
Open Source Developer committed
57 58 59 60
                
                 <strong>Επιβεβαίωση Εγγραφής: </strong> 
                 <input #cb class="pull-right" type="checkbox" name="{{ StudentDetails$.id }}" (change)="updateCheckedOptions(StudentDetails$.id, $event)" >
                
Open Source Developer's avatar
trans  
Open Source Developer committed
61 62 63 64 65
             </div>
             </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 70
   `
})

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

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>;
Open Source Developer's avatar
trans  
Open Source Developer committed
81
    private SchoolId = 147 ;
Open Source Developer's avatar
trans  
Open Source Developer committed
82
    private currentclass: Number;
Open Source Developer's avatar
trans  
Open Source Developer committed
83
    private saved :Array<number> = new Array();
Open Source Developer's avatar
trans  
Open Source Developer committed
84

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

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

    ngOnDestroy()
    {
        if (this.StudentSelectedSub)
            this.StudentSelectedSub.unsubscribe();
Open Source Developer's avatar
trans  
Open Source Developer committed
109 110
        if (this.StudentSelectedSpecialSub)
            this.StudentSelectedSpecialSub.unsubscribe();
Open Source Developer's avatar
trans  
Open Source Developer committed
111 112 113 114
        if (this.selectionBClass)
            this.selectionBClass.unsubscribe();
        if (this.selectionCClass)
            this.selectionCClass.unsubscribe();  
Open Source Developer's avatar
Open Source Developer committed
115 116
         if (this.retrievedStudent)
            this.retrievedStudent.unsubscribe();
Open Source Developer's avatar
Open Source Developer committed
117
    }
Open Source Developer's avatar
tran  
Open Source Developer committed
118
 
Open Source Developer's avatar
Open Source Developer committed
119 120 121 122 123
    ngOnInit() {

    }


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

Open Source Developer's avatar
transf  
Open Source Developer committed
132
            }
Open Source Developer's avatar
trans  
Open Source Developer committed
133
            else if (txop.value === "2")
Open Source Developer's avatar
transf  
Open Source Developer committed
134
            {
Open Source Developer's avatar
trans  
Open Source Developer committed
135
                this.selectionBClass.next(true);
Open Source Developer's avatar
trans  
Open Source Developer committed
136 137
                this.selectionCClass.next(false);
                this.StudentSelected$ = new BehaviorSubject([{}]);
Open Source Developer's avatar
trans  
Open Source Developer committed
138
                this.StudentSelectedSub = this._hds.getSectorPerSchool(this.SchoolId).subscribe(this.StudentSelected$);
Open Source Developer's avatar
transf  
Open Source Developer committed
139
            }
Open Source Developer's avatar
trans  
Open Source Developer committed
140
            else if (txop.value === "3")
Open Source Developer's avatar
trans  
Open Source Developer committed
141
            {  
Open Source Developer's avatar
Open Source Developer committed
142 143 144 145 146 147 148 149
              var sectorint = +this.formGroup.value.tomeas;
              console.log(sectorint,"test");
              if (this.formGroup.value.tomeas != '')
              {
                  var sectorint = +this.formGroup.value.tomeas;
                  this.StudentSelectedSpecial$ = new BehaviorSubject([{}]);
                  this.StudentSelectedSpecialSub = this._hds.getSpecialityPerSchool(this.SchoolId, sectorint).subscribe(this.StudentSelectedSpecial$);        
              }
Open Source Developer's avatar
trans  
Open Source Developer committed
150 151
              this.selectionBClass.next(true);
              this.selectionCClass.next(true);              
Open Source Developer's avatar
trans  
Open Source Developer committed
152
              this.StudentSelected$ = new BehaviorSubject([{}]);
Open Source Developer's avatar
trans  
Open Source Developer committed
153
              this.StudentSelectedSub = this._hds.getSectorPerSchool(this.SchoolId).subscribe(this.StudentSelected$);
Open Source Developer's avatar
transf  
Open Source Developer committed
154
            }            
Open Source Developer's avatar
trans  
Open Source Developer committed
155 156
    }

Open Source Developer's avatar
Open Source Developer committed
157

Open Source Developer's avatar
trans  
Open Source Developer committed
158
    checkbclass(tmop,txop)
Open Source Developer's avatar
trans  
Open Source Developer committed
159
    {
Open Source Developer's avatar
trans  
Open Source Developer committed
160 161 162
        this.retrievedStudent.next(false);
        var sectorint = +this.formGroup.value.tomeas;
        console.log(sectorint,"tomeas");
Open Source Developer's avatar
trans  
Open Source Developer committed
163 164
        if (txop.value === "3")
        {
Open Source Developer's avatar
trans  
Open Source Developer committed
165
            this.StudentSelectedSpecial$ = new BehaviorSubject([{}]);
Open Source Developer's avatar
trans  
Open Source Developer committed
166 167 168 169
            this.StudentSelectedSpecialSub = this._hds.getSpecialityPerSchool(this.SchoolId, sectorint).subscribe(this.StudentSelectedSpecial$);        
        }
    }

Open Source Developer's avatar
trans  
Open Source Developer committed
170
    findstudent(txop)
Open Source Developer's avatar
trans  
Open Source Developer committed
171
    {
Open Source Developer's avatar
trans  
Open Source Developer committed
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
            
            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);
Open Source Developer's avatar
Open Source Developer committed
187
            this.StudentInfo$ = new BehaviorSubject(false);
Open Source Developer's avatar
trans  
Open Source Developer committed
188 189 190
            this.StudentInfoSub = this._hds.getStudentPerSchool(this.SchoolId, sectorint, this.currentclass).subscribe(this.StudentInfo$);        
         
         
Open Source Developer's avatar
trans  
Open Source Developer committed
191
        
Open Source Developer's avatar
trans  
Open Source Developer committed
192 193
    }

Open Source Developer's avatar
trans  
Open Source Developer committed
194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216
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
217

Open Source Developer's avatar
trans  
Open Source Developer committed
218 219
confirmStudent()
{
Open Source Developer's avatar
trans  
Open Source Developer committed
220
   this._hds.saveConfirmStudents(this.saved);
Open Source Developer's avatar
trans  
Open Source Developer committed
221
}
Open Source Developer's avatar
trans  
Open Source Developer committed
222

Open Source Developer's avatar
trans  
Open Source Developer committed
223 224 225 226
checkcclass()
{
  this.retrievedStudent.next(false);
}
Open Source Developer's avatar
trans  
Open Source Developer committed
227

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