Skip to content

Commit 7d67319

Browse files
committed
fix: #347 pre-fill start end dates in report
1 parent a43a6d0 commit 7d67319

File tree

3 files changed

+42
-10
lines changed

3 files changed

+42
-10
lines changed

src/app/modules/reports/components/time-range-form/time-range-form.component.html

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,17 @@
33
<div class="col">
44
<div class="input-group">
55
<app-input-label text="Start Date"></app-input-label>
6-
<app-input-date formControlName="startDate" required="true"></app-input-date>
6+
<app-input-date formControlName="startDate" id="startDate" required="true"></app-input-date>
77
</div>
88
</div>
99
<div class="col">
1010
<div class="input-group">
1111
<app-input-label text="End Date"></app-input-label>
12-
<app-input-date formControlName="endDate" required="true"></app-input-date>
12+
<app-input-date formControlName="endDate" id="endDate" required="true"></app-input-date>
1313
</div>
1414
</div>
15-
</div>
16-
<div class="row mt-3">
1715
<div class="col">
18-
<button type="submit" class="btn btn-primary float-right"
19-
[disabled]="!(reportForm.touched && reportForm.valid)">Search
20-
</button>
16+
<button type="submit" class="btn btn-primary float-right">Search</button>
2117
</div>
2218
</div>
2319
</form>

src/app/modules/reports/components/time-range-form/time-range-form.component.ts

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import {Component} from '@angular/core';
2-
import {FormControl, FormGroup} from '@angular/forms';
1+
import { formatDate } from '@angular/common';
2+
import { Component, OnInit } from '@angular/core';
3+
import { FormControl, FormGroup } from '@angular/forms';
34
import * as entryActions from '../../../time-clock/store/entry.actions';
45
import {Store} from '@ngrx/store';
56
import {EntryState} from '../../../time-clock/store/entry.reducer';
@@ -9,7 +10,7 @@ import * as moment from 'moment';
910
selector: 'app-time-range-form',
1011
templateUrl: './time-range-form.component.html',
1112
})
12-
export class TimeRangeFormComponent {
13+
export class TimeRangeFormComponent implements OnInit {
1314
public reportForm: FormGroup;
1415
private startDate = new FormControl('');
1516
private endDate = new FormControl('');
@@ -20,6 +21,17 @@ export class TimeRangeFormComponent {
2021
endDate: this.endDate
2122
});
2223
}
24+
ngOnInit(): void {
25+
this.setInitialDataOnScreen();
26+
}
27+
28+
setInitialDataOnScreen() {
29+
this.reportForm.setValue({
30+
startDate: formatDate(moment().startOf('week').toString(), 'yyyy-MM-dd', 'en'),
31+
endDate: formatDate(moment().endOf('week').toString(), 'yyyy-MM-dd', 'en')
32+
});
33+
this.onSubmit();
34+
}
2335

2436
onSubmit() {
2537
this.store.dispatch(new entryActions.LoadEntriesByTimeRange({

src/app/modules/reports/components/time-range-form/time-range.component.spec.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,30 @@ describe('Reports Page', () => {
6969
}));
7070
});
7171

72+
it('setInitialDataOnScreen on ngOnInit', () => {
73+
spyOn(component, 'setInitialDataOnScreen');
74+
75+
component.ngOnInit();
76+
77+
expect(component.setInitialDataOnScreen).toHaveBeenCalled();
78+
});
79+
80+
it('setInitialDataOnScreen sets dates in form', () => {
81+
spyOn(component.reportForm, 'setValue');
82+
83+
component.setInitialDataOnScreen();
84+
85+
expect(component.reportForm.setValue).toHaveBeenCalled();
86+
});
87+
88+
it('triggers onSubmit to set initial data', () => {
89+
spyOn(component, 'onSubmit');
90+
91+
component.setInitialDataOnScreen();
92+
93+
expect(component.onSubmit).toHaveBeenCalled();
94+
});
95+
7296
afterEach(() => {
7397
fixture.destroy();
7498
});

0 commit comments

Comments
 (0)