Index: nodequeue_dragdrop.js =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/nodequeue/nodequeue_dragdrop.js,v retrieving revision 1.1 diff -u -p -r1.1 nodequeue_dragdrop.js --- nodequeue_dragdrop.js 6 Jan 2009 15:23:00 -0000 1.1 +++ nodequeue_dragdrop.js 14 May 2009 17:35:52 -0000 @@ -1,4 +1,85 @@ -$(document).ready(function() { +// $Id$ + +Drupal.behaviors.nodequeueInit = function(context) { + Drupal.nodequeue = {changed: false}; +} + +Drupal.behaviors.nodequeueReverse = function(context) { + $('#edit-reverse').click(function(){ + // reverse table rows... + $('tr.draggable').each(function(i){ + $('.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); + }); + + if (Drupal.nodequeue.changed == false) { + $(Drupal.theme('tableDragChangedWarning')).insertAfter('.nodequeue-dragdrop').hide().fadeIn('slow'); + Drupal.nodequeue.changed = true; + } + + nodequeueRestripeTable(); + + return false; + }); +}; + +Drupal.behaviors.nodequeueShuffle = function(context) { + $('#edit-shuffle').click(function(){ + // randomize table rows... + rows = $('table.nodequeue-dragdrop tbody tr:not(:hidden)').get(); + rows.sort(function(){return (Math.round(Math.random())-0.5);}); + $.each(rows, function(i, row) { + $('.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); + size--; + }); + + if (Drupal.nodequeue.changed == false) { + $(Drupal.theme('tableDragChangedWarning')).insertAfter('.nodequeue-dragdrop').hide().fadeIn('slow'); + Drupal.nodequeue.changed = true; + } + + nodequeueRestripeTable(); + + return false; + }); +}; + +Drupal.behaviors.nodequeueClear = function(context) { + $('#edit-clear').click(function(){ + // mark nodes for removal + $('.node-position').each(function(i){ + $(this).val('r'); + }); + + // remove table rows... + rows = $('table.nodequeue-dragdrop tbody tr:not(:hidden)').hide(); + + // display 'empty queue' message + $('.nodequeue-dragdrop tbody').prepend('