From 691fca5866f7c4365cba67afb75b829fc3c8713b Mon Sep 17 00:00:00 2001 From: rolux Date: Mon, 13 Sep 2010 13:53:31 +0200 Subject: [PATCH] improvements for list item preview --- build/js/ox.ui.js | 102 +++++++++++++++++++++++++++++++++++----------- 1 file changed, 78 insertions(+), 24 deletions(-) diff --git a/build/js/ox.ui.js b/build/js/ox.ui.js index f2db590..9a466f3 100644 --- a/build/js/ox.ui.js +++ b/build/js/ox.ui.js @@ -1582,7 +1582,9 @@ requires height: 216, minHeight: 144, minWidth: 256, + movable: true, padding: 16, + resizable: true, width: 384 }) .options(options || {}) @@ -1593,6 +1595,11 @@ requires } }); + $.extend(self, { + initialWidth: self.options.width, + initialHeight: self.options.height + }) + if (!Ox.isArray(self.options.buttons[0])) { self.options.buttons = [[], self.options.buttons]; } @@ -1601,9 +1608,10 @@ requires size: 'medium' }) .addClass('OxTitleBar') - .mousedown(drag) - .dblclick(center) .appendTo(that); + self.options.movable && that.$titlebar + .mousedown(drag) + .dblclick(center); that.$title = new Ox.Element() .addClass('OxTitle') @@ -1635,11 +1643,13 @@ requires .appendTo(that.$buttonsbar); }); - that.$resize = new Ox.Element() - .addClass('OxResize') - .mousedown(resize) - .dblclick(reset) - .appendTo(that.$buttonsbar); + if (self.options.resizable) { + that.$resize = new Ox.Element() + .addClass('OxResize') + .mousedown(resize) + .dblclick(reset) + .appendTo(that.$buttonsbar); + } $.each(self.options.buttons[1].reverse(), function(i, button) { that.$buttons[that.$buttons.length] = new Ox.Button({ @@ -1726,12 +1736,17 @@ requires } function reset() { + $.extend(self.options, { + height: self.initialHeight, + width: self.initialWidth + }); that/*.css({ left: Math.max(that.offset().left, 24 - that.width()) })*/ .width(self.options.width) .height(self.options.height); that.$content.height(self.options.height - 48 - 2 * self.options.padding); // fixme: this should happen automatically + triggerResizeEvent(); } function resize(event) { @@ -1748,37 +1763,45 @@ requires top: offset.top, margin: 0 }); - var width = Ox.limit( - elementWidth - x + event.clientX, - self.options.minWidth, Math.min(documentWidth, documentWidth - offset.left) - ), - height = Ox.limit( - elementHeight - y + event.clientY, - self.options.minHeight, documentHeight - offset.top - ); - that.width(width); - that.height(height); - that.$content.height(height - 48 - 2 * self.options.padding); // fixme: this should happen automatically + self.options.width = Ox.limit( + elementWidth - x + event.clientX, + self.options.minWidth, Math.min(documentWidth, documentWidth - offset.left) + ); + self.options.height = Ox.limit( + elementHeight - y + event.clientY, + self.options.minHeight, documentHeight - offset.top + ); + that.width(self.options.width); + that.height(self.options.height); + that.$content.height(self.options.height - 48 - 2 * self.options.padding); // fixme: this should happen automatically + triggerResizeEvent(); }); $window.one('mouseup', function() { $window.unbind('mousemove'); }); } + function triggerResizeEvent() { + that.triggerEvent('resize', { + width: self.options.width, + height: self.options.height + }); + } + self.onChange = function(key, value) { if (key == 'height' || key == 'width') { that.animate({ height: self.options.height + 'px', width: self.options.width + 'px' - }, 250); + }, 100); that.$content.height(self.options.height - 48 - 2 * self.options.padding); // fixme: this should happen automatically } else if (key == 'title') { that.$title.animate({ opacity: 0 - }, 250, function() { + }, 100, function() { that.$title.html(value).animate({ opacity: 1 - }, 250); + }, 100); }); } } @@ -1786,7 +1809,11 @@ requires that.append = function($element) { that.$content.append($element); return that; - } + }; + + that.center = function() { + + }; that.close = function(callback) { callback = callback || function() {}; @@ -1799,7 +1826,7 @@ requires }); $window.unbind('mouseup', mouseupLayer) return that; - } + }; that.disable = function() { // to be used on submit of form, like login @@ -1841,6 +1868,25 @@ requires return that; }; + that.resize = function(width, height, callback) { + $.extend(self, { + initialWidth: width, + initialHeight: height + }); + $.extend(self.options, { + width: width, + height: height + }); + // fixme: duplicated + that.animate({ + height: self.options.height + 'px', + width: self.options.width + 'px' + }, 100, function() { + that.$content.height(self.options.height - 48 - 2 * self.options.padding); // fixme: this should happen automatically + callback(); + }); + } + return that; } @@ -5686,6 +5732,10 @@ requires } } + that.closePreview = function() { + that.$element.closePreview(); + }; + that.sortList = function(key, operator) { self.options.sort = [{ key: key, @@ -6554,6 +6604,10 @@ requires return that; }; + that.closePreview = function() { + self.preview = false; + }; + that.reload = function() { clear(); that.clearCache(); @@ -7072,7 +7126,7 @@ requires }; that.closePreview = function() { - self.preview = false; + that.$body.closePreview(); }; that.resizeColumn = function(id, width) {