Revize 7def46a6
Přidáno uživatelem Václav Jirák před téměř 6 roky(ů)
frontend/src/app/dashboard/employer-dashboard/employer-dashboard.component.html | ||
---|---|---|
1 |
<div class="container-fluid h-100"> |
|
2 |
<div class="row"> |
|
3 |
<div class="col-lg-8 mid-panel"> |
|
4 |
|
|
5 |
<div *ngIf="usersToApprove.length > 0" class="employer-dashboard-user-approval"> |
|
6 |
<app-user-approval |
|
7 |
[usersToApprove]="usersToApprove" |
|
8 |
(userApprovedAction)="userApproved($event.user, $event.approved)" |
|
9 |
></app-user-approval> |
|
10 |
</div> |
|
11 |
|
|
12 |
<div *ngIf="daysOffToApprove.length > 0" class="employer-dashboard-days-off-approval"> |
|
13 |
<app-days-off-approval |
|
14 |
[daysOffToApprove]="daysOffToApprove" |
|
15 |
(daysOffApprovalAction)="daysOffApproved($event.daysOff, $event.approved)" |
|
16 |
></app-days-off-approval> |
|
17 |
</div> |
|
18 |
|
|
19 |
<div *ngIf="oncomingDaysOff.length > 0" class="employer-dashboard-coming-days-off"> |
|
20 |
<app-coming-days-off |
|
21 |
[oncomingDaysOff]="oncomingDaysOff" |
|
22 |
(daysOffRemovedAction)="daysOffRemoved($event.daysOff)" |
|
23 |
></app-coming-days-off> |
|
24 |
</div> |
|
25 |
|
|
26 |
<div class="employer-dashboard-day-picker"> |
|
27 |
<app-day-picker |
|
28 |
(selectedDate)="onDateSelect($event)" |
|
29 |
></app-day-picker> |
|
30 |
</div> |
|
31 |
|
|
32 |
</div> |
|
33 |
|
|
34 |
<div class="col-lg-4 right-panel"> |
|
35 |
|
|
36 |
<app-days-off-info |
|
37 |
[sickDaysRemaining]="5" |
|
38 |
[sickDaysUsed]="3" |
|
39 |
[extraVacationRemaining]="10" |
|
40 |
></app-days-off-info> |
|
41 |
|
|
42 |
</div> |
|
43 |
</div> |
|
44 |
</div> |
frontend/src/app/dashboard/employer-dashboard/employer-dashboard.component.sass | ||
---|---|---|
1 |
.row |
|
2 |
padding: 0 |
|
3 |
|
|
4 |
.mid-panel |
|
5 |
padding: 10px 0 0 10px |
|
6 |
|
|
7 |
.right-panel |
|
8 |
padding: 10px 10px 0 10px |
|
9 |
|
|
10 |
.employer-dashboard-user-approval |
|
11 |
padding: 0 0 10px 0 |
|
12 |
|
|
13 |
.employer-dashboard-days-off-approval |
|
14 |
padding: 0 0 10px 0 |
|
15 |
|
|
16 |
.employer-dashboard-coming-days-off |
|
17 |
padding: 0 0 10px 0 |
frontend/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'; |
|
5 |
|
|
6 |
@Component({ |
|
7 |
selector: 'app-employer-dashboard', |
|
8 |
templateUrl: './employer-dashboard.component.html', |
|
9 |
styleUrls: ['./employer-dashboard.component.sass'] |
|
10 |
}) |
|
11 |
export class EmployerDashboardComponent implements OnInit { |
|
12 |
|
|
13 |
usersToApprove: UserToApprove[] = [ |
|
14 |
{ date: new Date(), email: 'kek@kek.cz', name: 'Václav Jirák' }, |
|
15 |
{ date: new Date(), email: 'kuadas@kek.cz', name: 'Věnceslav Kárij' } |
|
16 |
]; |
|
17 |
|
|
18 |
daysOffToApprove: DaysOff[] = [ |
|
19 |
{ username: 'Václav Jirák', dateFrom: new Date(2019, 10, 13), dateTo: new Date(), type: OffDayType.Sickday }, |
|
20 |
{ username: 'Václav Jirák', dateFrom: new Date(2019, 10, 1), dateTo: new Date(), type: OffDayType.ExtraVacation }, |
|
21 |
]; |
|
22 |
|
|
23 |
daysOff: DaysOff[] = [ |
|
24 |
{ |
|
25 |
username: '', |
|
26 |
dateFrom: new Date(2019, 5, 5), |
|
27 |
dateTo: new Date(2019, 5, 6), |
|
28 |
type: OffDayType.ExtraVacation |
|
29 |
}, |
|
30 |
{ |
|
31 |
username: '', |
|
32 |
dateFrom: new Date(2019, 5, 8), |
|
33 |
dateTo: new Date(2019, 5, 8), |
|
34 |
type: OffDayType.Sickday |
|
35 |
}, |
|
36 |
{ |
|
37 |
username: '', |
|
38 |
dateFrom: new Date(2019, 3, 8), |
|
39 |
dateTo: new Date(2019, 3, 9), |
|
40 |
type: OffDayType.Sickday |
|
41 |
}, |
|
42 |
]; |
|
43 |
|
|
44 |
oncomingDaysOff: DaysOff[] = []; |
|
45 |
|
|
46 |
constructor() { } |
|
47 |
|
|
48 |
ngOnInit() { |
|
49 |
this.oncomingDaysOff = this.calculateComingDaysOff(); |
|
50 |
} |
|
51 |
|
|
52 |
onDateSelect( date: Date ) { |
|
53 |
console.log('Date selected: ' + date.toDateString()); |
|
54 |
} |
|
55 |
|
|
56 |
userApproved( user: UserToApprove, approved: boolean ) { |
|
57 |
console.log(user.name + ' - approved: ' + approved); |
|
58 |
this.usersToApprove.splice( |
|
59 |
this.usersToApprove.indexOf(user), 1 |
|
60 |
); |
|
61 |
} |
|
62 |
|
|
63 |
daysOffApproved(daysOff: DaysOff, approved: boolean ) { |
|
64 |
console.log(daysOff.username + ', ' + approved); |
|
65 |
this.daysOffToApprove.splice( |
|
66 |
this.daysOffToApprove.indexOf(daysOff), 1 |
|
67 |
); |
|
68 |
} |
|
69 |
|
|
70 |
daysOffRemoved(daysOff: DaysOff) { |
|
71 |
this.daysOff.splice( |
|
72 |
this.daysOff.indexOf(daysOff), 1 |
|
73 |
); |
|
74 |
this.oncomingDaysOff.splice( |
|
75 |
this.oncomingDaysOff.indexOf(daysOff), 1 |
|
76 |
); |
|
77 |
} |
|
78 |
|
|
79 |
private calculateComingDaysOff(): DaysOff[] { |
|
80 |
let oncomingDaysOff: DaysOff[] = []; |
|
81 |
|
|
82 |
const today = new Date(); |
|
83 |
this.daysOff.forEach((dayOff) => { |
|
84 |
if (dayOff.dateTo >= today) { |
|
85 |
oncomingDaysOff.push(dayOff); |
|
86 |
} |
|
87 |
}); |
|
88 |
|
|
89 |
return oncomingDaysOff; |
|
90 |
} |
|
91 |
} |
frontend/src/app/dashboard/employer-dashboard/employer-dashboard.module.ts | ||
---|---|---|
1 |
import { NgModule } from '@angular/core'; |
|
2 |
import { CommonModule } from '@angular/common'; |
|
3 |
import { EmployerDashboardComponent } from './employer-dashboard.component'; |
|
4 |
import { DayPickerModule } from '../../day-picker/day-picker.module'; |
|
5 |
import { DaysOffInfoModule } from '../../days-off-info/days-off-info.module'; |
|
6 |
import { UserApprovalModule } from '../../user-approval/user-approval.module'; |
|
7 |
import { DaysOffApprovalModule } from '../../days-off-approval/days-off-approval.module'; |
|
8 |
import { OncomingDaysOffModule } from '../../oncoming-days-off/oncoming-days-off.module'; |
|
9 |
|
|
10 |
@NgModule({ |
|
11 |
declarations: [ EmployerDashboardComponent ], |
|
12 |
exports: [ EmployerDashboardComponent ], |
|
13 |
imports: [ |
|
14 |
CommonModule, |
|
15 |
DayPickerModule, |
|
16 |
DaysOffInfoModule, |
|
17 |
UserApprovalModule, |
|
18 |
DaysOffApprovalModule, |
|
19 |
DayPickerModule, |
|
20 |
OncomingDaysOffModule |
|
21 |
] |
|
22 |
}) |
|
23 |
export class EmployerDashboardModule { } |
Také k dispozici: Unified diff
Re #7263 Employer dashboard component implemented