Projekt

Obecné

Profil

Stáhnout (2.67 KB) Statistiky
| Větev: | Tag: | Revize:
1
import { Component, OnInit } from '@angular/core';
2
import { UserToApprove } from '../../user-approval/user-to-approve.model';
3
import { DaysOff } from '../../shared/days-off.model';
4
import { OffDayType } from '../../shared/off-day-type';
5
import { MatDialog } from '@angular/material';
6
import { AddDaysOffDialogComponent } from '../../add-days-off-dialog/add-days-off-dialog.component';
7

    
8
@Component({
9
  selector: 'app-employer-dashboard',
10
  templateUrl: './employer-dashboard.component.html',
11
  styleUrls: ['./employer-dashboard.component.sass']
12
})
13
export class EmployerDashboardComponent implements OnInit {
14

    
15
  usersToApprove: UserToApprove[] = [
16
    { date: new Date(), email: 'kek@kek.cz', name: 'Václav Jirák' },
17
    { date: new Date(), email: 'kuadas@kek.cz', name: 'Věnceslav Kárij' }
18
  ];
19

    
20
  daysOffToApprove: DaysOff[] = [
21
    { username: 'Václav Jirák', dateFrom: new Date(2019, 10, 13), dateTo: new Date(), type: OffDayType.Sickday },
22
    { username: 'Václav Jirák', dateFrom: new Date(2019, 10, 1), dateTo: new Date(), type: OffDayType.ExtraVacation },
23
  ];
24

    
25
  daysOff: DaysOff[] = [
26
    {
27
      username: '',
28
      dateFrom: new Date(2019, 5, 5),
29
      dateTo: new Date(2019, 5, 6),
30
      type: OffDayType.ExtraVacation
31
    },
32
    {
33
      username: '',
34
      dateFrom: new Date(2019, 5, 8),
35
      dateTo: new Date(2019, 5, 8),
36
      type: OffDayType.Sickday
37
    },
38
    {
39
      username: '',
40
      dateFrom: new Date(2019, 3, 8),
41
      dateTo: new Date(2019, 3, 9),
42
      type: OffDayType.Sickday
43
    },
44
  ];
45

    
46
  oncomingDaysOff: DaysOff[] = [];
47

    
48
  constructor(public dialog: MatDialog) { }
49

    
50
  ngOnInit() {
51
    this.oncomingDaysOff = this.calculateComingDaysOff();
52
  }
53

    
54
  onDateSelect( date: Date ) {
55
    this.dialog.open(AddDaysOffDialogComponent, {
56
      data: {
57
        // TODO
58
        foo: 'bar'
59
      }
60
    });
61
  }
62

    
63
  userApproved( user: UserToApprove, approved: boolean ) {
64
    console.log(user.name + ' - approved: ' + approved);
65
    this.usersToApprove.splice(
66
      this.usersToApprove.indexOf(user), 1
67
    );
68
  }
69

    
70
  daysOffApproved(daysOff: DaysOff, approved: boolean ) {
71
    console.log(daysOff.username + ', ' + approved);
72
    this.daysOffToApprove.splice(
73
      this.daysOffToApprove.indexOf(daysOff), 1
74
    );
75
  }
76

    
77
  daysOffRemoved(daysOff: DaysOff) {
78
    this.daysOff.splice(
79
      this.daysOff.indexOf(daysOff), 1
80
    );
81
    this.oncomingDaysOff.splice(
82
      this.oncomingDaysOff.indexOf(daysOff), 1
83
    );
84
  }
85

    
86
  private calculateComingDaysOff(): DaysOff[] {
87
    let oncomingDaysOff: DaysOff[] = [];
88

    
89
    const today = new Date();
90
    this.daysOff.forEach((dayOff) => {
91
      if (dayOff.dateTo >= today) {
92
        oncomingDaysOff.push(dayOff);
93
      }
94
    });
95

    
96
    return oncomingDaysOff;
97
  }
98
}
(3-3/4)