Index: replace/tabledrag.js =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/jquery_update/replace/Attic/tabledrag.js,v retrieving revision 1.1.2.1.2.2 diff -u -p -r1.1.2.1.2.2 tabledrag.js --- replace/tabledrag.js 21 Mar 2009 20:06:59 -0000 1.1.2.1.2.2 +++ replace/tabledrag.js 11 Aug 2010 04:18:40 -0000 @@ -76,13 +76,15 @@ Drupal.tableDrag = function(table, table // manually append 2 indentations in the first draggable row, measure // the offset, then remove. var indent = Drupal.theme('tableDragIndentation'); - var testCell = $('tr.draggable:first td:first', table).prepend(indent).prepend(indent); + // Match immediate children of the parent element to allow nesting. + var testCell = $('> tbody > tr.draggable:first td:first, > tr.draggable:first td:first', table).prepend(indent).prepend(indent); this.indentAmount = $('.indentation', testCell).get(1).offsetLeft - $('.indentation', testCell).get(0).offsetLeft; $('.indentation', testCell).slice(0, 2).remove(); } // Make each applicable row draggable. - $('tr.draggable', table).each(function() { self.makeDraggable(this); }); + // Match immediate children of the parent element to allow nesting. + $('> tr.draggable, > tbody > tr.draggable', table).each(function() { self.makeDraggable(this); }); // Hide columns containing affected form elements. this.hideColumns(); @@ -112,9 +114,10 @@ Drupal.tableDrag.prototype.hideColumns = // Hide the column containing this field. if (hidden && cell[0] && cell.css('display') != 'none') { // Add 1 to our indexes. The nth-child selector is 1 based, not 0 based. - var columnIndex = $('td', cell.parent()).index(cell.get(0)) + 1; - var headerIndex = $('td:not(:hidden)', cell.parent()).index(cell.get(0)) + 1; - $('tr', this.table).each(function(){ + // 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; @@ -758,7 +761,8 @@ Drupal.tableDrag.prototype.setScroll = f Drupal.tableDrag.prototype.restripeTable = function() { // :even and :odd are reversed because jquery counts from 0 and // we count from 1, so we're out of sync. - $('tr.draggable', this.table) + // Match immediate children of the parent element to allow nesting. + $('> tbody > tr.draggable, > tr.draggable', this.table) .filter(':odd').filter('.odd') .removeClass('odd').addClass('even') .end().end()