X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/07b09d489ecbc789a096e53d98070c286c286101..bb9b43739164088745a8e64bdde23ee0ca378d47:/project/static/js/views/html.js?ds=sidebyside diff --git a/project/static/js/views/html.js b/project/static/js/views/html.js index 87f2ab7b..3d803fc7 100644 --- a/project/static/js/views/html.js +++ b/project/static/js/views/html.js @@ -1,14 +1,41 @@ /*global View render_template panels */ var HTMLView = View.extend({ + _className: 'HTMLView', element: null, model: null, template: 'html-view-template', - init: function(element, model, template) { + init: function(element, model, parent, template) { this._super(element, model, template); + this.parent = parent; + + this.model + .addObserver(this, 'data', this.modelDataChanged.bind(this)) + .addObserver(this, 'state', this.modelStateChanged.bind(this)); + + $('.htmlview', this.element).html(this.model.get('data')); + this.modelStateChanged('state', this.model.get('state')); + this.model.load(); + }, + + modelDataChanged: function(property, value) { + $('.htmlview', this.element).html(value); + }, + + modelStateChanged: function(property, value) { + if (value == 'synced' || value == 'dirty') { + this.parent.unfreeze(); + } else if (value == 'unsynced') { + this.parent.freeze('Niezsynchronizowany...'); + } else if (value == 'loading') { + this.parent.freeze('Ładowanie...'); + } else if (value == 'saving') { + this.parent.freeze('Zapisywanie...'); + } }, dispose: function() { + this.model.removeObserver(this); this._super(); } });