Dec 29, 2005

BuildServer: Queue reordering

The build queue of the BuildServer, which serves IDEA project, was rather long until we've set up 10 build agents for it. But before that, the queue was long enough to add some management operations for it, like move build up/down and remove build from the queue.

So, each build in the queue had links "move up", "move down" and "remove". Guess, how many mouse clicks were needed to move build from the tail of the queue to the first position when there are 5 builds in the queue? Too many anyway. After the first attempt to do such a trick it became obvious that the "up/down" solution was wrong.

The first simple modification I intended to make was to add "Move to the top" link and remove "up/down" ones. That would remove some flexibility but save the screen space and make the interface more use-case-oriented. But Sashka convinced me that Drag-n-Drop is much more flexible solution in this situation. It took one day to implement it, including update of the queue on the server after reordering (thanks to scriptaculos again).

There was a couple of diffuculties, because Drag-n-Drop support cannot be safely done for table rows, so I had to convert rows to the list of div's. But anyway, now it works and you can see the result on the following screenshot (in the middle of DnD operation in my test environment).

There are still some areas for improvement, like adding a visual hint that D-n-D operation is possible and removing duplicates for "Remove" link.
Post a Comment