Skip to content

Commit c6556de

Browse files
committed
fix validation rules, sort bug
1 parent 893f05c commit c6556de

File tree

4 files changed

+39
-6
lines changed

4 files changed

+39
-6
lines changed

src/app/formView/formView.component.html

+9
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@
4040
<div [hidden]="cast.actor || !submited" class="alert alert-danger">
4141
Actor is required !
4242
</div>
43+
<div [hidden]="!(cast.actor && cast.actor.length > 30)" class="alert alert-danger">
44+
Actor is name is too long !
45+
</div>
4346
</div>
4447

4548
<div class="right salary">
@@ -48,6 +51,12 @@
4851
<div [hidden]="cast.salary || !submited" class="alert alert-danger">
4952
Salary is required !
5053
</div>
54+
<div [hidden]="isNumber(cast.salary) || !submited" class="alert alert-danger">
55+
Salary should be a Number !
56+
</div>
57+
<div [hidden]="!(cast.salary > 1000000000)" class="alert alert-danger">
58+
Salary is too high !
59+
</div>
5160
</div>
5261

5362
<div class="btn btn-default minus" (click)="clickRemoveCast(i)">

src/app/formView/formView.component.ts

+22-2
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,24 @@ export class FormViewComponent {
4949
// this should not be required if Angular2 validation works properly
5050
this.movie.casts.forEach(cast => {
5151
if (!cast.actor || !cast.salary) {
52-
isValid = false;
53-
}
52+
isValid = false;
53+
}
54+
55+
if (cast.actor && cast.actor.length > 30) {
56+
isValid = false;
57+
}
58+
59+
if (cast.salary > 1000000000) {
60+
isValid = false;
61+
}
62+
63+
if (cast.salary > 1000000000) {
64+
isValid = false;
65+
}
66+
67+
if (!this.isNumber(cast.salary)) {
68+
isValid = false;
69+
}
5470
});
5571

5672
if (isValid) {
@@ -72,4 +88,8 @@ export class FormViewComponent {
7288
changeSetSalary($event, i) {
7389
this.movie.casts[i].salary = $event.target.value;
7490
}
91+
92+
isNumber(value) {
93+
return !isNaN(parseFloat(value)) && isFinite(value);
94+
}
7595
}

src/app/listView/listView.component.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,6 @@ export class ListViewComponent {
3232
}
3333

3434
// refresh movies
35-
this.setMovies();
35+
this.movieService.updateMovies();
3636
}
3737
}

src/app/services/movie.service.ts

+7-3
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,17 @@ export class MovieService {
1212

1313
this.mapTotal();
1414

15-
this.movies$.next(this.movies);
15+
this.updateMovies();
1616
}
1717

1818
public getMovies() {
1919
return this.movies$;
2020
}
2121

22+
public updateMovies() {
23+
this.movies$.next(this.movies);
24+
}
25+
2226
public getCategories() {
2327
return {
2428
"action": ["comedy", "crime", "thriller"],
@@ -39,7 +43,7 @@ export class MovieService {
3943
public sortMoviesAsc() {
4044
this.movies = this.movies.map(movie => {
4145
movie.casts.sort((a, b) => {
42-
return a.salary > b.salary;
46+
return parseFloat(a.salary) > parseFloat(b.salary);
4347
});
4448

4549
return movie;
@@ -49,7 +53,7 @@ export class MovieService {
4953
public sortMoviesDesc() {
5054
this.movies = this.movies.map(movie => {
5155
movie.casts.sort((a, b) => {
52-
return a.salary < b.salary;
56+
return parseFloat(a.salary) < parseFloat(b.salary);
5357
});
5458

5559
return movie;

0 commit comments

Comments
 (0)