mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-10 11:33:17 +00:00
64 lines
1.6 KiB
JavaScript
64 lines
1.6 KiB
JavaScript
/*
|
||
* This file is part of Phraseanet
|
||
*
|
||
* (c) 2005-2013 Alchemy
|
||
*
|
||
* For the full copyright and license information, please view the LICENSE
|
||
* file that was distributed with this source code.
|
||
*/
|
||
|
||
define([
|
||
"jquery",
|
||
"underscore",
|
||
"backbone"
|
||
], function($, _, Backbone) {
|
||
var ErrorView = Backbone.View.extend({
|
||
tagName: "div",
|
||
initialize: function(options) {
|
||
options = options || {};
|
||
|
||
if (false === "name" in options) {
|
||
throw "Missing name attribute in error view";
|
||
}
|
||
|
||
if (false === "errorTemplate" in options) {
|
||
throw "Missing errorTemplate attribute in error view";
|
||
}
|
||
|
||
this.name = options.name;
|
||
this.errorTemplate = options.errorTemplate;
|
||
|
||
this.errors = options.errors || {};
|
||
this.onRenderError = options.onRenderError || null;
|
||
},
|
||
render: function() {
|
||
if (this.errors.length > 0 ) {
|
||
var template = _.template($(this.errorTemplate).html(), {
|
||
errors: this.errors
|
||
});
|
||
|
||
this.$el.html(template);
|
||
|
||
if (_.isFunction(this.onRenderError)) {
|
||
this.onRenderError(this.name, this.$el);
|
||
}
|
||
} else {
|
||
this.reset();
|
||
}
|
||
|
||
return this;
|
||
},
|
||
renderErrors: function (errors) {
|
||
this.errors = errors;
|
||
this.render();
|
||
|
||
return this;
|
||
},
|
||
reset: function() {
|
||
this.$el.empty();
|
||
}
|
||
});
|
||
|
||
return ErrorView;
|
||
});
|