X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/b348abeb083671e831f711d3d41949a9b3f3a7b4..eb61c7e9637a2744b4ffa748317f2b72bd16a27d:/project/static/js/views/html.js diff --git a/project/static/js/views/html.js b/project/static/js/views/html.js index 41c34979..4dc3d544 100644 --- a/project/static/js/views/html.js +++ b/project/static/js/views/html.js @@ -11,26 +11,53 @@ var HTMLView = View.extend({ this.model .addObserver(this, 'data', this.modelDataChanged.bind(this)) - .addObserver(this, 'synced', this.modelSyncChanged.bind(this)); + .addObserver(this, 'state', this.modelStateChanged.bind(this)); $('.htmlview', this.element).html(this.model.get('data')); - if (!this.model.get('synced')) { - this.parent.freeze('Niezsynchronizowany...'); - this.model.load(); - } + this.modelStateChanged('state', this.model.get('state')); + this.model.load(); }, modelDataChanged: function(property, value) { $('.htmlview', this.element).html(value); }, - modelSyncChanged: function(property, value) { - if (value) { - this.parent.unfreeze(); - } else { - this.parent.freeze('Niezsynchronizowany...'); + modelStateChanged: function(property, value) { + if (value == 'synced' || value == 'dirty') { + this.unfreeze(); + } else if (value == 'unsynced') { + this.freeze('Niezsynchronizowany...'); + } else if (value == 'loading') { + this.freeze('Ładowanie...'); + } else if (value == 'saving') { + this.freeze('Zapisywanie...'); + } else if (value == 'error') { + this.freeze(this.model.get('error')); } }, + + + render: function() { + $('.html-print-link', this.element).unbind(); + + this._super(); + + $('.html-print-link', this.element).mouseover( + this.printView.bind(this) + ); + }, + + + printView: function(event) { + var base = $(event.target).attr('ui:baseref'); + $(event.target).attr('href', base + "?revision=" + this.model.get('revision') ); + + return true; + }, + + reload: function() { + this.model.load(true); + }, dispose: function() { this.model.removeObserver(this);