Projekt

Obecné

Profil

« Předchozí | Další » 

Revize 9c7b1b63

Přidáno uživatelem Václav Jirák před téměř 6 roky(ů)

Re #7462 Dashboard connected to GET methods of REST API

Zobrazit rozdíly:

webapp/src/app/dashboard/employer-dashboard/employer-dashboard.component.ts
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';
1
import {Component, Input, OnInit} from '@angular/core';
5 2
import { MatDialog } from '@angular/material';
6 3
import { AddDaysOffDialogComponent } from '../../add-days-off-dialog/add-days-off-dialog.component';
4
import {UsersService} from '../../services/users.service';
5
import {Requests} from '../../models/requests.model';
6
import {UserProfile} from '../../models/user-profile.model';
7
import {UserService} from '../../services/user.service';
8
import {ProfileService} from "../../services/profile.service";
7 9

  
8 10
@Component({
9 11
  selector: 'app-employer-dashboard',
......
12 14
})
13 15
export class EmployerDashboardComponent implements OnInit {
14 16

  
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
  ];
17
  @Input() profile: UserProfile;
18
  private authorizationRequests: Requests;
19
  private daysOffRequests: Requests;
19 20

  
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) { }
21
  constructor(
22
    public dialog: MatDialog,
23
    private profileService: ProfileService,
24
    // API
25
    private userService: UserService,
26
    private usersService: UsersService
27
  ) { }
49 28

  
50 29
  ngOnInit() {
51
    this.oncomingDaysOff = this.calculateComingDaysOff();
52
  }
30
    this.profileService.getProfile()
31
      .subscribe((data: UserProfile) => this.profile = data);
53 32

  
54
  onDateSelect( date: Date ) {
55
    this.dialog.open(AddDaysOffDialogComponent, {
56
      data: {
57
        fromDate: date
58
      }
59
    });
60
  }
33
    this.usersService.getAuthorizationRequests()
34
      .subscribe((data: Requests) => this.authorizationRequests = data);
61 35

  
62
  userApproved( user: UserToApprove, approved: boolean ) {
63
    console.log(user.name + ' - approved: ' + approved);
64
    this.usersToApprove.splice(
65
      this.usersToApprove.indexOf(user), 1
66
    );
36
    this.usersService.getVacationRequests()
37
      .subscribe((data: Requests) => this.daysOffRequests = data);
67 38
  }
68 39

  
69
  daysOffApproved(daysOff: DaysOff, approved: boolean) {
70
    console.log(daysOff.username + ', ' + approved);
71
    this.daysOffToApprove.splice(
72
      this.daysOffToApprove.indexOf(daysOff), 1
73
    );
40
  private userApproved(requestId: number, approved: boolean) {
41
    // TODO api post call
42
    this.authorizationRequests.authorization.splice(0, 1);
74 43
  }
75 44

  
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
    );
45
  private daysOffApproved(requestId: number, approved: boolean) {
46
    // TODO api post call
47
    this.daysOffRequests.vacation.splice(0, 1);
83 48
  }
84 49

  
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);
50
  onDateSelect( date: Date ) {
51
    this.dialog.open(AddDaysOffDialogComponent, {
52
      data: {
53
        fromDate: date
92 54
      }
93 55
    });
94

  
95
    return oncomingDaysOff;
96 56
  }
97 57
}

Také k dispozici: Unified diff