X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/dba809feb44cd1c4d155f3e3254a1cca5323f95f..b0773e2054ab6bc6305142fdd28799e0f41616c9:/project/static/js/views/view.js diff --git a/project/static/js/views/view.js b/project/static/js/views/view.js index 498341e7..52fc6e04 100644 --- a/project/static/js/views/view.js +++ b/project/static/js/views/view.js @@ -1,11 +1,11 @@ -/*globals Class render_template*/ -var View = Class.extend({ +/*globals Editor render_template*/ +var View = Editor.Object.extend({ + _className: 'View', element: null, model: null, template: null, overlayClass: 'view-overlay', overlay: null, - id: null, init: function(element, model, template) { this.element = $(element); @@ -13,16 +13,12 @@ var View = Class.extend({ this.template = template || this.template; if (this.template) { - this.element.html(render_template(this.template, {})); + this.element.html(render_template(this.template, this)); } - View.lastId = View.lastId + 1; - this.id = 'view-' + View.lastId; - }, - - // Identyczność - hash: function() { - + this._resizeHandler = this.resized.bind(this); + $(window).bind('resize', this._resizeHandler); + $(this.element).bind('resize', this._resizeHandler); }, frozen: function() { @@ -38,8 +34,14 @@ var View = Class.extend({ width: this.element.width(), height: this.element.height(), top: this.element.position().top, - left: this.element.position().left + left: this.element.position().left, + 'user-select': 'none', + '-webkit-user-select': 'none', + '-khtml-user-select': 'none', + '-moz-user-select': 'none', + overflow: 'hidden' }) + .attr('unselectable', 'on') .appendTo(this.element.parent()); this.overlay.children('div').css({ @@ -55,11 +57,25 @@ var View = Class.extend({ } }, + resized: function(event) { + if (this.frozen()) { + this.overlay.css({ + position: 'absolute', + width: this.element.width(), + height: this.element.height(), + top: this.element.position().top, + left: this.element.position().left + }).children('div').css({ + position: 'relative', + top: this.overlay.height() / 2 - 20 + }); + } + }, + dispose: function() { + $(window).unbind('resize', this._resizeHandler); + $(this.element).unbind('resize', this._resizeHandler); this.unfreeze(); this.element.contents().remove(); } }); - - -View.lastId = 0;