diff options
author | Cash Costello <cash.costello@gmail.com> | 2012-01-08 14:07:58 -0500 |
---|---|---|
committer | Cash Costello <cash.costello@gmail.com> | 2012-01-08 14:07:58 -0500 |
commit | 855de1b33e1ba1753ac1a5088e640e5fcff09f79 (patch) | |
tree | 98295ac7c8b09f623a3f3766eedc073762ecac45 /js/lib | |
parent | e3d38a9e9905ea19b48f5413d5c5b371f1bd7316 (diff) | |
download | elgg-855de1b33e1ba1753ac1a5088e640e5fcff09f79.tar.gz elgg-855de1b33e1ba1753ac1a5088e640e5fcff09f79.tar.bz2 |
Fixes #4192 making the bottom of widget columns equal rather than height
Diffstat (limited to 'js/lib')
-rw-r--r-- | js/lib/ui.widgets.js | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/js/lib/ui.widgets.js b/js/lib/ui.widgets.js index 6114aeacd..d897564b4 100644 --- a/js/lib/ui.widgets.js +++ b/js/lib/ui.widgets.js @@ -29,7 +29,7 @@ elgg.ui.widgets.init = function() { $('.elgg-widget-edit > form ').live('submit', elgg.ui.widgets.saveSettings); $('a.elgg-widget-collapse-button').live('click', elgg.ui.widgets.collapseToggle); - elgg.ui.widgets.equalHeight(".elgg-widgets"); + elgg.ui.widgets.setMinHeight(".elgg-widgets"); }; /** @@ -175,22 +175,29 @@ elgg.ui.widgets.saveSettings = function(event) { }; /** - * Make all elements have the same min-height + * Set the min-height so that all widget column bottoms are the same * * This addresses the issue of trying to drag a widget into a column that does - * not have any widgets. + * not have any widgets or many fewer widgets than other columns. * * @param {String} selector * @return void */ -elgg.ui.widgets.equalHeight = function(selector) { - var maxHeight = 0; +elgg.ui.widgets.setMinHeight = function(selector) { + var maxBottom = 0; $(selector).each(function() { - if ($(this).height() > maxHeight) { - maxHeight = $(this).height(); + var bottom = parseInt($(this).offset().top + $(this).height()); + if (bottom > maxBottom) { + maxBottom = bottom; + } + }) + $(selector).each(function() { + var bottom = parseInt($(this).offset().top + $(this).height()); + if (bottom < maxBottom) { + var newMinHeight = parseInt($(this).height() + (maxBottom - bottom)); + $(this).css('min-height', newMinHeight + 'px'); } }) - $(selector).css('min-height', maxHeight + 'px'); }; elgg.register_hook_handler('init', 'system', elgg.ui.widgets.init); |