Index: nodequeue/nodequeue_dragdrop.js =================================================================== --- nodequeue/nodequeue_dragdrop.js (.../D:/workspace-zend/drupal-osce-org/drupal/sites/default/modules/nodequeue) (working copy) +++ nodequeue/nodequeue_dragdrop.js (.../svn+ssh://www-dev.osce.org/pws/contributions/modules/nodequeue/tags/6.x-2.9-patched1) (revision 2286) @@ -7,6 +7,8 @@ $('td.position').each(function(i){ $(this).html(i + 1); }); + + nodequeueUpdateNodePositions(); } } @@ -17,12 +19,7 @@ $('.nodequeue-dragdrop tbody').prepend(this); }); - // ...and update node positions - var size = $('.node-position').size(); - $('.node-position').each(function(i){ - var val = $(this).val(); - $(this).val(size - val + 1); - }); + nodequeueUpdateNodePositions(); nodequeueInsertChangedWarning(); nodequeueRestripeTable(); @@ -40,15 +37,7 @@ $('.nodequeue-dragdrop tbody').prepend(this); }); - var reverse = Drupal.settings.nodequeue.reverse; - - // ...and update node positions - var size = reverse ? $('.node-position').size() : 1; - $('.node-position').each(function(i){ - var val = $(this).val(); - $(this).val(size); - reverse ? size-- : size++; - }); + nodequeueUpdateNodePositions(); nodequeueInsertChangedWarning(); nodequeueRestripeTable(); @@ -111,6 +100,24 @@ } /** + * Updates node positions after nodequeue has been rearranged. It cares about the + * reverse order and populates nodes the other way round. + * @return + */ +function nodequeueUpdateNodePositions() { + + var reverse = Drupal.settings.nodequeue.reverse; //check if reverse option is set + + var size = reverse ? $('.node-position').size() : 1; + $('.node-position').each(function(i){ + var val = $(this).val(); + $(this).val(size); + reverse ? size-- : size++; + }); + +} + +/** * Restripe the nodequeue table after removing an element or changing the * order of the elements. */