Revize 8bb488f9
Přidáno uživatelem Václav Jirák před asi 6 roky(ů)
frontend/src/app/free-days-approval/free-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/free-days-approval/free-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/free-days-approval/free-days-approval.component.ts | ||
---|---|---|
1 |
import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; |
|
2 |
import { FreeDaysToApprove } from './free-days-to-approve.model'; |
|
3 |
import { FreeDayType } from '../shared/free-day-type'; |
|
4 |
|
|
5 |
@Component({ |
|
6 |
selector: 'app-tasks', |
|
7 |
templateUrl: './free-days-approval.component.html', |
|
8 |
styleUrls: ['./free-days-approval.component.sass'] |
|
9 |
}) |
|
10 |
export class FreeDaysApprovalComponent implements OnInit { |
|
11 |
|
|
12 |
@Input() tasksToComplete: FreeDaysToApprove[]; |
|
13 |
@Output() taskCompletedAction = new EventEmitter<{task: FreeDaysToApprove, approved: boolean}>(); |
|
14 |
|
|
15 |
constructor() { } |
|
16 |
|
|
17 |
ngOnInit() { |
|
18 |
} |
|
19 |
|
|
20 |
taskCompleted(completedTask: FreeDaysToApprove, isApproved: boolean ) { |
|
21 |
this.taskCompletedAction.emit({task: completedTask, approved: isApproved}); |
|
22 |
} |
|
23 |
|
|
24 |
private freeDayTypeToString(taskType: FreeDayType): string { |
|
25 |
switch (taskType) { |
|
26 |
case FreeDayType.ExtraVacation: |
|
27 |
return 'Extra dovolená'; |
|
28 |
case FreeDayType.Sickday: |
|
29 |
return 'Sickdays'; |
|
30 |
} |
|
31 |
} |
|
32 |
} |
frontend/src/app/free-days-approval/free-days-approval.module.ts | ||
---|---|---|
1 |
import { NgModule } from '@angular/core'; |
|
2 |
import { FreeDaysApprovalComponent } from './free-days-approval.component'; |
|
3 |
import { BrowserModule } from '@angular/platform-browser'; |
|
4 |
|
|
5 |
@NgModule({ |
|
6 |
declarations: [ FreeDaysApprovalComponent ], |
|
7 |
exports: [ FreeDaysApprovalComponent ], |
|
8 |
imports: [ BrowserModule ] |
|
9 |
}) |
|
10 |
export class FreeDaysApprovalModule { } |
frontend/src/app/free-days-approval/free-days-to-approve.model.ts | ||
---|---|---|
1 |
import { FreeDayType } from '../shared/free-day-type'; |
|
2 |
|
|
3 |
export class FreeDaysToApprove { |
|
4 |
username: string; |
|
5 |
dateFrom: Date; |
|
6 |
dateTo: Date; |
|
7 |
taskType: FreeDayType; |
|
8 |
} |
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/free-day-type.ts | ||
---|---|---|
1 |
export enum FreeDayType { |
|
2 |
ExtraVacation, |
|
3 |
Sickday |
|
4 |
} |
frontend/src/app/shared/off-day-type.ts | ||
---|---|---|
1 |
export enum OffDayType { |
|
2 |
ExtraVacation, |
|
3 |
Sickday |
|
4 |
} |
Také k dispozici: Unified diff
Re #7263 Free days renamed to Off days