summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/models
diff options
context:
space:
mode:
authormo <mo.khan@gmail.com>2017-09-07 19:29:50 -0600
committermo <mo.khan@gmail.com>2017-09-07 19:29:50 -0600
commitbd64649a0f3e2afb887c62686cb904b5a880fa77 (patch)
tree62a7a90ac9915362677225c54b8940bf9f8a7337 /app/assets/javascripts/models
parent773f6781ef904b73a88a6b9ef8b5f95bde99be0d (diff)
load error messages into js for client side validation.
Diffstat (limited to 'app/assets/javascripts/models')
-rw-r--r--app/assets/javascripts/models/session.js.coffee21
1 files changed, 21 insertions, 0 deletions
diff --git a/app/assets/javascripts/models/session.js.coffee b/app/assets/javascripts/models/session.js.coffee
new file mode 100644
index 00000000..bfea945e
--- /dev/null
+++ b/app/assets/javascripts/models/session.js.coffee
@@ -0,0 +1,21 @@
+class CakeSide.Models.Session extends Backbone.Model
+ modelKey: 'session'
+ defaults:
+ username: null
+ password: null
+
+ requiredFields: ['username', 'password']
+
+ validate: (attributes, options) ->
+ errors = {}
+
+ _.each @requiredFields, (field) =>
+ if _.isEmpty(attributes[field])
+ errors[field] = @errorFor(field, 'blank')
+
+ return errors if _.keys(errors).length > 0
+
+ errorFor: (attribute, scope) ->
+ attributeName = I18n.t("activerecord.attributes.#{@modelKey}.#{attribute}")
+ error = I18n.t("activerecord.errors.messages.#{scope}")
+ "#{attributeName} #{error}"