Commit b7c1d10a
Changed files (5)
app
assets
javascripts
views
app/assets/javascripts/views/passwords/reset_form.js.coffee
@@ -1,4 +1,4 @@
-class csx.Views.PasswordResetForm extends csx.AutoView
+class csx.Views.PasswordResetForm extends csx.FormView
@viewName 'password-reset-form'
modelKey: "user"
events:
@@ -7,25 +7,3 @@ class csx.Views.PasswordResetForm extends csx.AutoView
initialize: () ->
@model = new csx.Models.PasswordReset()
-
- render: ->
- @renderErrors(@model.validationError)
-
- onInput: (event) ->
- $element = $(event.target)
- @model.set(@fieldNameFor($element), @valueFor($element))
- @$('input[type=submit]').prop('disabled', !@model.isValid())
- @render()
-
- onSubmit: (event) ->
- if !@model.isValid()
- @$('input[type=submit]').prop('disabled', true)
- event.preventDefault()
- event.stopPropagation()
- @render()
-
- valueFor: (element) ->
- if element.is(':checkbox')
- element.prop('checked')
- else
- element.val()
app/assets/javascripts/views/sessions/login_form.js.coffee
@@ -1,6 +1,6 @@
#= require views/auto_view
-class csx.Views.LoginForm extends csx.AutoView
+class csx.Views.LoginForm extends csx.FormView
@viewName 'login-form'
modelKey: "session"
events:
@@ -10,19 +10,3 @@ class csx.Views.LoginForm extends csx.AutoView
initialize: () ->
@model = new csx.Models.Session()
-
- render: ->
- @renderErrors(@model.validationError)
-
- onInput: (event) ->
- $element = $(event.target)
- @model.set(@fieldNameFor($element), $element.val())
- @$('input[type=submit]').prop('disabled', !@model.isValid())
- @render()
-
- onSubmit: (event) ->
- if !@model.isValid()
- @$('input[type=submit]').prop('disabled', true)
- event.preventDefault()
- event.stopPropagation()
- @render()
app/assets/javascripts/views/sessions/registration-form.js.coffee
@@ -1,6 +1,6 @@
#= require views/auto_view
-class csx.Views.RegistrationForm extends csx.AutoView
+class csx.Views.RegistrationForm extends csx.FormView
@viewName 'registration-form'
modelKey: "user"
events:
@@ -12,25 +12,3 @@ class csx.Views.RegistrationForm extends csx.AutoView
initialize: () ->
@model = new csx.Models.Registration()
-
- render: ->
- @renderErrors(@model.validationError)
-
- onInput: (event) ->
- $element = $(event.target)
- @model.set(@fieldNameFor($element), @valueFor($element))
- @$('input[type=submit]').prop('disabled', !@model.isValid())
- @render()
-
- onSubmit: (event) ->
- if !@model.isValid()
- @$('input[type=submit]').prop('disabled', true)
- event.preventDefault()
- event.stopPropagation()
- @render()
-
- valueFor: (element) ->
- if element.is(':checkbox')
- element.prop('checked')
- else
- element.val()
app/assets/javascripts/views/auto_view.js.coffee
@@ -24,19 +24,4 @@ class csx.AutoView extends Backbone.View
@views[key] ?= []
@views[key].push(view)
- hideErrors: () ->
- @$(':input').removeClass('is-invalid')
- @$('.invalid-feedback').html('')
-
- showError: (field, message) ->
- @$(field).addClass('is-invalid').siblings('.invalid-feedback').html(message)
-
- renderErrors: (errors) ->
- @hideErrors()
- _.each _.keys(errors), (key) =>
- @showError(@field(key), errors[key])
-
- field: (name) -> @$("##{@fieldName(name)}")
- fieldName: (name) -> "#{@modelKey}_#{name}"
- fieldNameFor: (element) -> element.attr('id').replace("#{@modelKey}_", '')
render: -> @
app/assets/javascripts/views/form_view.js.coffee
@@ -0,0 +1,40 @@
+#= require ./auto_view
+
+class csx.FormView extends csx.AutoView
+ hideErrors: () ->
+ @$(':input').removeClass('is-invalid')
+ @$('.invalid-feedback').html('')
+
+ showError: (field, message) ->
+ @$(field).addClass('is-invalid').siblings('.invalid-feedback').html(message)
+
+ renderErrors: (errors) ->
+ @hideErrors()
+ _.each _.keys(errors), (key) =>
+ @showError(@field(key), errors[key])
+
+ render: ->
+ @renderErrors(@model.validationError)
+
+ onInput: (event) ->
+ $element = $(event.target)
+ @model.set(@fieldNameFor($element), @valueFor($element))
+ @$('input[type=submit]').prop('disabled', !@model.isValid())
+ @render()
+
+ onSubmit: (event) ->
+ if !@model.isValid()
+ @$('input[type=submit]').prop('disabled', true)
+ event.preventDefault()
+ event.stopPropagation()
+ @render()
+
+ valueFor: (element) ->
+ if element.is(':checkbox')
+ element.prop('checked')
+ else
+ element.val()
+
+ field: (name) -> @$("##{@fieldName(name)}")
+ fieldName: (name) -> "#{@modelKey}_#{name}"
+ fieldNameFor: (element) -> element.attr('id').replace("#{@modelKey}_", '')