Assigning license to project

I have just been assigning some licenses I already hold to a customer project. Once again I have been tearing my hair out because once you have more than a few licenses in the cupboard, the select dropdown for 'Assign License' on a project page is virtually unusable because the licenses are in id order.

So this is a request to Franz. Please either get that dropdown sorted alphabetically, or just make it into a 'Selectable'. For a few minutes of core team development, many users would benefit from massively reduced frustration.

View Replies:
mnakalay replied on at Permalink Reply
+1 for this. And after all Concrete5 being a lot about user experience, wouldn't hurt to see that here as well
enlil replied on at Permalink Reply
I just had this headache a couple days ago. Sorting the list alphabetically will undoubtedly save millions of hair follicles. :)
exchangecore replied on at Permalink Reply
OKDnet replied on at Permalink Reply
While your at it (if/when that happens), how about splitting 5.6 licenses from 5.7 ones.
JohntheFish replied on at Permalink Reply
For anyone needing to make the project dialog easier to use and fed up with waiting, here is a unilateral solution using some javascript in a bookmarklet.

The script to start with is borrowed from and hacked a little with a selector for the select dialog
var options = $('#mpLicenseID option');
var arr =, o) {
  return {
    t: $(o).text(),
    v: o.value
arr.sort(function(o1, o2) {
  return o1.t > o2.t ? 1 : o1.t < o2.t ? -1 : 0;
options.each(function(i, o) {
  o.value = arr[i].v;

Before going any further, you can go to the project page, popup the dev console, paste that in and check it works by sorting the select.

To convert it to a bookmarklet, you need to minimize it and prefix with 'javascript:'
javascript: !function(t){var n=t('#mpLicenseID option'),,e){return{t:t(e).text(),v:e.value}}).get();e.sort(function(t,n){return t.t>n.t?1:t.t<n.t?-1:0}),n.each(function(n,u){u.value=e[n].v,t(u).text(e[n].t)})}(jQuery);

Pasted the above into the URL part of a bookmark. When the bookmark is clicked, Chrome executes the script, the useless marketplace select gets sorted alphabetically and becomes usable.

This only lasts for the duration of the page, so unfortunately you need to click the bookmarlet each time the page reloads during the select process.

(I tried to fully automate this with Tampermonkey, but struggle with how to use the tool)
JohntheFish replied on at Permalink Reply
I submitted this as a howto. Rather than approve the howto, Andrew fixed the select on Thank you Andrew.