Zmiana nazwy project -> platforma.
[redakcja.git] / 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 (file)
index 0000000..b2240e4
--- /dev/null
@@ -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));
+  }
+});