Projekt

Obecné

Profil

Stáhnout (1.57 KB) Statistiky
| Větev: | Tag: | Revize:
1 89c98d12 Václav Jirák
import {Component, Inject} from '@angular/core';
2 d9d4877f Václav Jirák
import {MAT_DIALOG_DATA, MatDialogRef, MatSnackBar} from '@angular/material';
3 89c98d12 Václav Jirák
4
@Component({
5
  selector: 'app-default-settings',
6
  templateUrl: './default-settings-dialog.component.html',
7
  styleUrls: ['./default-settings.component.sass']
8
})
9
export class DefaultSettingsDialogComponent {
10
  MINUTE_STEP = 15;
11
12
  constructor(
13
    public dialogRef: MatDialogRef<DefaultSettingsDialogComponent>,
14 d9d4877f Václav Jirák
    @Inject(MAT_DIALOG_DATA) public data: DefaultSettingsDialogData,
15
    private snackBar: MatSnackBar,
16 89c98d12 Václav Jirák
  ) {
17
  }
18
19
  onConfirmClick(): void {
20 d9d4877f Václav Jirák
    if (this.everythingFilled()) {
21
      this.dialogRef.close(
22
        {
23
          isConfirmed: true,
24
          notificationDatetime: this.toNotificationDatetime(),
25
          sickDayCount: this.data.sickDayCount
26
        }
27
      );
28 599dd1cf Václav Jirák
    } else {
29 d9d4877f Václav Jirák
      this.snackBar.open('Nevyplněny všechny potřebné položky');
30 599dd1cf Václav Jirák
    }
31 89c98d12 Václav Jirák
  }
32
33
  onCloseClick(): void {
34
    this.dialogRef.close({
35
      isConfirmed: false
36
    });
37
  }
38
39
  private toNotificationDatetime(): Date {
40
    const splittedTime = this.data.notificationTime.split(':');
41
42
    return new Date(
43
      this.data.notificationDate.getFullYear(),
44
      this.data.notificationDate.getMonth(),
45
      this.data.notificationDate.getDate(),
46
      Number(splittedTime[0]),
47
      Number(splittedTime[1])
48
    );
49
  }
50
51 d9d4877f Václav Jirák
  private everythingFilled(): boolean {
52 8860de8e Václav Jirák
    return Boolean(this.data.notificationDate && this.data.notificationTime && this.data.sickDayCount);
53 d9d4877f Václav Jirák
  }
54
55 89c98d12 Václav Jirák
}
56
57
export class DefaultSettingsDialogData {
58
  notificationDate: Date;
59
  notificationTime: string;
60 93fb3695 Václav Jirák
  sickDayCount: number;
61 89c98d12 Václav Jirák
}