From 3a45b53736691dc6bdbe2f31f1bf98b8936cf17e Mon Sep 17 00:00:00 2001 From: webchick Date: Thu, 28 Jul 2011 18:15:34 -0400 Subject: =?UTF-8?q?Issue=20#303189=20by=20Darren=20Oh,=20fietserwin,=20q0r?= =?UTF-8?q?ban,=20bdragon,=20osopolar,=20dboulet,=20Peter=20T=C3=B6rnstran?= =?UTF-8?q?d:=20Fixed=20Tabledrag=20doesn't=20hide=20columns=20when=20the?= =?UTF-8?q?=20whole=20table=20is=20initially=20hidden.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- misc/tabledrag.js | 27 ++++++++++++--------------- 1 file changed, 12 insertions(+), 15 deletions(-) (limited to 'misc/tabledrag.js') diff --git a/misc/tabledrag.js b/misc/tabledrag.js index b566168c3..41fd47b6e 100644 --- a/misc/tabledrag.js +++ b/misc/tabledrag.js @@ -131,31 +131,28 @@ Drupal.tableDrag.prototype.initColumns = function () { } // Mark the column containing this field so it can be hidden. - if (hidden && cell[0] && cell.css('display') != 'none') { + if (hidden && cell[0]) { // Add 1 to our indexes. The nth-child selector is 1 based, not 0 based. // Match immediate children of the parent element to allow nesting. var columnIndex = $('> td', cell.parent()).index(cell.get(0)) + 1; - var headerIndex = $('> td:not(:hidden)', cell.parent()).index(cell.get(0)) + 1; - $('> thead > tr, > tbody > tr, > tr', this.table).each(function (){ - var row = $(this); - var parentTag = row.parent().get(0).tagName.toLowerCase(); - var index = (parentTag == 'thead') ? headerIndex : columnIndex; - - // Adjust the index to take into account colspans. - row.children().each(function (n) { - if (n < index) { - index -= (this.colSpan && this.colSpan > 1) ? this.colSpan - 1 : 0; + $('> thead > tr, > tbody > tr, > tr', this.table).each(function () { + // Get the columnIndex and adjust for any colspans in this row. + var index = columnIndex; + var cells = $(this).children(); + cells.each(function (n) { + if (n < index && this.colSpan && this.colSpan > 1) { + index -= this.colSpan - 1; } }); if (index > 0) { - cell = row.children(':nth-child(' + index + ')'); - if (cell[0].colSpan > 1) { + cell = cells.filter(':nth-child(' + index + ')'); + if (cell[0].colSpan && cell[0].colSpan > 1) { // If this cell has a colspan, mark it so we can reduce the colspan. - $(cell[0]).addClass('tabledrag-has-colspan'); + cell.addClass('tabledrag-has-colspan'); } else { // Mark this cell so we can hide it. - $(cell[0]).addClass('tabledrag-hide'); + cell.addClass('tabledrag-hide'); } } }); -- cgit v1.2.3