Speakeasy Baby Steps

I been having a play with the Speakeasy extension plugin for JIRA, which is hard to describe but, err, kind of lets you inflict your greasemonkey scripts on your users.

For a laugh I thought I'd do an old-skool JIRA skin which would display issues using the golden oldie JIRA 3.13 look & feel. But, although probably quite possible, it turned out to be more effort than I could be bothered with, for something that was only really going to be a not very funny joke. And fair play, it's starting to grow on me in 4.2 and above… Edwin, you were right.

So then I thought I'd attempt to do something useful. Here's the thing, JIRA's admin interface does not really scale up to large numbers of projects, fields, workflows etc. To give you some numbers my client has about 900 projects and a thousand custom fields. And I don't think these numbers are unreasonable considering the number of developers but let's not get in to that now.

Case in point, adding a project to a custom field context. If the field already has projects associated, you cannot type the first few characters to drill down to the project. If you do, you deselect the current associations (this happens often). Jesus, as I'm typing this some distant memory is stirring in the hippocampus, and yes, I entered a bug for this way back when. Fortunately Speakeasy may make this solvable. Time for some pictures:

Now enable the "admin tweaks" extension…

The code is short and sweet:

jQuery(document).ready(function() {
    var projectSelect = jQuery("select[name='projects']");
    projectSelect.css('min-width', '400px');
        noneSelectedText: 'Select projects',
        selectedList: 4

And that's pretty much it. $7500 please! Oh, I would have liked to use optgroups for project categories but the REST API does not appear to expose them.

So what else could Speakeasy help with in the admin screens… I'm thinking:

  • View Statuses and Workflows are at least 25 screens long… the associated projects are generally not very useful information so hide all of that
  • Prevent the first input field from stealing focus on some of the admin screens, that really gets on my tits
  • Filter custom fields and things like schemes by project
  • Drag and drop fields in screen layouts
  • Clickable column headers for pages that display schemes to sort by whatever

5 comments to Speakeasy Baby Steps

  • Grobbendonk

    Damn good use of the plugin.

    Only worry I’ve got is that as it provides some decent improvements, Atlassian are more likely to ignore the $50 I dropped in the “for gods sake sort out the admin screens” bucket on Wednesday ;-)

  • alexlod

    Awesome writeup, Jamie, and totally rad extension. Don’t forget to submit this thing to http://codegeist.atlassian.com to be applicable for the prize.

    Also, I highly suggestion modifying your blog comment system. I almost didn’t create an account :).

  • Wow. I was pondering what changes might make custom fields easier to manage and this is one that’s bitten me before. Is it really that simple with Speakeasy? Where’s the REST call? I get requests from clients to make all multiselect fields look like this and it’s a lot more work to do it server side.


  • Hi Matt… There is no rest call required here, the JS just converts the vanilla multiselect to a funky one, in the same way that the versions and components pickers are just standard html multiselects until the javascript converts their appearance.

    To do it server-side I’d guess you could just subclass the standard one and modify the webresources, and put the on-doc-ready code in the velocity template…? It’s a pain though to modify a custom field’s type as you know…


  • jobinkk

    Crazy java scripts, I hate them! But amazed how effective they are and bemused to know we can’t live with it. Anyways, Thanks for the speakeasy heads up :)

Leave a Reply