director-view.ts 26.7 KB
Newer Older
1
import { Component, OnDestroy, OnInit } from "@angular/core";
Open Source Developer's avatar
Open Source Developer committed
2
import { Injectable } from "@angular/core";
3
import { ActivatedRoute, Router } from "@angular/router";
4
import { BehaviorSubject, Subscription } from "rxjs/Rx";
5
6
7

import { HelperDataService } from "../../services/helper-data-service";

Open Source Developer's avatar
Open Source Developer committed
8
@Component({
9
    selector: "director-classcapacity",
Open Source Developer's avatar
Open Source Developer committed
10
    template: `
Open Source Developer's avatar
delete    
Open Source Developer committed
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50


      <div id="applicationDeleteConfirm" (onHidden)="onHidden()" class="modal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
      <div class="modal-dialog modal-lg">
        <div class="modal-content">
          <div class="modal-header modal-header-danger">
              <h3 class="modal-title pull-left"><i class="fa fa-close"></i>&nbsp;&nbsp;Διαγραφή Δήλωσης Προτίμησης ΕΠΑΛ</h3>
            <button type="button" class="close pull-right" aria-label="Close" (click)="hideModal()">
              <span aria-hidden="true"><i class="fa fa-times"></i></span>
            </button>
          </div>
          <div class="modal-body">
              <p>Επιλέξατε να διαγράψετε τη δήλωση προτίμησης ΕΠΑΛ. Παρακαλούμε επιλέξτε Επιβεβαίωση</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default pull-left" data-dismiss="modal" (click)="hideConfirmModal()">Ακύρωση</button>
            <button type="button" class="btn btn-default pull-left" data-dismiss="modal" (click)="deleteApplicationDo()">Επιβεβαίωση</button>
          </div>
        </div>
      </div>
    </div>

    <div id="applicationDeleteError" (onHidden)="onHidden()" class="modal" tabindex="-1" role="dialog" aria-hidden="true" data-backdrop="static" data-keyboard="false">
      <div class="modal-dialog modal-lg">
        <div class="modal-content">
          <div class="modal-header modal-header-danger">
              <h3 class="modal-title pull-left"><i class="fa fa-ban"></i>&nbsp;&nbsp;Αποτυχία Διαγραφής Δήλωσης Προτίμησης ΕΠΑΛ</h3>
            <button type="button" class="close pull-right" aria-label="Close" (click)="hideModal()">
              <span aria-hidden="true"><i class="fa fa-times"></i></span>
            </button>
          </div>
          <div class="modal-body">
              <p>Η δήλωσή δεν διαγράφηκε. Δεν μπορείτε να διαγράψετε τη δήλωσή μαθητή εαν έχετε κάνει την επιβεβαίωση εγγραφής.</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default pull-right" data-dismiss="modal" (click)="hideErrorModal()">Κλείσιμο</button>
          </div>
        </div>
      </div>
    </div>
Open Source Developer's avatar
Open Source Developer committed
51
    <div class = "loading" *ngIf="(showLoader | async) === true"></div>
52
    <div style="min-height: 500px;">
53
    <form>
Open Source Developer's avatar
bugs    
Open Source Developer committed
54
55
       <p style="margin-top: 20px; line-height: 2em;"> H παρακάτω λίστα διαμορφώνει τη δυναμική του σχολείου σας σε τμήματα με κριτήριο τον αριθμό των διαθεσίμων αιθουσών.  </p>
       <p style="margin-top: 20px; line-height: 2em;"> Παρακαλείστε να καταγράψετε τον αριθμό των τμημάτων ανά τάξη, τομέα και ειδικότητα.  </p>
56

57
58
59
      <div class="row">
         <div class="col-md-10" style="font-weight: bold;"> Τα τμήματα του σχολείου σας.</div>
         <div class="col-md-2" style="font-weight: bold;"> <span class="pull-right" style="text-align: right; padding-right: 2px;">Αριθμός Μαθητών</span></div>
Open Source Developer's avatar
Open Source Developer committed
60
      </div>
Open Source Developer's avatar
Open Source Developer committed
61
      <div *ngFor="let CoursesPerSchools$  of CoursesPerSchool$ | async; let i=index; let isOdd=odd; let isEven=even" >
62
63
64
                <li class="list-group-item isclickable" (click)="setActive(i)"
                (click)="findstudent(CoursesPerSchools$.class, CoursesPerSchools$.newsector, CoursesPerSchools$.newspecialit)"
                [class.changelistcolor]= "CoursesPerSchools$.size < CoursesPerSchools$.limitdown"
Open Source Developer's avatar
Open Source Developer committed
65
                [class.oddout]="isOdd" [class.evenout]="isEven"  [class.selectedout]="courseActive === i" >
66
67
68
69
                <div class="row"  style="line-height: 2em;">
                  <div class="col-md-10" style="font-weight: bold;" >{{CoursesPerSchools$.taxi}}</div>
                  <div class="col-md-2" style="font-weight: bold;" ><span class="pull-right" style="text-align: right; padding-right: 2px;">{{CoursesPerSchools$.size}}</span></div>
                </div>
Open Source Developer's avatar
Open Source Developer committed
70
                </li>
71

Open Source Developer's avatar
Open Source Developer committed
72
               <div [hidden]="courseActive !== i" *ngIf="(retrievedStudent | async)">
73
74
                 <div *ngFor="let StudentDetails$  of StudentInfo$ | async; let j=index; let isOdd=odd; let isEven=even" class="row list-group-item isclickable"
                 [class.selectedappout]="StudentActive === j"
Open Source Developer's avatar
Open Source Developer committed
75
                 [class.confirmed]="StudentDetails$.checkstatus === '1'"
76
                 [class.notconfirmed]="StudentDetails$.checkstatus === '0'"
Open Source Developer's avatar
Open Source Developer committed
77
78
                 [class.notchecked]="(StudentDetails$.checkstatus !== '1') && (StudentDetails$.checkstatus !== '0')"
                 [class.oddout]="isOdd" [class.evenout]="isEven" style="margin: 0px 2px 0px 2px;">
79
80
                    <div class="col-md-5" style="font-size: 0.8em; font-weight: bold;" (click) ="setActiveStudent(j)" >{{StudentDetails$.studentsurname}}</div>
                    <div class="col-md-5" style="font-size: 0.8em; font-weight: bold;" (click) ="setActiveStudent(j)">{{StudentDetails$.name}}</div>
Open Source Developer's avatar
delete    
Open Source Developer committed
81
82
                    <div class="col-md-2" style="font-size: 1.5em; font-weight: bold;"><i class="fa fa-trash isclickable" (click)="deleteApplication(StudentDetails$.id, CoursesPerSchools$.class, CoursesPerSchools$.newsector, CoursesPerSchools$.newspecialit)"></i></div>

83
                    <div [hidden]="StudentActive !== j" class="col-md-2 pull-right" style="color: black;" > <span aria-hidden="true"><button type="button" class="btn-primary btn-sm pull-right" (click) ="setActiveStudentnew(j)">Κλείσιμο</button></span>  </div>
Open Source Developer's avatar
paging    
Open Source Developer committed
84

Open Source Developer's avatar
Open Source Developer committed
85
86
                    <div style="width: 100%; color: #000000;">
                    <div [hidden]="StudentActive !== j"  style="margin: 20px 10px 10px 10px;">
87

88
                     <p style="margin-top: 10px; margin-bottom: 5px; line-height: 2em;"> Παρακαλούμε, αφού γίνει ο έλεγχος των στοιχείων του μαθητή επιβεβαιώστε τη δυνατότητα εγγραφής του.</p>
89
90

                     <div class="row" style="margin-bottom: 20px;">
91
92
                     <div class="col-md-8">&nbsp;</div>
                     <div class="col-md-4">
Open Source Developer's avatar
trans    
Open Source Developer committed
93
                      <strong><label>Επιβεβαίωση Εγγραφής:</label> </strong>
94
                      <select class="form-control pull-right" #cb name="{{StudentDetails$.id}}" (change)="confirmStudent(StudentDetails$.id, cb, j)">
95
96
                          <option value="1" [selected]="StudentDetails$.checkstatus === '1' ">Ναι</option>
                          <option value="2" [selected]="StudentDetails$.checkstatus === '0' ">Όχι</option>
97
                          <option value="3" [selected]="StudentDetails$.checkstatus != '0' && StudentDetails$.checkstatus != '1'">Δεν ελέγχθηκε</option>
Open Source Developer's avatar
trans    
Open Source Developer committed
98
                      </select>
99
100
101
                      </div>
                     </div>

102
103
104
105
106
107
                     <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                         <div class="col-md-3" style="font-size: 0.8em;">Αριθμός Δήλωσης Προτίμησης ΕΠΑΛ</div>
                         <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.id}}</div>
                         <div class="col-md-3" style="font-size: 0.8em;">Υποβλήθηκε</div>
                         <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.created}}</div>
                     </div>
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129

                       <div class="row evenin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                           <div class="col-md-12" style="font-size: 1em; font-weight: bold; text-align: center;">Στοιχεία αιτούμενου</div>
                       </div>
                       <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                           <div class="col-md-3" style="font-size: 0.8em;">Όνομα</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.guardian_name}}</div>
                           <div class="col-md-3" style="font-size: 0.8em;">Επώνυμο</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.guardian_surname}}</div>
                       </div>
                       <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                           <div class="col-md-3" style="font-size: 0.8em;">Όνομα πατέρα</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{ StudentDetails$.guardian_fathername }}</div>
                           <div class="col-md-3" style="font-size: 0.8em;">Όνομα μητέρας</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{ StudentDetails$.guardian_mothername }}</div>
                       </div>
                       <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                           <div class="col-md-3" style="font-size: 0.8em;">Διεύθυνση</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.regionaddress}}</div>
                           <div class="col-md-3" style="font-size: 0.8em;">ΤΚ - Πόλη</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.regiontk}} - {{StudentDetails$.regionarea}}</div>
                       </div>
130
131
132
133

                       <div class="row evenin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                           <div class="col-md-12" style="font-size: 1em; font-weight: bold; text-align: center;">Στοιχεία μαθητή</div>
                       </div>
134
135
136
137
138
139
140
141
142
143
144
145
146
147
                       <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                           <div class="col-md-3" style="font-size: 0.8em;">Όνομα μαθητή</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.name}}</div>
                           <div class="col-md-3" style="font-size: 0.8em;">Επώνυμο μαθητή</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.studentsurname}}</div>
                       </div>
                       <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                           <div class="col-md-3" style="font-size: 0.8em;">Όνομα Πατέρα</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.fatherfirstname}}</div>
                           <div class="col-md-3" style="font-size: 0.8em;">Όνομα Μητέρας</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.motherfirstname}}</div>
                       </div>
                       <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                           <div class="col-md-3" style="font-size: 0.8em;">Ημερομηνία Γέννησης</div>
148
149
150
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.birthdate}}</div>
                           <div class="col-md-3" style="font-size: 0.8em;">Τηλέφωνο Επικοινωνίας</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.telnum}}</div>
151
152
153
154
155
                       </div>

                       <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                           <div class="col-md-3" style="font-size: 0.8em;">Σχολείο τελευταίας φοίτησης</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.lastschool_schoolname}}</div>
156
157
                           <div class="col-md-3" style="font-size: 0.8em;">Σχολικό έτος τελευταίας φοίτησης</div>
                           <div class="col-md-3" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.lastschool_schoolyear}}</div>
158
                       </div>
159
                       <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
160
                           <div class="col-md-3" style="font-size: 0.8em;">Τάξη τελευταίας φοίτησης</div>
161
162
163
164
165
166
167
168
169
170
                           <div *ngIf="StudentDetails$.lastschool_class === '1'" class="col-md-9" style="font-size: 0.8em; font-weight: bold">Α</div>
                           <div *ngIf="StudentDetails$.lastschool_class === '2'" class="col-md-9" style="font-size: 0.8em; font-weight: bold">Β</div>
                           <div *ngIf="StudentDetails$.lastschool_class === '3'" class="col-md-9" style="font-size: 0.8em; font-weight: bold">Γ</div>
                           <div *ngIf="StudentDetails$.lastschool_class === '4'" class="col-md-9" style="font-size: 0.8em; font-weight: bold">Δ</div>
                       </div>
                       <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
                           <div class="col-md-3" style="font-size: 0.8em;">Δήλωση από:</div>
                           <div class="col-md-9" style="font-size: 0.8em; font-weight: bold">{{ StudentDetails$.relationtostudent }}</div>
                       </div>
                       <div class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
171
                           <div class="col-md-3" style="font-size: 0.8em;">Τάξη φοίτησης για το νέο σχολικό έτος</div>
172
173
174
175
                           <div *ngIf="StudentDetails$.currentclass === '1'" class="col-md-9" style="font-size: 0.8em; font-weight: bold">Α</div>
                           <div *ngIf="StudentDetails$.currentclass === '2'" class="col-md-9" style="font-size: 0.8em; font-weight: bold">Β</div>
                           <div *ngIf="StudentDetails$.currentclass === '3'" class="col-md-9" style="font-size: 0.8em; font-weight: bold">Γ</div>
                           <div *ngIf="StudentDetails$.currentclass === '4'" class="col-md-9" style="font-size: 0.8em; font-weight: bold">Δ</div>
176
177
                       </div>
                       <div *ngIf="StudentDetails$.currentclass === '2'" class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
178
179
                           <div class="col-md-3" style="font-size: 0.8em;">Τομέας φοίτησης για το νέο σχολικό έτος</div>
                           <div class="col-md-9" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.currentsector}}</div>
180
181
                       </div>
                       <div *ngIf="StudentDetails$.currentclass === '3' || StudentDetails$.currentclass === '4'" class="row oddin" style="margin: 0px 2px 0px 2px; line-height: 2em;">
182
183
                           <div class="col-md-3" style="font-size: 0.8em;">Ειδικότητα φοίτησης για το νέο σχολικό έτος</div>
                           <div class="col-md-9" style="font-size: 0.8em; font-weight: bold">{{StudentDetails$.currentcourse}}</div>
184
                       </div>
Open Source Developer's avatar
trans    
Open Source Developer committed
185

Open Source Developer's avatar
trans    
Open Source Developer committed
186
                 </div>
187
                 </div>
188

189

Open Source Developer's avatar
Open Source Developer committed
190
191
192
193
194
195
196
197
198
199
200
                 </div>
               </div>
       </div>
      </form>
      </div>


  <div id="checksaved" (onHidden)="onHidden('#checksaved')"
    class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
      <div class="modal-dialog modal-lg">
        <div class="modal-content">
Open Source Developer's avatar
others    
Open Source Developer committed
201
          <div class="modal-header modal-header-success">
Open Source Developer's avatar
Open Source Developer committed
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
            <h3 class="modal-title pull-left"><i class="fa fa-check-square-o"></i>&nbsp;&nbsp;Η επιλογή σας έχει αποθηκευτεί</h3>
            <button type="button" class="close pull-right" aria-label="Close" (click)="hideModal('#checksaved')">
              <span aria-hidden="true"><i class="fa fa-times"></i></span>
            </button>
          </div>
          <div class="modal-body">
            <p>Η επιλογή σας έχει αποθηκευτεί</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default pull-left" data-dismiss="modal">Κλείσιμο</button>
          </div>
        </div>
      </div>
    </div>


<div id="dangermodal" (onHidden)="onHidden('#dangermodal')"
    class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
      <div class="modal-dialog modal-lg">
        <div class="modal-content">
          <div class="modal-header modal-header-danger">
Open Source Developer's avatar
others    
Open Source Developer committed
223
            <h3 class="modal-title pull-left"><i class="fa fa-ban"></i>&nbsp;&nbsp;Η επιλογή σας δεν έχει αποθηκευτεί</h3>
Open Source Developer's avatar
Open Source Developer committed
224
225
226
227
228
229
230
231
232
233
234
235
236
237
            <button type="button" class="close pull-right" aria-label="Close" (click)="hideModal('#dangermodal')">
              <span aria-hidden="true"><i class="fa fa-times"></i></span>
            </button>
          </div>
          <div class="modal-body">
            <p>Παρακαλώ προσπαθήστε ξανα!</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default pull-left" data-dismiss="modal">Κλείσιμο</button>
          </div>
        </div>
      </div>
    </div>

238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
    <div id="errorselection" (onHidden)="onHidden('#errorselection')" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
      <div class="modal-dialog modal-lg">
        <div class="modal-content">
          <div class="modal-header modal-header-danger">
            <h3 class="modal-title pull-left"><i class="fa fa-ban"></i>&nbsp;&nbsp;Προέκυψε σφάλμα</h3>
            <button type="button" class="close pull-right" aria-label="Close" (click)="hideModal('#errorselection')">
              <span aria-hidden="true"><i class="fa fa-times"></i></span>
            </button>
          </div>
          <div class="modal-body">
            <p>Προέκυψε σφάλμα κατά τη διαδικασία άντλησης των στοιχείων δήλωσης προτίμησης στο συγκεκριμένο τμήμα του σχολείου σας.</p>
            <p>Παρακαλώ προσπαθείστε ξανά αργότερα.</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default pull-left" data-dismiss="modal">Κλείσιμο</button>
          </div>
        </div>
      </div>
    </div>
Open Source Developer's avatar
Open Source Developer committed
257

258
    <div id="emptyselection" (onHidden)="onHidden('#emptyselection')" class="modal fade" tabindex="-1" role="dialog" aria-hidden="true">
Open Source Developer's avatar
Open Source Developer committed
259
260
261
      <div class="modal-dialog modal-lg">
        <div class="modal-content">
          <div class="modal-header modal-header-danger">
Open Source Developer's avatar
others    
Open Source Developer committed
262
            <h3 class="modal-title pull-left"><i class="fa fa-ban"></i>&nbsp;&nbsp;Δεν υπάρχουν μαθητές</h3>
Open Source Developer's avatar
Open Source Developer committed
263
264
265
266
267
268
269
270
271
272
273
274
275
            <button type="button" class="close pull-right" aria-label="Close" (click)="hideModal('#emptyselection')">
              <span aria-hidden="true"><i class="fa fa-times"></i></span>
            </button>
          </div>
          <div class="modal-body">
            <p>Δεν υπάρχουν μαθητές με δήλωση προτίμησης το συγκεκριμένο τμήμα του σχολείου σας!</p>
          </div>
          <div class="modal-footer">
            <button type="button" class="btn btn-default pull-left" data-dismiss="modal">Κλείσιμο</button>
          </div>
        </div>
      </div>
    </div>
276
    `
Open Source Developer's avatar
Open Source Developer committed
277
278
})

Open Source Developer's avatar
Open Source Developer committed
279
@Injectable() export default class DirectorClassCapacity implements OnInit, OnDestroy {
Open Source Developer's avatar
Open Source Developer committed
280

Open Source Developer's avatar
Open Source Developer committed
281
282
    private CoursesPerSchool$: BehaviorSubject<any>;
    private CoursesPerSchoolSub: Subscription;
Open Source Developer's avatar
trans    
Open Source Developer committed
283
284
    private StudentInfo$: BehaviorSubject<any>;
    private StudentInfoSub: Subscription;
Open Source Developer's avatar
Open Source Developer committed
285
    private retrievedStudent: BehaviorSubject<boolean>;
Open Source Developer's avatar
Open Source Developer committed
286
287
    private SavedStudentsSub: Subscription;
    private SavedStudents$: BehaviorSubject<any>;
Open Source Developer's avatar
Open Source Developer committed
288
289
290
291
    private courseActive = <number>-1;
    private StudentActive = <number>-1;
    private showLoader: BehaviorSubject<boolean>;
    private opened;
Open Source Developer's avatar
delete    
Open Source Developer committed
292
    private applicationId = <number>0;
293
    private taxi = <number>0;
Open Source Developer's avatar
delete    
Open Source Developer committed
294
    private sector = <number>0;
295
    private special = <number>0;
296

297
    constructor(
298
299
        private _hds: HelperDataService,
        private activatedRoute: ActivatedRoute,
300
301
        private router: Router
    ) {
Open Source Developer's avatar
Open Source Developer committed
302
303
304
305
306
307
        this.CoursesPerSchool$ = new BehaviorSubject([{}]);
        this.showLoader = new BehaviorSubject(false);
        this.StudentInfo$ = new BehaviorSubject([{}]);
        this.retrievedStudent = new BehaviorSubject(false);
        this.SavedStudents$ = new BehaviorSubject({});
        this.opened = false;
Open Source Developer's avatar
Open Source Developer committed
308
    }
309

Open Source Developer's avatar
delete    
Open Source Developer committed
310
    public showConfirmModal(): void {
311
        (<any>$("#applicationDeleteConfirm")).modal("show");
Open Source Developer's avatar
delete    
Open Source Developer committed
312
313
314
    }

    public showErrorModal(): void {
315
        (<any>$("#applicationDeleteError")).modal("show");
Open Source Developer's avatar
delete    
Open Source Developer committed
316
317
318
    }

    public hideConfirmModal(): void {
319
        (<any>$("#applicationDeleteConfirm")).modal("hide");
Open Source Developer's avatar
delete    
Open Source Developer committed
320
321
    }
    public hideErrorModal(): void {
322
        (<any>$("#applicationDeleteError")).modal("hide");
Open Source Developer's avatar
delete    
Open Source Developer committed
323
324
    }

325
    public showModal(popupMsgId): void {
326
        (<any>$(popupMsgId)).modal("show");
Open Source Developer's avatar
Open Source Developer committed
327
    }
Open Source Developer's avatar
trans    
Open Source Developer committed
328

329
    public hideModal(popupMsgId): void {
330

331
        (<any>$(popupMsgId)).modal("hide");
Open Source Developer's avatar
Open Source Developer committed
332
    }
Open Source Developer's avatar
Open Source Developer committed
333

334
    public onHidden(popupMsgId): void {
335

336
    }
Open Source Developer's avatar
trans    
Open Source Developer committed
337

Open Source Developer's avatar
Open Source Developer committed
338
    ngOnDestroy() {
339
340
        (<any>$("#applicationDeleteConfirm")).remove();
        (<any>$("#applicationDeleteError")).remove();
Open Source Developer's avatar
Open Source Developer committed
341
    }
342

Open Source Developer's avatar
Open Source Developer committed
343
    ngOnInit() {
344
345
346
        (<any>$("#checksaved")).appendTo("body");
        (<any>$("#dangermodal")).appendTo("body");
        (<any>$("#emptyselection")).appendTo("body");
347
        (<any>$("#errorselection")).appendTo("body");
348
349
        (<any>$("#applicationDeleteConfirm")).appendTo("body");
        (<any>$("#applicationDeleteError")).appendTo("body");
350
351
352
353
354
355
356
357
358
        this.showLoader.next(true);
        this.CoursesPerSchoolSub = this._hds.FindCoursesPerSchool().subscribe(x => {
            this.CoursesPerSchool$.next(x);
            this.showLoader.next(false);
        },
            error => {
                this.CoursesPerSchool$.next([{}]);
                console.log("Error Getting courses perSchool");
                this.showLoader.next(false);
359
            });
Open Source Developer's avatar
Open Source Developer committed
360
    }
361

362
363
364
365
366
367
368
369
370
    findstudent(taxi, sector, special) {
        this.showLoader.next(true);
        this.retrievedStudent.next(false);
        this.StudentInfoSub = this._hds.getStudentPerSchool(taxi, sector, special)
            .subscribe(data => {
                this.StudentInfo$.next(data);
                this.retrievedStudent.next(true);
                this.showLoader.next(false);
            },
Open Source Developer's avatar
Open Source Developer committed
371
            error => {
372
373
374
                this.StudentInfo$.next([{}]);
                console.log("Error Getting Students");
                this.showLoader.next(false);
375
376
377
378
379
                if (error.status === 404) {
                    this.showModal("#emptyselection");
                } else {
                    this.showModal("#errorselection");
                }
380
            });
381

Open Source Developer's avatar
trans    
Open Source Developer committed
382
383
    }

384
385
    setActive(ind) {
        this.StudentActive = -1;
386
        if (this.courseActive === ind) {
387
388
389
            ind = -1;
        }
        this.courseActive = ind;
Open Source Developer's avatar
Open Source Developer committed
390
    }
391

392
393
    setActiveStudent(ind) {
        this.opened = true;
394
        if (this.StudentActive === ind) {
395
396
397
398
            ind = -1;
        }
        this.StudentActive = ind;
    }
399

400
401
    setActiveStudentnew(ind) {
        this.opened = false;
402
        if (this.StudentActive === ind) {
403
404
405
406
            ind = -1;
        }
        this.StudentActive = ind;
    }
407

408
    confirmStudent(student, cb, ind) {
409
410
411
412
413
414
        let rtype;
        if (cb.value === 1)
            rtype = "1";
        if (cb.value === 2)
            rtype = "0";
        if (cb.value === 3)
415
            rtype = null;
416
        let type = cb.value;
Open Source Developer's avatar
Open Source Developer committed
417
        this.showLoader.next(true);
Open Source Developer's avatar
trans    
Open Source Developer committed
418

419
420
        let std = this.StudentInfo$.getValue();
        std[ind].checkstatus = rtype;
Open Source Developer's avatar
Open Source Developer committed
421

Open Source Developer's avatar
Open Source Developer committed
422
        this.SavedStudentsSub = this._hds.saveConfirmStudents(student, type).subscribe(data => {
Open Source Developer's avatar
Open Source Developer committed
423
            this.SavedStudents$.next(data);
Open Source Developer's avatar
Open Source Developer committed
424
425
            this.StudentInfo$.next(std);
            this.showLoader.next(false);
426
            this.showModal("#checksaved");
Open Source Developer's avatar
Open Source Developer committed
427
428
429
430
        },
            error => {
                this.SavedStudents$.next([{}]);
                console.log("Error saving Students");
Open Source Developer's avatar
Open Source Developer committed
431
432
                this.showLoader.next(false);
                this.showModal("#dangermodal");
433
            });
Open Source Developer's avatar
paging    
Open Source Developer committed
434
    }
435

436
437
    deleteApplication(appId: number, taxi, sector, special): void {

Open Source Developer's avatar
delete    
Open Source Developer committed
438
439
440
441
442
443
444
        this.applicationId = appId;
        this.taxi = taxi;
        this.sector = sector;
        this.special = special;
        this.showConfirmModal();
    }

445
446
    deleteApplicationDo(): void {

Open Source Developer's avatar
delete    
Open Source Developer committed
447
448
449
        this.hideConfirmModal();
        this.showLoader.next(true);
        this._hds.deleteApplicationforDirector(this.applicationId).then(data => {
450
451
            this.StudentInfoSub.unsubscribe();
            this.CoursesPerSchoolSub.unsubscribe();
Open Source Developer's avatar
delete    
Open Source Developer committed
452
            this.showLoader.next(false);
453
            this.StudentActive = -1;
Open Source Developer's avatar
delete    
Open Source Developer committed
454

455
456
            this.CoursesPerSchoolSub = this._hds.FindCoursesPerSchool().subscribe(x => {
                this.CoursesPerSchool$.next(x);
Open Source Developer's avatar
delete    
Open Source Developer committed
457
                this.showLoader.next(false);
Open Source Developer's avatar
delete    
Open Source Developer committed
458
459

            },
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
                error => {
                    this.CoursesPerSchool$.next([{}]);
                    console.log("Error Getting courses perSchool");
                    this.showLoader.next(false);
                });
            this.StudentInfoSub = this._hds.getStudentPerSchool(this.taxi, this.sector, this.special)
                .subscribe(data => {
                    this.StudentInfo$.next(data);
                    this.retrievedStudent.next(true);
                    this.showLoader.next(false);
                },
                error => {
                    this.StudentInfo$.next([{}]);
                    console.log("Error Getting Students");
                    this.showLoader.next(false);
475
476
477
478
479
                    if (error.status === 404) {
                        this.showModal("#emptyselection");
                    } else {
                        this.showModal("#errorselection");
                    }
480
                });
Open Source Developer's avatar
delete    
Open Source Developer committed
481
482
483
484
485
        }).catch(err => {
            this.showErrorModal();
            this.showLoader.next(false);
        });
    }
486
}