diff options
Diffstat (limited to 'app/assets/javascripts/views/error_view.js.coffee')
| -rw-r--r-- | app/assets/javascripts/views/error_view.js.coffee | 25 |
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() |
