Implementing innovation

Posted in: Archive

A few weeks ago I got the chance to be the first to make use of our innovation time.

After watching a demo on hacks.mozilla.org I wanted to experiment with HTML5 and Firefox's new support for drag and drop of files from your desktop to our web-based file sharing system, the Learning Materials Filestore.

The documentation they provide is nowhere near enough to actually implement this, so I was about to give up when I found out that only two days earlier the people who write TinyMCE had released Plupload, a library for doing exactly what I wanted!

Plupload gives you a customisable box on a web page where you can add files, click a button and they upload to your service. There are several 'runtimes' you can specify including HTML5, Flash, Google Gears and Silverlight, although HTML5 is the only one which supports native drag and drop (and it's Firefox only at the moment). You can specify a list of fallback runtimes if your browser doesn't support the default, so for example I specified HTML5 as the default and Flash as the fallback so that the Plupload box would still appear in IE.

I had to write a new uploading backend for our application, but Plupload comes bundled with sample PHP code that works out of the box, and it was quite straightforward to do, so two days later I had this:

I've had to manually hit F5 after each of the uploads, hence the delay in actually seeing the files appear, but it's still pretty quick! This is a big improvement over using multiple file-picker dialogs and having a limit on how files you can upload at once.

This has been a nice opportunity to use a new library, using brand-new browser features, without having to worry about the requirements we have for making changes to a live, deployed service (since it's a personal version) and having the opportunity to see how we can innovate in a relatively old application to improve the existing feature set without needing to make significant changes.

To help us implement the rules set down by Andy in his blog post, we're adding our ideas to our bug tracker, Jira, and an idea needs at least two votes before it can be started. We have a couple of dozen in there, and quite a few have picked up some votes, so here's hoping for the next innovation project!

Posted in: Archive