Skip to content

Commit 1332df2

Browse files
committed
fix: TT-140 time entry info is lost if project is selected at last
1 parent d467356 commit 1332df2

File tree

2 files changed

+111
-94
lines changed

2 files changed

+111
-94
lines changed

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

Lines changed: 105 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,30 @@
11
<form [formGroup]="entryForm" (ngSubmit)="onSubmit()">
2-
<label *ngIf='canMarkEntryAsWIP'><input id='isEntryRunning' type="checkbox" (change)="onGoingToWorkOnThisChange($event)" [checked]="goingToWorkOnThis"> I am working on
3-
this</label>
2+
<label *ngIf="canMarkEntryAsWIP">
3+
<input
4+
id="isEntryRunning"
5+
type="checkbox"
6+
(change)="onGoingToWorkOnThisChange($event)"
7+
[checked]="goingToWorkOnThis"
8+
/>
9+
I am working on this
10+
</label>
411

512
<div class="form-group row">
613
<label class="col-12 col-sm-2 col-form-label">Project:</label>
714
<div class="col-12 col-sm-10 autocomplete">
815
<ng-autocomplete
9-
(selected)='onSelectedProject($event)'
10-
(inputCleared)='onClearedComponent($event)'
16+
(selected)="onSelectedProject($event)"
17+
(inputCleared)="onClearedComponent($event)"
1118
formControlName="project_name"
1219
[data]="listProjects"
1320
[searchKeyword]="keyword"
1421
historyIdentifier="projectsSelected"
1522
notFoundText="No projects found"
1623
placeHolder="Enter the project name"
1724
[itemTemplate]="itemTemplate"
18-
[notFoundTemplate]="notFoundTemplate">
25+
[notFoundTemplate]="notFoundTemplate"
26+
[class.valid]="project_name.invalid"
27+
>
1928
</ng-autocomplete>
2029

2130
<ng-template #itemTemplate let-item>
@@ -34,108 +43,110 @@
3443
</div>
3544
</div>
3645

37-
38-
<div class="form-group row">
39-
<label class="col-12 col-sm-2 col-form-label">Activity:</label>
40-
<div class="col-12 col-sm-10">
41-
<select
42-
[class.is-invalid]="activity_id.invalid"
43-
required
44-
id="activity_id"
45-
class="custom-select"
46-
formControlName="activity_id"
47-
>
48-
<option value="" selected="selected"></option>
49-
<option *ngFor="let activity of activities" value="{{ activity.id }}">{{ activity.name }}</option>
50-
</select>
46+
<fieldset [disabled]="!(project_id.value && project_name.value)">
47+
<div class="form-group row">
48+
<label class="col-12 col-sm-2 col-form-label">Activity:</label>
49+
<div class="col-12 col-sm-10">
50+
<select
51+
[class.is-invalid]="activity_id.invalid"
52+
required
53+
id="activity_id"
54+
class="custom-select"
55+
formControlName="activity_id"
56+
>
57+
<option value="" selected="selected"></option>
58+
<option *ngFor="let activity of activities" value="{{ activity.id }}">{{ activity.name }}</option>
59+
</select>
60+
</div>
61+
<div
62+
class="invalid-feedback"
63+
*ngIf="(activity_id.dirty || activity_id.touched) && activity_id.invalid && activity_id.errors.required"
64+
></div>
5165
</div>
52-
<div
53-
class="invalid-feedback"
54-
*ngIf="(activity_id.dirty || activity_id.touched) && activity_id.invalid && activity_id.errors.required"
55-
></div>
56-
</div>
57-
5866

59-
<div class="form-group row">
60-
<label class="col-12 col-sm-2 col-form-label">Ticket:</label>
61-
<div class="col-12 col-sm-10">
62-
<input
63-
formControlName="uri"
64-
id="uri"
65-
type="text"
66-
class="form-control"
67-
aria-label="Small"
68-
aria-describedby="inputGroup-sizing-sm"
69-
/>
70-
</div>
71-
</div>
72-
73-
74-
<div class="form-group row">
75-
<label class="col-12 col-sm-2">Date in:</label>
76-
<div class="col-12 col-sm-4">
77-
<input
78-
formControlName="start_date"
79-
id="start_date"
80-
type="date"
81-
class="form-control"
82-
aria-label="Small"
83-
aria-describedby="inputGroup-sizing-sm"
84-
[class.is-invalid]="start_date.invalid && start_date.touched"
85-
required
86-
/>
67+
<div class="form-group row">
68+
<label class="col-12 col-sm-2 col-form-label">Ticket:</label>
69+
<div class="col-12 col-sm-10">
70+
<input
71+
formControlName="uri"
72+
id="uri"
73+
type="text"
74+
class="form-control"
75+
aria-label="Small"
76+
aria-describedby="inputGroup-sizing-sm"
77+
/>
78+
</div>
8779
</div>
8880

89-
<label class="col-12 col-sm-2">Time in:</label>
90-
<div class="col-12 col-sm-4">
91-
<ngx-timepicker-field
81+
<div class="form-group row">
82+
<label class="col-12 col-sm-2">Date in:</label>
83+
<div class="col-12 col-sm-4">
84+
<input
85+
formControlName="start_date"
86+
id="start_date"
87+
type="date"
88+
class="form-control"
89+
aria-label="Small"
90+
aria-describedby="inputGroup-sizing-sm"
91+
[class.is-invalid]="start_date.invalid && start_date.touched"
92+
required
93+
/>
94+
</div>
95+
96+
<label class="col-12 col-sm-2">Time in:</label>
97+
<div class="col-12 col-sm-4">
98+
<ngx-timepicker-field
9299
[format]="24"
93100
formControlName="start_hour"
94101
id="start_hour"
95102
></ngx-timepicker-field>
103+
</div>
96104
</div>
97-
</div>
98105

99-
100-
<div class="form-group row" *ngIf="!goingToWorkOnThis">
101-
<label class="col-12 col-sm-2">Date out:</label>
102-
<div class="col-12 col-sm-4">
103-
<input
104-
formControlName="end_date"
105-
id="end_date"
106-
type="date"
107-
class="form-control"
108-
aria-label="Small"
109-
aria-describedby="inputGroup-sizing-sm"
110-
[class.is-invalid]="end_date.invalid && end_date.touched"
111-
required
112-
/>
106+
<div class="form-group row" *ngIf="!goingToWorkOnThis">
107+
<label class="col-12 col-sm-2">Date out:</label>
108+
<div class="col-12 col-sm-4">
109+
<input
110+
formControlName="end_date"
111+
id="end_date"
112+
type="date"
113+
class="form-control"
114+
aria-label="Small"
115+
aria-describedby="inputGroup-sizing-sm"
116+
[class.is-invalid]="end_date.invalid && end_date.touched"
117+
required
118+
/>
119+
</div>
120+
121+
<label class="col-12 col-sm-2">Time out:</label>
122+
<div class="col-12 col-sm-4">
123+
<ngx-timepicker-field
124+
[format]="24"
125+
formControlName="end_hour"
126+
id="end_hour"
127+
></ngx-timepicker-field>
128+
</div>
113129
</div>
114130

115-
<label class="col-12 col-sm-2">Time out:</label>
116-
<div class="col-12 col-sm-4">
117-
<ngx-timepicker-field
118-
[format]="24"
119-
formControlName="end_hour"
120-
id="end_hour"
121-
></ngx-timepicker-field>
131+
<app-technologies
132+
(technologyAdded)="onTechnologiesUpdated($event)"
133+
(technologyRemoved)="onTechnologiesUpdated($event)"
134+
[selectedTechnologies]="selectedTechnologies"
135+
>
136+
</app-technologies>
137+
138+
<div class="form-group text-left">
139+
<label for="NotesTextarea">Description:</label>
140+
<textarea
141+
maxlength="1500"
142+
formControlName="description"
143+
class="form-control"
144+
id="NotesTextarea"
145+
rows="3"
146+
>
147+
</textarea>
122148
</div>
123-
</div>
124-
125-
126-
<app-technologies
127-
(technologyAdded)="onTechnologiesUpdated($event)"
128-
(technologyRemoved)="onTechnologiesUpdated($event)"
129-
[selectedTechnologies]="selectedTechnologies"
130-
>
131-
</app-technologies>
132-
133-
134-
<div class="form-group text-left">
135-
<label for="NotesTextarea">Description:</label>
136-
<textarea maxlength="1500" formControlName="description" class="form-control" id="NotesTextarea"
137-
rows="3"></textarea>
138-
</div>
149+
</fieldset>
139150
<div class="modal-footer">
140151
<button type="submit" class="btn btn-primary">Save</button>
141152
<button #closeModal type="button" class="btn btn-secondary" data-dismiss="modal">

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,3 +93,9 @@ input[type="date"]::-webkit-clear-button {
9393
border: none;
9494
margin: 0em;
9595
}
96+
97+
.valid ::ng-deep .autocomplete-container ::ng-deep .input-container ::ng-deep input {
98+
border: 1px solid #df5b33;
99+
border-radius: 0.25rem;
100+
}
101+

0 commit comments

Comments
 (0)