diff --git a/package-lock.json b/package-lock.json index 31f593150..970319399 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.31.16", + "version": "1.31.17", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index c286b54b7..47b6417c6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "time-tracker", - "version": "1.31.16", + "version": "1.31.17", "scripts": { "preinstall": "npx npm-force-resolutions", "ng": "ng", diff --git a/src/app/modules/shared/components/details-fields/details-fields.component.html b/src/app/modules/shared/components/details-fields/details-fields.component.html index 5a04f4b87..c1114e007 100644 --- a/src/app/modules/shared/components/details-fields/details-fields.component.html +++ b/src/app/modules/shared/components/details-fields/details-fields.component.html @@ -90,6 +90,7 @@ aria-describedby="inputGroup-sizing-sm" [class.is-invalid]="start_date.invalid && start_date.touched" required + (ngModelChange)="onStartDateChange($event)" /> @@ -99,8 +100,8 @@ [format]="24" formControlName="start_hour" id="start_hour" - [disabled]="!(project_name.value && project_id.value)" class="timepicker-input" + [class.timepicker-input--disabled]="!(project_id.value && project_name.value)" > @@ -126,8 +127,8 @@ [format]="24" formControlName="end_hour" id="end_hour" - [disabled]="!(project_name.value && project_id.value)" class="timepicker-input" + [class.timepicker-input--disabled]="!(project_id.value && project_name.value)" > diff --git a/src/app/modules/shared/components/details-fields/details-fields.component.scss b/src/app/modules/shared/components/details-fields/details-fields.component.scss index 88b00d6e7..25dd0337a 100644 --- a/src/app/modules/shared/components/details-fields/details-fields.component.scss +++ b/src/app/modules/shared/components/details-fields/details-fields.component.scss @@ -103,3 +103,8 @@ input[type="date"]::-webkit-clear-button { border-radius: 0.25rem; } +.timepicker-input--disabled ::ng-deep div{ + pointer-events: none; + background-color: #e9ecef; + opacity: 1; +} diff --git a/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts b/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts index 60139632f..5dc627335 100644 --- a/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts +++ b/src/app/modules/shared/components/details-fields/details-fields.component.spec.ts @@ -443,6 +443,33 @@ describe('DetailsFieldsComponent', () => { expect(component.projectSelected.emit).toHaveBeenCalledWith(data); }); + it('on selected start_date should change end_date', () => { + const expectedStartDate = '2020-02-05'; + + component.onStartDateChange(expectedStartDate); + fixture.detectChanges(); + const endDateInput: HTMLInputElement = fixture.debugElement.nativeElement.querySelector('#end_date'); + + expect(endDateInput.value).toEqual(expectedStartDate); + }); + + it('on selected end_date should not change start_date', () => { + const expectedStartDate = '2020-02-05'; + const expectedEndDate = '2020-02-06'; + + component.ngOnInit(); + fixture.detectChanges(); + const startDateInput: HTMLInputElement = fixture.debugElement.nativeElement.querySelector('#start_date'); + const endDateInput: HTMLInputElement = fixture.debugElement.nativeElement.querySelector('#end_date'); + startDateInput.value = expectedStartDate; + endDateInput.value = expectedEndDate; + endDateInput.dispatchEvent(new Event('#end_date')); + + expect(endDateInput.value).not.toEqual(startDateInput.value); + expect(startDateInput.value).toEqual(expectedStartDate); + }); + + /* TODO As part of https://github.com/ioet/time-tracker-ui/issues/424 a new parameter was added to the details-field-component, and now these couple of tests are failing. A solution to this error might be generate a Test Wrapper Component. More details here: diff --git a/src/app/modules/shared/components/details-fields/details-fields.component.ts b/src/app/modules/shared/components/details-fields/details-fields.component.ts index 5a0434d8a..be8c13d9a 100644 --- a/src/app/modules/shared/components/details-fields/details-fields.component.ts +++ b/src/app/modules/shared/components/details-fields/details-fields.component.ts @@ -124,6 +124,10 @@ export class DetailsFieldsComponent implements OnChanges, OnInit { }); } + onStartDateChange($event: string) { + this.end_date.setValue($event); + } + ngOnChanges(): void { this.goingToWorkOnThis = this.entryToEdit ? this.entryToEdit.running : false; this.shouldRestartEntry = false;