Assigning license to project

Permalink
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.

JohntheFish
 
mnakalay replied on at Permalink Reply
mnakalay
+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
enlil
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
exchangecore
+1
OKDnet replied on at Permalink Reply
OKDnet
While your at it (if/when that happens), how about splitting 5.6 licenses from 5.7 ones.
JohntheFish replied on at Permalink Reply
JohntheFish
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 fromhttp://jsfiddle.net/Pointy/trELD/... and hacked a little with a selector for the c5.org select dialog
(function($){
var options = $('#mpLicenseID option');
var arr = options.map(function(_, o) {
  return {
    t: $(o).text(),
    v: o.value
  };
}).get();
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;
  $(o).text(arr[i].t);
});

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=n.map(function(n,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
JohntheFish
I submitted this as a howto. Rather than approve the howto, Andrew fixed the select on concrete5.org. Thank you Andrew.