@@ -5,14 +5,14 @@ import { StateService } from 'ui-router-ng2';<% } %>
55< % _ if ( filters . ngroute ) { - % >
66import { Router } from '@angular/router' ; < % } % >
77import { AuthService } from '../../../components/auth/auth.service';
8+ import template from './signup.html';
89
910< % _ if ( filters . flow ) { - % >
1011type User = {
1112 name : string ;
1213 email : string ;
1314 password : string ;
14- } ;< % } % >
15- < % _ if ( filters . ts ) { - % >
15+ } ;< % } % > < % _ if ( filters . ts ) { - % >
1616interface User {
1717 name : string ;
1818 email : string ;
@@ -21,7 +21,7 @@ interface User {
2121
2222@Component({
2323 selector : 'signup' ,
24- template : require ( './signup.<%=templateExt%>' )
24+ template ,
2525} )
2626export class SignupComponent {
2727 user : User = {
@@ -61,19 +61,27 @@ export class SignupComponent {
6161 < % if ( filters . ngroute ) { % > this . Router . navigateByUrl ( '/home' ) ; < % } - % >
6262 < % if ( filters . uirouter ) { % > this . StateService . go ( 'main' ) ; < % } - % >
6363 } )
64- . catch ( err => {
65- err = err . data ;
66- this . errors = { } ; < % if ( filters . mongooseModels ) { % >
64+ . catch ( err => { < % if ( filters . mongooseModels ) { % >
65+ this . errors = err . errors ;
66+
6767 // Update validity of form fields that match the mongoose errors
68- err . errors . forEach ( ( error , field ) => {
68+ Object . entries ( err . errors ) . forEach ( ( [ field , error ] ) => {
6969 this . errors [ field ] = error . message ;
70+
71+ if ( field === 'email' && error . kind === 'user defined' ) {
72+ form . form . controls [ field ] . setErrors ( { inUse : true } ) ;
73+ }
7074 } ) ; < % } % > < % if ( filters . sequelizeModels ) { % >
75+ this . errors = { } ;
76+
7177 // Update validity of form fields that match the sequelize errors
7278 if ( err . name ) {
7379 err . fields . forEach ( field => {
7480 this . errors [ field ] = err . message ;
7581 } ) ;
7682 } < % } % >
83+
84+ this . submitted = false ;
7785 } ) ;
7886 }
7987}
0 commit comments