director-view.ts 6.95 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 33 34 35 36 37 38 39 40 41 42 43 44 45
  <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">
        <div *ngIf="(selectionBClass | async)"  >
            <select #tmop class="form-control" (change)="checkbclass(tmop,txoption,i)" formControlName="tomeas">
              <option *ngFor="let SectorSelection$  of StudentSelected$ | async; let i=index">    {{SectorSelection$.sector_id}} </option>
            </select>
        </div>
      </div>
      <div class="form-group">
      <div *ngIf="(selectionCClass | async)">
            <select #spop class="form-control" formControlName="specialit">
              <option *ngFor="let SpecialSelection$  of StudentSelectedSpecial$ | async; let i=index">    {{SpecialSelection$.specialty_id}} </option>
            </select>
       </div>     
      </div>
Open Source Developer's avatar
trans  
Open Source Developer committed
46
         
Open Source Developer's avatar
trans  
Open Source Developer committed
47

Open Source Developer's avatar
trans  
Open Source Developer committed
48
            
Open Source Developer's avatar
trans  
Open Source Developer committed
49
             
Open Source Developer's avatar
trans  
Open Source Developer committed
50
             <button type="button" class="btn-primary btn-sm pull-right" (click)="findstudent(tmop,txoption)">
Open Source Developer's avatar
trans  
Open Source Developer committed
51 52
                Αναζήτηση
             </button>
Open Source Developer's avatar
trans  
Open Source Developer committed
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
             <div *ngIf="StudentInfo$ != {} || (retrievedStudent | async)">
              <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
transf  
Open Source Developer committed
71
              
Open Source Developer's avatar
Open Source Developer committed
72 73 74 75 76
   `
})

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

Open Source Developer's avatar
trans  
Open Source Developer committed
77
    public formGroup: FormGroup;
Open Source Developer's avatar
Open Source Developer committed
78 79
    private StudentSelected$: BehaviorSubject<any>;
    private StudentSelectedSub: Subscription;
Open Source Developer's avatar
trans  
Open Source Developer committed
80 81
    private StudentInfo$: BehaviorSubject<any>;
    private StudentInfoSub: Subscription;
Open Source Developer's avatar
trans  
Open Source Developer committed
82 83
    private StudentSelectedSpecial$: BehaviorSubject<any>;
    private StudentSelectedSpecialSub: Subscription;
Open Source Developer's avatar
trans  
Open Source Developer committed
84
    private retrievedStudent: BehaviorSubject<boolean>;
Open Source Developer's avatar
trans  
Open Source Developer committed
85 86
    private selectionBClass: BehaviorSubject<boolean>;
    private selectionCClass: BehaviorSubject<boolean>;
Open Source Developer's avatar
trans  
Open Source Developer committed
87
    private SchoolId = 147 ;
Open Source Developer's avatar
trans  
Open Source Developer committed
88
    private saved :Array<number> = new Array();
Open Source Developer's avatar
trans  
Open Source Developer committed
89

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

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

    ngOnDestroy()
    {
        if (this.StudentSelectedSub)
            this.StudentSelectedSub.unsubscribe();
Open Source Developer's avatar
trans  
Open Source Developer committed
114 115
        if (this.StudentSelectedSpecialSub)
            this.StudentSelectedSpecialSub.unsubscribe();
Open Source Developer's avatar
trans  
Open Source Developer committed
116 117 118 119
        if (this.selectionBClass)
            this.selectionBClass.unsubscribe();
        if (this.selectionCClass)
            this.selectionCClass.unsubscribe();  
Open Source Developer's avatar
trans  
Open Source Developer committed
120

Open Source Developer's avatar
Open Source Developer committed
121 122

    }
Open Source Developer's avatar
tran  
Open Source Developer committed
123
 
Open Source Developer's avatar
Open Source Developer committed
124 125 126 127 128 129
    ngOnInit() {
     

    }


Open Source Developer's avatar
trans  
Open Source Developer committed
130
    verifyclass(txop)
Open Source Developer's avatar
trans  
Open Source Developer committed
131
    {
Open Source Developer's avatar
trans  
Open Source Developer committed
132
            console.log(txop.value,"aaaaa");
Open Source Developer's avatar
trans  
Open Source Developer committed
133
            if (txop.value === "1")
Open Source Developer's avatar
trans  
Open Source Developer committed
134 135 136
            {
                this.selectionBClass.next(false);
                this.selectionCClass.next(false);
Open Source Developer's avatar
transf  
Open Source Developer committed
137
            }
Open Source Developer's avatar
trans  
Open Source Developer committed
138
            else if (txop.value === "2")
Open Source Developer's avatar
transf  
Open Source Developer committed
139
            {
Open Source Developer's avatar
trans  
Open Source Developer committed
140
                console.log(this.SchoolId, "school_id");
Open Source Developer's avatar
trans  
Open Source Developer committed
141
                this.selectionBClass.next(true);
Open Source Developer's avatar
trans  
Open Source Developer committed
142
                this.StudentSelectedSub = this._hds.getSectorPerSchool(this.SchoolId).subscribe(this.StudentSelected$);
Open Source Developer's avatar
trans  
Open Source Developer committed
143
                
Open Source Developer's avatar
transf  
Open Source Developer committed
144
            }
Open Source Developer's avatar
trans  
Open Source Developer committed
145
            else if (txop.value === "3")
Open Source Developer's avatar
trans  
Open Source Developer committed
146 147 148 149
            {   
              this.selectionBClass.next(true);
              this.selectionCClass.next(true);              
              this.StudentSelectedSub = this._hds.getSectorPerSchool(this.SchoolId).subscribe(this.StudentSelected$);
Open Source Developer's avatar
transf  
Open Source Developer committed
150
            }            
Open Source Developer's avatar
trans  
Open Source Developer committed
151 152
    }

Open Source Developer's avatar
Open Source Developer committed
153

Open Source Developer's avatar
trans  
Open Source Developer committed
154
    checkbclass(tmop,txop,id)
Open Source Developer's avatar
trans  
Open Source Developer committed
155
    {
Open Source Developer's avatar
trans  
Open Source Developer committed
156 157 158 159


        console.log(id, "aaaaaaa!!!");
        var sectorint = +id ;
Open Source Developer's avatar
trans  
Open Source Developer committed
160 161 162 163 164 165
        if (txop.value === "3")
        {
            this.StudentSelectedSpecialSub = this._hds.getSpecialityPerSchool(this.SchoolId, sectorint).subscribe(this.StudentSelectedSpecial$);        
        }
    }

Open Source Developer's avatar
trans  
Open Source Developer committed
166
    findstudent(tmop,txop)
Open Source Developer's avatar
trans  
Open Source Developer committed
167
    {
Open Source Developer's avatar
trans  
Open Source Developer committed
168
       
Open Source Developer's avatar
trans  
Open Source Developer committed
169 170 171
            const [id, sector] = tmop.value.split(': ');
            var sectorint = +sector; 
            console.log(sectorint,"aaaaaa");
Open Source Developer's avatar
trans  
Open Source Developer committed
172 173
            this.StudentInfoSub = this._hds.getStudentPerSchool(this.SchoolId, sectorint).subscribe(this.StudentInfo$);        
            this.retrievedStudent.next(true);
Open Source Developer's avatar
trans  
Open Source Developer committed
174
        
Open Source Developer's avatar
trans  
Open Source Developer committed
175 176
    }

Open Source Developer's avatar
trans  
Open Source Developer committed
177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199
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
200

Open Source Developer's avatar
trans  
Open Source Developer committed
201 202
confirmStudent()
{
Open Source Developer's avatar
trans  
Open Source Developer committed
203
      
Open Source Developer's avatar
trans  
Open Source Developer committed
204 205
     this._hds.saveConfirmStudents(this.saved);
}
Open Source Developer's avatar
trans  
Open Source Developer committed
206 207


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