Revize ebf7c703
Přidáno uživatelem Václav Jirák před téměř 6 roky(ů)
frontend/src/app/days-off-approval/days-off-approval.component.html | ||
---|---|---|
1 |
<div class="days-off-approval-container"> |
|
2 |
|
|
3 |
<div class="component-header"> |
|
4 |
Schvalování volna |
|
5 |
</div> |
|
6 |
|
|
7 |
<div class="days-off-approval-list"> |
|
8 |
<div class="row days-off-approval-header"> |
|
9 |
<div class="col-md-3"> Jméno </div> |
|
10 |
<div class="col-md-3"> Typ volna </div> |
|
11 |
<div class="col-md-2"> Od </div> |
|
12 |
<div class="col-md-2"> Do </div> |
|
13 |
<div class="col-md-2"></div> |
|
14 |
</div> |
|
15 |
|
|
16 |
<div class="row days-off-approval" *ngFor="let daysOff of daysOffToApprove"> |
|
17 |
<div class="col-md-3"> |
|
18 |
{{daysOff.username}} |
|
19 |
</div> |
|
20 |
|
|
21 |
<div class="col-md-3"> |
|
22 |
{{daysOffTypeToString(daysOff.type)}} |
|
23 |
</div> |
|
24 |
|
|
25 |
<div class="col-md-2"> |
|
26 |
{{daysOff.dateFrom | date:'yyyy/MM/dd'}} |
|
27 |
</div> |
|
28 |
<div class="col-md-2"> |
|
29 |
{{daysOff.dateTo | date:'yyyy/MM/dd'}} |
|
30 |
</div> |
|
31 |
<div class="col-md-2"> |
|
32 |
<div class="btn btn-success approve-btn" (click)="daysOffApprovalCompleted(daysOff, true)">✓</div> |
|
33 |
<div class="btn btn-danger reject-btn" (click)="daysOffApprovalCompleted(daysOff, false)">X</div> |
|
34 |
</div> |
|
35 |
</div> |
|
36 |
</div> |
|
37 |
|
|
38 |
</div> |
frontend/src/app/days-off-approval/days-off-approval.component.sass | ||
---|---|---|
1 |
@import '../../common-styles/basic-component' |
|
2 |
|
|
3 |
.days-off-approval-container |
|
4 |
@extend .basic-component |
|
5 |
|
|
6 |
.days-off-approval-header |
|
7 |
padding: 10px |
|
8 |
margin: 0 |
|
9 |
font-weight: bold |
|
10 |
|
|
11 |
.days-off-approval |
|
12 |
border-bottom: 1px solid gainsboro |
|
13 |
margin: 0 |
|
14 |
padding: 10px |
|
15 |
line-height: 35px |
|
16 |
|
|
17 |
.approve-btn |
|
18 |
margin-right: 2px |
frontend/src/app/days-off-approval/days-off-approval.component.ts | ||
---|---|---|
1 |
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; |
|
2 |
import { DaysOff } from '../shared/days-off.model'; |
|
3 |
import { OffDayType } from '../shared/off-day-type'; |
|
4 |
|
|
5 |
@Component({ |
|
6 |
selector: 'app-days-off-approval', |
|
7 |
templateUrl: './days-off-approval.component.html', |
|
8 |
styleUrls: ['./days-off-approval.component.sass'] |
|
9 |
}) |
|
10 |
export class DaysOffApprovalComponent implements OnInit { |
|
11 |
|
|
12 |
@Input() daysOffToApprove: DaysOff[]; |
|
13 |
@Output() daysOffApprovalAction = new EventEmitter<{daysOff: DaysOff, approved: boolean}>(); |
|
14 |
|
|
15 |
constructor() { } |
|
16 |
|
|
17 |
ngOnInit() { |
|
18 |
} |
|
19 |
|
|
20 |
daysOffApprovalCompleted(daysOffApproved: DaysOff, isApproved: boolean ) { |
|
21 |
this.daysOffApprovalAction.emit({daysOff: daysOffApproved, approved: isApproved}); |
|
22 |
} |
|
23 |
|
|
24 |
private daysOffTypeToString(taskType: OffDayType): string { |
|
25 |
switch (taskType) { |
|
26 |
case OffDayType.ExtraVacation: |
|
27 |
return 'Extra dovolená'; |
|
28 |
case OffDayType.Sickday: |
|
29 |
return 'Sickdays'; |
|
30 |
} |
|
31 |
} |
|
32 |
} |
frontend/src/app/days-off-approval/days-off-approval.module.ts | ||
---|---|---|
1 |
import { NgModule } from '@angular/core'; |
|
2 |
import { DaysOffApprovalComponent } from './days-off-approval.component'; |
|
3 |
import { BrowserModule } from '@angular/platform-browser'; |
|
4 |
|
|
5 |
@NgModule({ |
|
6 |
declarations: [ DaysOffApprovalComponent ], |
|
7 |
exports: [ DaysOffApprovalComponent ], |
|
8 |
imports: [ BrowserModule ] |
|
9 |
}) |
|
10 |
export class DaysOffApprovalModule { } |
frontend/src/app/off-days-approval/off-days-approval.component.html | ||
---|---|---|
1 |
<div class="tasks-container"> |
|
2 |
|
|
3 |
<div class="component-header"> |
|
4 |
Schvalování volna |
|
5 |
</div> |
|
6 |
|
|
7 |
<div class="tasks-list"> |
|
8 |
<div class="row tasks-header"> |
|
9 |
<div class="col-md-3"> Jméno </div> |
|
10 |
<div class="col-md-3"> Typ volna </div> |
|
11 |
<div class="col-md-2"> Od </div> |
|
12 |
<div class="col-md-2"> Do </div> |
|
13 |
<div class="col-md-2"></div> |
|
14 |
</div> |
|
15 |
|
|
16 |
<div class="row task-container" *ngFor="let task of tasksToComplete"> |
|
17 |
<div class="col-md-3"> |
|
18 |
{{task.username}} |
|
19 |
</div> |
|
20 |
|
|
21 |
<div class="col-md-3"> |
|
22 |
{{freeDayTypeToString(task.taskType)}} |
|
23 |
</div> |
|
24 |
|
|
25 |
<div class="col-md-2"> |
|
26 |
{{task.dateFrom | date:'yyyy/MM/dd'}} |
|
27 |
</div> |
|
28 |
<div class="col-md-2"> |
|
29 |
{{task.dateTo | date:'yyyy/MM/dd'}} |
|
30 |
</div> |
|
31 |
<div class="col-md-2"> |
|
32 |
<div class="btn btn-success approve-user-btn" (click)="taskCompleted(task, true)">✓</div> |
|
33 |
<div class="btn btn-danger reject-user-btn" (click)="taskCompleted(task, false)">X</div> |
|
34 |
</div> |
|
35 |
</div> |
|
36 |
</div> |
|
37 |
|
|
38 |
</div> |
frontend/src/app/off-days-approval/off-days-approval.component.sass | ||
---|---|---|
1 |
@import '../../common-styles/basic-component' |
|
2 |
|
|
3 |
.tasks-container |
|
4 |
@extend .basic-component |
|
5 |
|
|
6 |
.tasks-header |
|
7 |
padding: 10px |
|
8 |
margin: 0 |
|
9 |
font-weight: bold |
|
10 |
|
|
11 |
.task-container |
|
12 |
border-bottom: 1px solid gainsboro |
|
13 |
margin: 0 |
|
14 |
padding: 10px |
|
15 |
line-height: 35px |
|
16 |
|
|
17 |
.approve-user-btn |
|
18 |
margin-right: 2px |
frontend/src/app/off-days-approval/off-days-approval.component.ts | ||
---|---|---|
1 |
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; |
|
2 |
import { OffDaysToApprove } from './off-days-to-approve.model'; |
|
3 |
import { OffDayType } from '../shared/off-day-type'; |
|
4 |
|
|
5 |
@Component({ |
|
6 |
selector: 'app-tasks', |
|
7 |
templateUrl: './off-days-approval.component.html', |
|
8 |
styleUrls: ['./off-days-approval.component.sass'] |
|
9 |
}) |
|
10 |
export class OffDaysApprovalComponent implements OnInit { |
|
11 |
|
|
12 |
@Input() tasksToComplete: OffDaysToApprove[]; |
|
13 |
@Output() taskCompletedAction = new EventEmitter<{task: OffDaysToApprove, approved: boolean}>(); |
|
14 |
|
|
15 |
constructor() { } |
|
16 |
|
|
17 |
ngOnInit() { |
|
18 |
} |
|
19 |
|
|
20 |
taskCompleted(completedTask: OffDaysToApprove, isApproved: boolean ) { |
|
21 |
this.taskCompletedAction.emit({task: completedTask, approved: isApproved}); |
|
22 |
} |
|
23 |
|
|
24 |
private freeDayTypeToString(taskType: OffDayType): string { |
|
25 |
switch (taskType) { |
|
26 |
case OffDayType.ExtraVacation: |
|
27 |
return 'Extra dovolená'; |
|
28 |
case OffDayType.Sickday: |
|
29 |
return 'Sickdays'; |
|
30 |
} |
|
31 |
} |
|
32 |
} |
frontend/src/app/off-days-approval/off-days-approval.module.ts | ||
---|---|---|
1 |
import { NgModule } from '@angular/core'; |
|
2 |
import { OffDaysApprovalComponent } from './off-days-approval.component'; |
|
3 |
import { BrowserModule } from '@angular/platform-browser'; |
|
4 |
|
|
5 |
@NgModule({ |
|
6 |
declarations: [ OffDaysApprovalComponent ], |
|
7 |
exports: [ OffDaysApprovalComponent ], |
|
8 |
imports: [ BrowserModule ] |
|
9 |
}) |
|
10 |
export class OffDaysApprovalModule { } |
frontend/src/app/off-days-approval/off-days-to-approve.model.ts | ||
---|---|---|
1 |
import { OffDayType } from '../shared/off-day-type'; |
|
2 |
|
|
3 |
export class OffDaysToApprove { |
|
4 |
username: string; |
|
5 |
dateFrom: Date; |
|
6 |
dateTo: Date; |
|
7 |
taskType: OffDayType; |
|
8 |
} |
frontend/src/app/shared/days-off.model.ts | ||
---|---|---|
1 |
import { OffDayType } from './off-day-type'; |
|
2 |
|
|
3 |
export class DaysOff { |
|
4 |
username: string; |
|
5 |
dateFrom: Date; |
|
6 |
dateTo: Date; |
|
7 |
type: OffDayType; |
|
8 |
} |
Také k dispozici: Unified diff
Re #7263 Off days approval component modified