X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/7f3f79476a57d10991566c511d40e20154c01064..78644811ca0c6042212788dc67add42bc41fb74c:/platforma/static/js/views/flash.js diff --git a/platforma/static/js/views/flash.js b/platforma/static/js/views/flash.js new file mode 100644 index 00000000..b2240e43 --- /dev/null +++ b/platforma/static/js/views/flash.js @@ -0,0 +1,40 @@ +/*globals View render_template*/ +var FlashView = View.extend({ + template: 'flash-view-template', + + init: function(element, model, template) { + this.shownMessage = null; + this._super(element, model, template); + this.setModel(model); + }, + + setModel: function(model) { + if (this.model) { + this.model.removeObserver(this); + } + this.model = model; + this.shownMessage = null; + if (this.model) { + this.shownMessage = this.model.get('firstFlashMessage'); + this.model.addObserver(this, 'firstFlashMessage', this.modelFirstFlashMessageChanged.bind(this)); + } + this.render(); + }, + + render: function() { + this.element.html(render_template(this.template, this)); + }, + + modelFirstFlashMessageChanged: function(property, value) { + this.element.fadeOut('slow', function() { + this.element.css({'z-index': 0}); + this.shownMessage = value; + this.render(); + + if(this.shownMessage) { + this.element.css({'z-index': 1000}); + this.element.fadeIn('slow'); + } + }.bind(this)); + } +});