59579af799c6c97a9fecef0b780b333d2832a428
[redakcja.git] / project / static / js / views / html.js
1 /*global View render_template panels */
2 var HTMLView = View.extend({
3   element: null,
4   model: null,
5   template: 'html-view-template',
6   
7   init: function(element, model, template) {
8     this._super(element, model, template);
9     
10     this.model
11       .addObserver(this, 'data', this.modelDataChanged.bind(this))
12       .addObserver(this, 'synced', this.modelSyncChanged.bind(this));
13       
14     if (!this.model.get('synced')) {
15       this.freeze('Niezsynchronizowany...');
16       this.model.load();
17     } else {
18       $('.htmlview', this.element).html(this.model.get('data'));
19     }
20   },
21   
22   modelDataChanged: function(property, value) {
23     $('.htmlview', this.element).html(value);
24   },
25   
26   modelSyncChanged: function(property, value) {
27     if (value) {
28       this.unfreeze();
29     } else {
30       this.freeze('Niezsynchronizowany...');
31     }
32   },
33   
34   dispose: function() {
35     this.model.removeObserver(this);
36     this._super();
37   }
38 });
39
40 // Register view
41 panels['html'] = HTMLView;