SN Domain Sort TEST

ServiceNow Domain Picker sorting

Versión del día 16/11/2016. Echa un vistazo a la versión más reciente.

// ==UserScript==
// @name        SN Domain Sort TEST
// @namespace   http://ogieglo.pl/r/sn-domain-sort
// @description ServiceNow Domain Picker sorting
// @include     https://*.service-now.com/nav_to.do*
// @include     https://*.service-now.com/navpage.do*
// @version 20161116.22
// ==/UserScript==


function ogiSort(a, b) {
    var nameA2 = a['text'].toLowerCase().split('/').pop();
    var nameB2 = b['text'].toLowerCase().split('/').pop();

    return nameA2.localeCompare(nameB2);
}

function ogiSortSelect(selElem) {
    var tmpAry = [];
    for (var i=0;i<selElem.options.length;i++) {
        tmpAry[i] = [];
        tmpAry[i]['text'] = selElem.options[i].text;
        tmpAry[i]['value'] = selElem.options[i].value;
    }
    tmpAry.sort(ogiSort);
    while (selElem.options.length > 0) {
        selElem.options[0] = null;
    }
    for (var i=0; i<tmpAry.length; i++) {
        var op = new Option(tmpAry[i]['text'].split('/').pop() + "  | " + tmpAry[i]['text'], tmpAry[i]['value']);
        selElem.options[i] = op;
    }
    return;
}

function ogiDomainPickerSort(){
    var ogiElDomainPicker = document.getElementById('domain_picker_select');
    if (ogiElDomainPicker != null) {
        ogiSortSelect(ogiElDomainPicker);
    }
}


var ogiDomainOptionsWatch = setInterval(function () {
    var ogiElDomainPicker = document.getElementById('domain_picker_select');
    console.log("OGI Domains lenght = " + ogiElDomainPicker.length);
    if (ogiElDomainPicker != null && ogiElDomainPicker.length > 1) {
        ogiSortSelect(ogiElDomainPicker);
        clearInterval(ogiDomainOptionsWatch);
    }
}, 500);



console.log("OGI DOMAIN SORT");