Skip to content

Commit ad6dcfa

Browse files
committed
#50 improve required field look and feel
1 parent e592d21 commit ad6dcfa

File tree

3 files changed

+62
-16
lines changed

3 files changed

+62
-16
lines changed

src/app/modules/activities-management/components/create-activity/create-activity.component.html

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,36 @@
33
<h1 class="card-title">Activity</h1>
44
<div class="form-group">
55
<label for="name">Name:</label>
6-
<input class="form-control" id="name" type="text" formControlName="name" required>
7-
<div class="alert alert-danger" *ngIf="(name.dirty || name.touched) && name.invalid && name.errors.required">
8-
Activity name is required.</div>
6+
<input
7+
class="form-control"
8+
id="name"
9+
type="text"
10+
formControlName="name"
11+
[class.is-invalid]="name.invalid && name.touched"
12+
required
13+
/>
14+
<div class="text-danger" *ngIf="(name.dirty || name.touched) && name.invalid && name.errors.required">
15+
Activity name is required.
16+
</div>
917
</div>
1018

1119
<div class="form-group">
1220
<label for="details">Description:</label>
13-
<textarea class="form-control" rows="3" id="description" type="text" formControlName="description"></textarea>
21+
<textarea
22+
class="form-control"
23+
rows="3"
24+
id="description"
25+
type="text"
26+
formControlName="description"
27+
[class.is-invalid]="description.invalid && description.touched"
28+
required
29+
></textarea>
30+
<p
31+
class="text-danger"
32+
*ngIf="(description.dirty || description.touched) && description.invalid && description.errors.required"
33+
>
34+
Details activity is required.
35+
</p>
1436
</div>
1537

1638
<div class="btn-toolbar" role="toolbar">
@@ -19,4 +41,4 @@ <h1 class="card-title">Activity</h1>
1941
</div>
2042
</div>
2143
</form>
22-
</div>
44+
</div>

src/app/modules/activities-management/components/create-activity/create-activity.component.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,9 @@ import { Activity } from '../../../shared/models';
55
@Component({
66
selector: 'app-create-activity',
77
templateUrl: './create-activity.component.html',
8-
styleUrls: ['./create-activity.component.scss']
8+
styleUrls: ['./create-activity.component.scss'],
99
})
1010
export class CreateActivityComponent {
11-
1211
activityForm: FormGroup;
1312

1413
@Input()
@@ -17,7 +16,7 @@ export class CreateActivityComponent {
1716
constructor(private formBuilder: FormBuilder) {
1817
this.activityForm = this.formBuilder.group({
1918
name: ['', Validators.required],
20-
description: ['']
19+
description: ['', Validators.required],
2120
});
2221
}
2322

@@ -35,5 +34,4 @@ export class CreateActivityComponent {
3534
get description() {
3635
return this.activityForm.get('description');
3736
}
38-
3937
}

src/app/modules/project-management/components/create-project/create-project.component.html

Lines changed: 33 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,52 @@ <h1 class="card-title">Project</h1>
44

55
<div class="form-group">
66
<label for="name">Name:</label>
7-
<input class="form-control" id="name" type="text" formControlName="name" required>
8-
<p class="alert alert-danger" *ngIf="(name.dirty || name.touched) && name.invalid && name.errors.required">Name Project is required.</p>
7+
<input
8+
class="form-control"
9+
id="name"
10+
type="text"
11+
formControlName="name"
12+
[class.is-invalid]="name.invalid && name.touched"
13+
required
14+
/>
15+
<p class="text-danger" *ngIf="(name.dirty || name.touched) && name.invalid && name.errors.required">
16+
Name Project is required.
17+
</p>
918
</div>
1019

1120
<div class="form-group">
1221
<label for="details">Details:</label>
13-
<textarea class="form-control" rows="3" id="details" type="text" formControlName="details" required></textarea>
14-
<p class="alert alert-danger" *ngIf="(details.dirty || details.touched) && details.invalid && details.errors.required">Details Project is required.</p>
22+
<textarea
23+
class="form-control"
24+
rows="3"
25+
id="details"
26+
type="text"
27+
formControlName="details"
28+
[class.is-invalid]="details.invalid && details.touched"
29+
required
30+
></textarea>
31+
<p class="text-danger" *ngIf="(details.dirty || details.touched) && details.invalid && details.errors.required">
32+
Details Project is required.
33+
</p>
1534
</div>
1635

1736
<div class="form-group">
1837
<label for="status">Status:</label>
1938
<select class="form-control" formControlName="status">
20-
<option *ngFor="let status of projectStatus" [value]="status">{{status}}</option>
39+
<option
40+
*ngFor="let status of projectStatus"
41+
[class.is-invalid]="status.invalid && status.touched"
42+
[value]="status"
43+
>{{ status }}</option
44+
>
2145
</select>
22-
<p class="alert alert-danger" *ngIf="(status.dirty || status.touched) && status.invalid && status.errors.required">Status Project is required.</p>
46+
<p class="text-danger" *ngIf="(status.dirty || status.touched) && status.invalid && status.errors.required">
47+
Status Project is required.
48+
</p>
2349
</div>
2450

2551
<div class="form-group form-check" [hidden]="!projectToEdit">
26-
<input type="checkbox" class="form-check-input" id="completedProject" formControlName="completed">
52+
<input type="checkbox" class="form-check-input" id="completedProject" formControlName="completed" />
2753
<label class="form-check-label" for="completedProject">Completed project</label>
2854
</div>
2955
<div class="btn-toolbar" role="toolbar">

0 commit comments

Comments
 (0)