Skip to content

Commit c7b9359

Browse files
authored
Merge pull request #289 from ioet/278_Include_time-entry_running_on_time-entries_list
fix: #278 Include_time-entry_running_on_time-entries_list
2 parents 120cad4 + 46e3362 commit c7b9359

File tree

4 files changed

+23
-18
lines changed

4 files changed

+23
-18
lines changed

src/app/modules/shared/components/details-fields/details-fields.component.html

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<form [formGroup]="entryForm" (ngSubmit)="onSubmit()">
22
<script>
3-
$( function() {
4-
$( document ).tooltip();
5-
} );
3+
$(function () {
4+
$(document).tooltip();
5+
});
66
</script>
77
<div class="input-group input-group-sm mb-3">
88
<div class="input-group-prepend">
@@ -35,7 +35,7 @@
3535
class="custom-select"
3636
formControlName="activity_id"
3737
>
38-
<option value="" selected="selected"></option>
38+
<option value="" selected="selected"></option>
3939
<option *ngFor="let activity of activities" value="{{ activity.id }}">{{ activity.name }}</option>
4040
</select>
4141
<div
@@ -93,12 +93,14 @@
9393
<span class="input-group-text span-width" id="inputGroup-sizing-sm">End/Date</span>
9494
</div>
9595
<input
96+
data-toggle="tooltip"
97+
title="{{ (end_date.invalid && end_date.touched) || errorEndDate ? 'End hour is required' : '' }}"
9698
formControlName="end_date"
9799
id="end_date"
98100
type="date"
99101
class="form-control"
100102
aria-label="Small"
101-
[class.is-invalid]="end_date.invalid && end_date.touched"
103+
[class.is-invalid]="(end_date.invalid && end_date.touched) || errorEndDate"
102104
required
103105
aria-describedby="inputGroup-sizing-sm"
104106
/>

src/app/modules/shared/components/details-fields/details-fields.component.ts

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,19 +9,19 @@ import {
99
ElementRef,
1010
Renderer2,
1111
} from '@angular/core';
12-
import {FormBuilder, FormGroup} from '@angular/forms';
13-
import {Store, select} from '@ngrx/store';
14-
import {formatDate} from '@angular/common';
15-
16-
import {Project, Activity} from '../../models';
17-
import {ProjectState} from '../../../customer-management/components/projects/components/store/project.reducer';
18-
import {TechnologyState} from '../../store/technology.reducers';
19-
import {LoadActivities, ActivityState, allActivities} from '../../../activities-management/store';
20-
import {getProjects} from '../../../customer-management/components/projects/components/store/project.selectors';
12+
import { FormBuilder, FormGroup } from '@angular/forms';
13+
import { Store, select } from '@ngrx/store';
14+
import { formatDate } from '@angular/common';
15+
16+
import { Project, Activity } from '../../models';
17+
import { ProjectState } from '../../../customer-management/components/projects/components/store/project.reducer';
18+
import { TechnologyState } from '../../store/technology.reducers';
19+
import { LoadActivities, ActivityState, allActivities } from '../../../activities-management/store';
20+
import { getProjects } from '../../../customer-management/components/projects/components/store/project.selectors';
2121
import * as projectActions from '../../../customer-management/components/projects/components/store/project.actions';
22-
import {EntryState} from '../../../time-clock/store/entry.reducer';
22+
import { EntryState } from '../../../time-clock/store/entry.reducer';
2323
import * as entryActions from '../../../time-clock/store/entry.actions';
24-
import {getUpdateError, getCreateError} from 'src/app/modules/time-clock/store/entry.selectors';
24+
import { getUpdateError, getCreateError } from 'src/app/modules/time-clock/store/entry.selectors';
2525
type Merged = TechnologyState & ProjectState & ActivityState & EntryState;
2626

2727
@Component({
@@ -42,6 +42,7 @@ export class DetailsFieldsComponent implements OnChanges, OnInit {
4242
keyword = 'name';
4343
showlist: boolean;
4444
errorDate: boolean;
45+
errorEndDate: boolean;
4546

4647
constructor(private formBuilder: FormBuilder, private store: Store<Merged>) {
4748
this.entryForm = this.formBuilder.group({
@@ -89,6 +90,7 @@ export class DetailsFieldsComponent implements OnChanges, OnInit {
8990
ngOnChanges(): void {
9091
if (this.entryToEdit) {
9192
this.selectedTechnologies = this.entryToEdit.technologies;
93+
this.errorEndDate = this.entryToEdit.end_date ? false : true;
9294
this.entryForm.setValue({
9395
project_id: this.entryToEdit.project_id,
9496
activity_id: this.entryToEdit.activity_id,
@@ -156,6 +158,7 @@ export class DetailsFieldsComponent implements OnChanges, OnInit {
156158
close() {
157159
this.entryForm.reset();
158160
this.errorDate = false;
161+
this.errorEndDate = false;
159162
this.cleanForm();
160163
}
161164

src/app/modules/time-entries/pages/time-entries.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ describe('TimeEntriesComponent', () => {
131131
};
132132
mockEntriesSelector = store.overrideSelector(allEntries, [newEntry]);
133133
component.ngOnInit();
134-
expect(component.dataByMonth.length).toEqual(0);
134+
expect(component.dataByMonth.length).toEqual(1);
135135
}));
136136

137137
it('should call dataByMonth without new date in ngOnInit()', async(() => {

src/app/modules/time-entries/pages/time-entries.component.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ export class TimeEntriesComponent implements OnInit {
2424
dataByMonth$.subscribe((response) => {
2525
this.entryList = response;
2626
this.dataByMonth = this.entryList.reduce((acc: any, entry: any) => {
27-
if (new Date(entry.start_date).getMonth() === new Date().getMonth() && entry.end_date) {
27+
if (new Date(entry.start_date).getMonth() === new Date().getMonth()) {
2828
const item = { ...entry };
2929
return [...acc, item];
3030
}

0 commit comments

Comments
 (0)