Jenkins - Better select boxes

enlarge & sort selects

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         Jenkins - Better select boxes
// @namespace    http://tampermonkey.net/
// @version      0.3
// @description  enlarge & sort selects
// @author       You
// @match        https://jenkins.niji.fr/**
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    console.log('bsb - better select box for jenkins init');

    var selects = document.querySelectorAll('select.select');
    selects.forEach(function(select) {
        select.style.height = '400px';
        select.addEventListener('mouseover', function() {
            if (select.classList.contains('bsb-sorted') || select.children.length <= 1) {
                return;
            } else {
                select.classList.add('bsb-sorted');
            }
            console.log('bsb - sorting select options');
            var html = '';
            select.childElements()
                .sort(function(a,b) {
                return a.text == b.text ? 0 : a.text < b.text ? -1 : 1;
            })
                .forEach(function(el) { html += el.outerHTML;});
            select.innerHTML = html;
        });
    });

})();