summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/views/error_view.js.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/views/error_view.js.coffee')
-rw-r--r--app/assets/javascripts/views/error_view.js.coffee25
1 files changed, 25 insertions, 0 deletions
diff --git a/app/assets/javascripts/views/error_view.js.coffee b/app/assets/javascripts/views/error_view.js.coffee
new file mode 100644
index 00000000..0d232fca
--- /dev/null
+++ b/app/assets/javascripts/views/error_view.js.coffee
@@ -0,0 +1,25 @@
+class CakeSide.Views.ErrorView extends Backbone.View
+ initialize: (options) ->
+ @attributesWithErrors = options.attributesWithErrors
+ _.bindAll(@, "clearOldErrors", "renderErrors", "renderError", "fieldFor")
+
+ render: () ->
+ @clearOldErrors()
+ @renderErrors()
+
+ clearOldErrors: () ->
+ @$(".error").removeClass("error")
+ @$("p.inline-errors").remove()
+
+ renderErrors: () ->
+ _.each(@attributesWithErrors.errors, @renderError)
+
+ renderError: (errors, attribute) ->
+ errorString = errors.join(", ")
+ field = @fieldFor(attribute)
+ errorTag = $('<p>').addClass('inline-errors').text(errorString)
+ field.append(errorTag)
+ field.addClass("error")
+
+ fieldFor: (attribute) ->
+ @$("#cake_#{attribute}").parent()