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
}