Jenkins - Better select boxes

enlarge & sort selects

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 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;
        });
    });

})();