Problems with Drupal 5 - clumsy record sorting


More of a problem for administrators than site visitors, and definitely more of a nuisance than a real problem, it can be frustrating dealing with lists of records in Drupal 5, especially when you need to resort or reorder the list. A perfect example is using the Nodequeue module, one of the most popular modules which lets you create a queue of articles/nodes so you can e.g. manually create a list of top stories for the week; it's interface for managing the queue looks like this:


If you decide you want to have the Quibus article after the Facilisi Eligo one you have to click those buttons to the right side, listed in the Operations column, then wait for the page to update. Not much of a problem if you're just changing one item, but if you have a long list and need to do a lot of organizing (which can happen often on busy sites) it can be a definite hassle.

This is how all of Drupal 5's lists are handled - you have buttons to let you move items up one step, down one step, or to the top or bottom of the lists, and every action requires a complete page reload. On most admin pages this can be a several hundred kb page to download again, usually entails a rather large set of queries and can just take an awfully long time for what should be a very simple process.

Enter Drupal 6's heavy usage of Javascript thanks to a both the Drupal community's greater understanding of the bundled (mega-super-awesome) jQuery Javascript library, and a certain Nate Naug and a few others who did all of the hard work :) Now, when you're looking at a list of items it might look more like the following:


Drupal 6 uses Magic Tricks(tm), aka jQuery, to allow items to be reordered just using simple drag 'n drop, then you hit a Save button to record your changes for the world to see. Simple, elegant, and at this point (I think) everything that used the old way has been updated to the fancy way, making everyone's lives just a little simpler.

How to reply

Care to add your own 2 cents? Let me know via Twitter or my contact page.