Projekt

Obecné

Profil

Stáhnout (1.57 KB) Statistiky
| Větev: | Tag: | Revize:
1
import {Component, Inject} from '@angular/core';
2
import {MAT_DIALOG_DATA, MatDialogRef, MatSnackBar} from '@angular/material';
3

    
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
    @Inject(MAT_DIALOG_DATA) public data: DefaultSettingsDialogData,
15
    private snackBar: MatSnackBar,
16
  ) {
17
  }
18

    
19
  onConfirmClick(): void {
20
    if (this.everythingFilled()) {
21
      this.dialogRef.close(
22
        {
23
          isConfirmed: true,
24
          notificationDatetime: this.toNotificationDatetime(),
25
          sickDayCount: this.data.sickDayCount
26
        }
27
      );
28
    } else {
29
      this.snackBar.open('Nevyplněny všechny potřebné položky');
30
    }
31
  }
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
  private everythingFilled(): boolean {
52
    return Boolean(this.data.notificationDate && this.data.notificationTime && this.data.sickDayCount);
53
  }
54

    
55
}
56

    
57
export class DefaultSettingsDialogData {
58
  notificationDate: Date;
59
  notificationTime: string;
60
  sickDayCount: number;
61
}
(2-2/3)