Projekt

Obecné

Profil

« Předchozí | Další » 

Revize ebf7c703

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

Re #7263 Off days approval component modified

Zobrazit rozdíly:

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