Another quick fix.
[redakcja.git] / project / static / js / views / flash.js
1 /*globals View render_template*/
2 var FlashView = View.extend({
3   template: 'flash-view-template',
4
5   init: function(element, model, template) {
6     this.shownMessage = null;
7     this._super(element, model, template);
8     this.setModel(model);
9   },
10   
11   setModel: function(model) {
12     if (this.model) {
13       this.model.removeObserver(this);
14     }
15     this.model = model;
16     this.shownMessage = null;
17     if (this.model) {
18       this.shownMessage = this.model.get('firstFlashMessage');
19       this.model.addObserver(this, 'firstFlashMessage', this.modelFirstFlashMessageChanged.bind(this));
20     }
21     this.render();
22   },
23   
24   render: function() {
25     this.element.html(render_template(this.template, this));
26   },
27   
28   modelFirstFlashMessageChanged: function(property, value) {
29     this.element.fadeOut('slow', function() {
30       this.shownMessage = value;
31       this.render();
32       this.element.fadeIn('slow');
33     }.bind(this));
34   }
35 });