diff options
| author | mo <mo.khan@gmail.com> | 2017-09-07 20:26:55 -0600 |
|---|---|---|
| committer | mo <mo.khan@gmail.com> | 2017-09-07 20:26:55 -0600 |
| commit | 91464727b6c252f149e0c8c7e0d09c0f22a296b2 (patch) | |
| tree | 78357c1cdb7c0594b573955e952096a9fae18b6a /app | |
| parent | 1ca9d86bf171dc29a53f126e382e1be2b0ca506b (diff) | |
connect login-form to session model validation.
Diffstat (limited to 'app')
| -rw-r--r-- | app/assets/javascripts/views/sessions/login_form.js.coffee | 32 | ||||
| -rw-r--r-- | app/views/sessions/new.html.erb | 2 |
2 files changed, 15 insertions, 19 deletions
diff --git a/app/assets/javascripts/views/sessions/login_form.js.coffee b/app/assets/javascripts/views/sessions/login_form.js.coffee index a41de95b..0cb273da 100644 --- a/app/assets/javascripts/views/sessions/login_form.js.coffee +++ b/app/assets/javascripts/views/sessions/login_form.js.coffee @@ -8,30 +8,26 @@ class CakeSide.Views.LoginForm extends CakeSide.AutoView 'keyup #session_password': 'onKeyUp' 'submit form': 'onSubmit' - render: -> - @hideErrors() - @$('input[type=submit]').prop('disabled', !@isValid()) - _.each _.keys(@errors), (key) => - @showError(@field(key), @errors[key]) - - isValid: -> - _.keys(@errors).length == 0 - - validate: -> - @errors = {} - if _.isEmpty(@field("username").val()) - @errors['username'] = "Email is required" + initialize: () -> + @model = new CakeSide.Models.Session() - if _.isEmpty(@field("password").val()) - @errors['password'] = "Password is required" + render: -> + @renderErrors(@model.validationError) onKeyUp: (event) -> - @validate() + @model.set('username', @field('username').val()) + @model.set('password', @field('password').val()) + @$('input[type=submit]').prop('disabled', !@model.isValid()) @render() onSubmit: (event) -> - @validate() - if !@isValid() + if !@model.isValid() + @$('input[type=submit]').prop('disabled', true) event.preventDefault() event.stopPropagation() @render() + + renderErrors: (errors) -> + @hideErrors() + _.each _.keys(errors), (key) => + @showError(@field(key), errors[key]) diff --git a/app/views/sessions/new.html.erb b/app/views/sessions/new.html.erb index 74a4ba64..8417b008 100644 --- a/app/views/sessions/new.html.erb +++ b/app/views/sessions/new.html.erb @@ -25,7 +25,7 @@ <div class="col"> <div data-autoview="login-form"> - <%= form_for(@session, url: sessions_path(@session), html: { class: "form-horizontal needs-validation" }) do |f| %> + <%= form_for(@session, url: sessions_path(@session), html: { class: "form-horizontal needs-validation", novalidate: :novalidate }) do |f| %> <legend>Got an account? Login!</legend> <div class="form-group"> <%= email_field_tag 'session[username]', '', placeholder: 'Email', class: "form-control", required: :required %> |
