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.

Dec 10, 2005

Build Server: Web

Dmitry Jemerov made a very good overview of what kept me busy for the last couple of weeks.

The initial Web-interface of the Build Server was ugly and hardly usable, and the current version looks and works much better.

Sashka had created an accurate sketch for the build status overview interface, and described its behaviour. I just had to make it real. Thanks to prototype library, AJAX updates were implemented mostly painless. But is was much harder with visual effects (in fact, I spent a couple of days trying to expand/collapse a table row in IE using aculos. I solved the problem by patching prototype.js).

And what with IDEtalk? Well, I'd love to work on it but Build Server currently has higher priority. I've made several Jabber-related fixes, sending code pointers for library sources, and viewing a diff between local and remote version of arbitrary project file.

If you happen to visit JavaPolis next week, Max Shafirov and Mike Aizatsky will give you an overview of the forthcoming Demetra and Build Server features, answer your questions and even give you a chance to win one of 20 free IDEA licences.