Commit abcac913477e0cee5dd5ff09328a967a57a22abf
1 parent
8e4d0b18
Added environment fields and ngMessages form validation
Showing
6 changed files
with
56 additions
and
24 deletions
Show diff stats
src/app/account/register-component.html
@@ -4,47 +4,60 @@ | @@ -4,47 +4,60 @@ | ||
4 | <div class="environment-signup-intro" ng-bind-html="ctrl.environment.signup_intro"></div> | 4 | <div class="environment-signup-intro" ng-bind-html="ctrl.environment.signup_intro"></div> |
5 | <p>{{"account.register.seeMoreMessage" | translate}} <a href="#">{{"account.register.informationsMessage" | translate}} </a></p> | 5 | <p>{{"account.register.seeMoreMessage" | translate}} <a href="#">{{"account.register.informationsMessage" | translate}} </a></p> |
6 | </div> | 6 | </div> |
7 | - <form> | 7 | + <form name="signupForm"> |
8 | <div class="row"> | 8 | <div class="row"> |
9 | - <div class="col-md-6 register-field"> | 9 | + <div class="col-md-12 register-field"> |
10 | <div class="input-group"> | 10 | <div class="input-group"> |
11 | <span class="input-group-addon"><i class="fa fa-male"></i><i class="fa fa-female"></i></span> | 11 | <span class="input-group-addon"><i class="fa fa-male"></i><i class="fa fa-female"></i></span> |
12 | - <input type="text" class="form-control" id="name" placeholder="{{'account.register.firstNameLabel' | translate }}" ng-model="ctrl.account.name"> | 12 | + <input type="text" class="form-control" id="name" name="fullName" placeholder="{{'account.register.fullNameLabel' | translate }}" ng-model="ctrl.account.name"> |
13 | </div> | 13 | </div> |
14 | </div> | 14 | </div> |
15 | 15 | ||
16 | - <div class="col-md-6 register-field"> | 16 | + <div class="form-group col-md-12 register-field" ng-class="ctrl.isInvalid(signupForm.username)"> |
17 | <div class="input-group"> | 17 | <div class="input-group"> |
18 | - <span class="input-group-addon"><i class="fa fa-male"></i><i class="fa fa-female"></i></span> | ||
19 | - <input type="text" class="form-control" id="lastName" placeholder="{{'account.register.lastNameLabel' | translate }}" ng-model="ctrl.account.lastName"> | 18 | + <span class="input-group-addon" style="font-weight: bold;"><i class="fa fa-globe"></i> {{ ctrl.environment.host }}</span> |
19 | + <input type="text" id="username" name="username" class="form-control" placeholder="{{'account.register.usernameLabel' | translate }}" ng-model="ctrl.account.login" required> | ||
20 | </div> | 20 | </div> |
21 | - </div> | ||
22 | - | ||
23 | - <div class="col-md-12 register-field"> | ||
24 | - <div class="input-group"> | ||
25 | - <span class="input-group-addon" style="font-weight: bold;"><i class="fa fa-globe"></i> http://ola.coop.br/</span> | ||
26 | - <input type="text" class="form-control" id="login" placeholder="{{'account.register.usernameLabel' | translate }}" ng-model="ctrl.account.login"> | 21 | + <div class="help-block" ng-show="signupForm.username.$touched" ng-messages="signupForm.username.$error"> |
22 | + <ul class="list-unstyled"> | ||
23 | + <li ng-messages-include="languages/messages.html"></li> | ||
2 |
|
||
24 | + </ul> | ||
27 | </div> | 25 | </div> |
28 | </div> | 26 | </div> |
29 | 27 | ||
30 | - <div class="col-md-12 register-field"> | 28 | + <div class="form-group col-md-12 register-field" ng-class="ctrl.isInvalid(signupForm.email)"> |
31 | <div class="input-group"> | 29 | <div class="input-group"> |
32 | <span class="input-group-addon"><i class="fa fa-envelope"></i></span> | 30 | <span class="input-group-addon"><i class="fa fa-envelope"></i></span> |
33 | - <input type="text" class="form-control" id="email" placeholder="{{'account.register.emailLabel' | translate }}" ng-model="ctrl.account.email"> | 31 | + <input type="email" class="form-control" id="email" name="email" placeholder="{{'account.register.emailLabel' | translate }}" ng-model="ctrl.account.email" required> |
32 | + </div> | ||
33 | + <div class="help-block" ng-show="signupForm.email.$touched" ng-messages="signupForm.email.$error"> | ||
34 | + <ul class="list-unstyled"> | ||
35 | + <li ng-messages-include="languages/messages.html"></li> | ||
36 | + </ul> | ||
34 | </div> | 37 | </div> |
35 | </div> | 38 | </div> |
36 | 39 | ||
37 | - <div class="col-md-6 register-field"> | 40 | + <div class="form-group col-md-6 register-field" ng-class="ctrl.isInvalid(signupForm.password)"> |
38 | <div class="input-group"> | 41 | <div class="input-group"> |
39 | <span class="input-group-addon"><i class="fa fa-lock"></i></span> | 42 | <span class="input-group-addon"><i class="fa fa-lock"></i></span> |
40 | - <input type="password" class="form-control" id="password" placeholder="{{'account.register.passwordLabel' | translate }}" ng-model="ctrl.account.password"> | 43 | + <input type="password" class="form-control" id="password" name="password" placeholder="{{'account.register.passwordLabel' | translate }}" ng-model="ctrl.account.password" required> |
44 | + </div> | ||
45 | + <div class="help-block" ng-show="signupForm.password.$touched" ng-messages="signupForm.password.$error"> | ||
46 | + <ul class="list-unstyled"> | ||
47 | + <li ng-messages-include="languages/messages.html"></li> | ||
48 | + </ul> | ||
41 | </div> | 49 | </div> |
42 | </div> | 50 | </div> |
43 | 51 | ||
44 | - <div class="col-md-6 register-field"> | 52 | + <div class="form-group col-md-6 register-field" ng-class="ctrl.isInvalid(signupForm.passwordConfirm)"> |
45 | <div class="input-group"> | 53 | <div class="input-group"> |
46 | <span class="input-group-addon"><i class="fa fa-unlock-alt"></i></span> | 54 | <span class="input-group-addon"><i class="fa fa-unlock-alt"></i></span> |
47 | - <input type="password" class="form-control" id="passwordConfirmation" placeholder="{{'account.register.passwordConfirmationLabel' | translate}}" ng-model="ctrl.account.password_confirmation"> | 55 | + <input type="password" class="form-control" id="passwordConfirm" name="passwordConfirm" placeholder="{{'account.register.passwordConfirmationLabel' | translate}}" ng-model="ctrl.account.password_confirmation" required> |
56 | + </div> | ||
57 | + <div class="help-block" ng-show="signupForm.passwordConfirm.$touched" ng-messages="signupForm.passwordConfirm.$error"> | ||
58 | + <ul class="list-unstyled"> | ||
59 | + <li ng-messages-include="languages/messages.html"></li> | ||
60 | + </ul> | ||
48 | </div> | 61 | </div> |
49 | </div> | 62 | </div> |
50 | 63 | ||
@@ -53,7 +66,7 @@ | @@ -53,7 +66,7 @@ | ||
53 | </div> | 66 | </div> |
54 | 67 | ||
55 | <div class="col-md-12"> | 68 | <div class="col-md-12"> |
56 | - <button type="submit" class="btn btn-default" ng-click="ctrl.signup()">{{"account.register.signupMessage" | translate}}</button> | 69 | + <button type="submit" class="btn btn-default" ng-disabled="signupForm.$invalid" ng-click="ctrl.signup()">{{"account.register.signupMessage" | translate}}</button> |
57 | </div> | 70 | </div> |
58 | 71 | ||
59 | </div> | 72 | </div> |
src/app/account/register.component.ts
@@ -40,4 +40,8 @@ export class RegisterComponent { | @@ -40,4 +40,8 @@ export class RegisterComponent { | ||
40 | this.notificationService.error({ message: "account.register.passwordConfirmation.failed" }); | 40 | this.notificationService.error({ message: "account.register.passwordConfirmation.failed" }); |
41 | } | 41 | } |
42 | } | 42 | } |
43 | + | ||
44 | + isInvalid(field: Object): Object { | ||
45 | + return { 'has-error': field['$touched'] && field['$invalid'] }; | ||
46 | + } | ||
43 | } | 47 | } |
src/app/layout/scss/_forms.scss
src/languages/en.json
@@ -102,8 +102,7 @@ | @@ -102,8 +102,7 @@ | ||
102 | "account.register.welcomeMessageTitle": "Nice to have you there!", | 102 | "account.register.welcomeMessageTitle": "Nice to have you there!", |
103 | "account.register.seeMoreMessage": "See more ", | 103 | "account.register.seeMoreMessage": "See more ", |
104 | "account.register.informationsMessage": "informations", | 104 | "account.register.informationsMessage": "informations", |
105 | - "account.register.firstNameLabel": "First name", | ||
106 | - "account.register.lastNameLabel": "Last name", | 105 | + "account.register.fullNameLabel": "Full name", |
107 | "account.register.usernameLabel": "Username", | 106 | "account.register.usernameLabel": "Username", |
108 | "account.register.emailLabel": "Email", | 107 | "account.register.emailLabel": "Email", |
109 | "account.register.passwordLabel": "Password", | 108 | "account.register.passwordLabel": "Password", |
@@ -114,5 +113,9 @@ | @@ -114,5 +113,9 @@ | ||
114 | "account.register.termsOfUseMessage": "terms of use", | 113 | "account.register.termsOfUseMessage": "terms of use", |
115 | "account.register.success.title": "Good job!", | 114 | "account.register.success.title": "Good job!", |
116 | "account.register.success.message": "Account created!", | 115 | "account.register.success.message": "Account created!", |
117 | - "account.register.passwordConfirmation.failed": "Wrong password confirmation" | 116 | + "account.register.passwordConfirmation.failed": "Wrong password confirmation", |
117 | + "messages.invalid.required": "This field is required", | ||
118 | + "messages.invalid.maxlength": "This field is too long", | ||
119 | + "messages.invalid.minlength": "This field is too short", | ||
120 | + "messages.invalid.email": "This needs to be a valid email" | ||
118 | } | 121 | } |
@@ -0,0 +1,4 @@ | @@ -0,0 +1,4 @@ | ||
1 | +<li ng-message="required" translate="messages.invalid.required"></li> | ||
2 | +<li ng-message="minlength" translate="messages.invalid.minlength"></li> | ||
3 | +<li ng-message="maxlength" translate="messages.invalid.maxlength"></li> | ||
4 | +<li ng-message="email" translate="messages.invalid.email"></li> |
src/languages/pt.json
@@ -102,7 +102,7 @@ | @@ -102,7 +102,7 @@ | ||
102 | "account.register.welcomeMessageTitle": "Ótimo ter você aqui!", | 102 | "account.register.welcomeMessageTitle": "Ótimo ter você aqui!", |
103 | "account.register.seeMoreMessage": "Saiba mais ", | 103 | "account.register.seeMoreMessage": "Saiba mais ", |
104 | "account.register.informationsMessage": "informações", | 104 | "account.register.informationsMessage": "informações", |
105 | - "account.register.firstNameLabel": "Nome", | 105 | + "account.register.fullNameLabel": "Nome completo", |
106 | "account.register.lastNameLabel": "Sobrenome", | 106 | "account.register.lastNameLabel": "Sobrenome", |
107 | "account.register.usernameLabel": "Nome de usuário", | 107 | "account.register.usernameLabel": "Nome de usuário", |
108 | "account.register.emailLabel": "Email", | 108 | "account.register.emailLabel": "Email", |
@@ -114,5 +114,9 @@ | @@ -114,5 +114,9 @@ | ||
114 | "account.register.haveAccountMessage": "Já possui uma conta?", | 114 | "account.register.haveAccountMessage": "Já possui uma conta?", |
115 | "account.register.success.title": "Bom trabalho!", | 115 | "account.register.success.title": "Bom trabalho!", |
116 | "account.register.success.message": "Conta criada com sucesso!", | 116 | "account.register.success.message": "Conta criada com sucesso!", |
117 | - "account.register.passwordConfirmation.failed": "A confirmação de senha não corresponde à senha" | 117 | + "account.register.passwordConfirmation.failed": "A confirmação de senha não corresponde à senha", |
118 | + "messages.invalid.required": "Campo obrigatório", | ||
119 | + "messages.invalid.maxlength": "O valor é muito longo", | ||
120 | + "messages.invalid.minlength": "O valor é muito curto", | ||
121 | + "messages.invalid.email": "Informe um email válido" | ||
118 | } | 122 | } |