Projekt

Obecné

Profil

Stáhnout (2.65 KB) Statistiky
| Větev: | Tag: | Revize:
1 0d1b0550 Václav Jirák
import { Component, OnInit } from '@angular/core';
2 bdca9f6d Václav Jirák
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 0d1b0550 Václav Jirák
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 bdca9f6d Václav Jirák
  constructor(public dialog: MatDialog) { }
49 0d1b0550 Václav Jirák
50
  ngOnInit() {
51
    this.oncomingDaysOff = this.calculateComingDaysOff();
52
  }
53
54
  onDateSelect( date: Date ) {
55 bdca9f6d Václav Jirák
    this.dialog.open(AddDaysOffDialogComponent, {
56
      data: {
57 eeebda1e Václav Jirák
        fromDate: date
58 bdca9f6d Václav Jirák
      }
59
    });
60 0d1b0550 Václav Jirák
  }
61
62
  userApproved( user: UserToApprove, approved: boolean ) {
63
    console.log(user.name + ' - approved: ' + approved);
64
    this.usersToApprove.splice(
65
      this.usersToApprove.indexOf(user), 1
66
    );
67
  }
68
69 eeebda1e Václav Jirák
  daysOffApproved(daysOff: DaysOff, approved: boolean) {
70 0d1b0550 Václav Jirák
    console.log(daysOff.username + ', ' + approved);
71
    this.daysOffToApprove.splice(
72
      this.daysOffToApprove.indexOf(daysOff), 1
73
    );
74
  }
75
76
  daysOffRemoved(daysOff: DaysOff) {
77
    this.daysOff.splice(
78
      this.daysOff.indexOf(daysOff), 1
79
    );
80
    this.oncomingDaysOff.splice(
81
      this.oncomingDaysOff.indexOf(daysOff), 1
82
    );
83
  }
84
85
  private calculateComingDaysOff(): DaysOff[] {
86
    let oncomingDaysOff: DaysOff[] = [];
87
88
    const today = new Date();
89
    this.daysOff.forEach((dayOff) => {
90
      if (dayOff.dateTo >= today) {
91
        oncomingDaysOff.push(dayOff);
92
      }
93
    });
94
95
    return oncomingDaysOff;
96
  }
97
}