Updated Aspire list editor

It’s been a while since I made a blog post.  Today, however, there is something worth writing about.

XIP-1324 went live today in Talis Aspire.  That code number won’t mean anything to most people but it’s indelibly imprinted into my brain and will be for the foreseeable future.

Today’s release contained an updated version of our reading list editor and is the result of several months work.  I started it around Christmas and took it through many iterations of subtle tweaks and also quite a bit of scope creep from what was originally planned.  Nad dipped in and out as time allowed at the start and BrickRed took the reins a couple of weeks before the end to sort out the data conversions, squash a few bugs and give it a good test as I was diverted onto another project. So, thanks to all who helped out along the way.

The crux of XIP-1324 is giving users the ability to create/edit reading lists in draft and keep working on them until they are happy with the result and then publish them as live.  There may not be much visiblly different in the UI (some of the other features can be found in the associated release blog post) but it involved some complex changes to our caching mechanism and a total internal rework of how the list editor worked under the hood.

I also wrote the first version of the list editor over a year ago and that caused its own problems.  There was a  decision then to use rdfQuery – some of this was based on need – the ability to suck an RDF model out of an XHTML+RDFa marked up page and then save multiple changes to a reading list in one go.  This didn’r scale well however and performance was poor with extracting the model from the page, especially when we ended up sending hte old and new model to the server at save time to update the changes to the list.  Maximum practical list size then was about 100 items and even that was touch and go in IE7 – the most used browser by our end users.

The new version does things pretty differently.  The read-only version of the reading list is still marked up as XHTML+RDFa but when you go into edit mode it drops pretty much all the RDFa on the page but just keeps the subject URIs for the main list elements such as sections and items.  DOM size has been stripped back as much as is practical for now as the previous DOM bloat with RDFa and other superfluous markup was causing some of the speed issues.  The new editor makes small AJAX calls via a queuing mechanism whenever items are added, removed, editor or moved around on the list.  Keeping the updates in a queue allows us to let the user get on with their editing without blocking operations whilst ensuring that the changes are applied to the data for the list in the correct order.  The new version has been tried with a list just under 500 items in size and performs acceptably – even on IE7.  The JavaScript is still using Prototype.js/Scriptaculous behind the scenes – there’s probably still mileage in tweaking that or giving jQuery another go but, at the time, the draggable/droppable functionality in Scriptaculous was much closer to what we were trying to achieve with little customization that jQuery was.

It’s a shame I can’t point at a live runnining copy of the editor that’s open to the general pubiic but if you want to see some of the general reading lists then try out any of the live instances at Plymouth, Sussex, St Andrews or Nottingham Trent Universities.

It’s been a long journey but I am so very glad it is now live.

Leave a Reply

Your email address will not be published. Required fields are marked *