NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
// ==UserScript==
// @name Mantis High Level Filter
// @namespace http://zengarden/mantis
// @version 1.0.0.20201104
// @description Filtra los proyectos de Mantis. Último ID: 404.
// @author Daniel DAN <daniel@danidan.com>
// @require https://code.jquery.com/jquery-3.3.1.min.js
// @match http://zengarden/mantis/*
// @grant none
// @license MIT
// ==/UserScript==
var $ = window.jQuery;
var combo = $("select[name='top_id']");
var opcionesPorDefecto = combo.find('option')
// NOTA: si se da de alta un nuevo proyecto, es necesario añadirlo a la lista
var opcionesAN = [ '<option value="0" selected="selected">Todos los Proyectos (AN)</option>',
'<option type="comercial" value="272">GetFace Key</option>',
'<option type="comercial" value="305">ZenCom Android</option>',
'<option type="comercial" value="304">intercom-api</option>',
'<option type="comercial" value="295">ZenCom iOS</option>',
'<option type="comercial" value="307">intercom-server</option>',
'<option type="comercial" value="306">intercom-web</option>',
'<option type="comercial" value="341">lib-zad-ble-android</option>',
'<option type="comercial" value="359">lib-zad-ble-ios</option>',
'<option type="otros" value="59">Manual de usuario</option>',
'<option type="comercial" value="195">MVCH</option>',
'<option type="comercial" value="191">node-knx-ip</option>',
'<option type="interna" value="165">TMDManager</option>',
'<option type="comercial" value="55">TouchMyDesign_AppWeb</option>',
'<option type="otros" value="62">Traducciones</option>',
'<option type="comercial" value="223">Xenata</option>',
'<option type="comercial" value="229">Z-Access</option>',
'<option type="comercial" value="102">Z41 Android</option>',
'<option type="comercial" value="63">Z41 iOS</option>',
'<option type="comercial" value="75">Z41 Servidor</option>',
'<option type="comercial" value="41">Z41 Update</option>',
'<option type="comercial" value="402">Z41Web</option>',
'<option type="comercial" value="283">Z70_COM</option>',
'<option type="comercial" value="259">Z70_Lite</option>',
'<option type="comercial" value="197">ZBMS</option>',
'<option type="interna" value="290">ZenGarden</option>',
'<option type="interna" value="4">ZenKNX</option>',
'<option type="comercial" value="396">Zennio-Api-Utils</option>',
'<option type="interna" value="40">ZenManager</option>',
'<option type="interna" value="137">ZenProd</option>',
'<option type="interna" value="345">ZenProject</option>',
'<option type="interna" value="312">ZenSession</option>',
'<option type="interna" value="24">ZenTranslate</option>',
'<option type="interna" value="199">ZM AlmaZen</option>',
'<option type="interna" value="114">ZM Calendario</option>',
'<option type="interna" value="115">ZM RRHH</option>',
'<option type="interna" value="163">ZM ZenMeeting</option>',
'<option type="comercial" value="377">zrc-server</option>',
'<option type="comercial" value="403">ZRC-SmartHome</option>',
'<option type="comercial" value="378">zrc-vm</option>',
'<option type="comercial" value="376">zrc-webapp</option>',
'<option type="comercial" value="389">ZSH Cloud</option>',
'<option type="comercial" value="315">ZSH-API</option>',
'<option type="comercial" value="404">ZSH-Mail</option>',
'<option type="comercial" value="201">ZSH_Security</option>',
'<option type="comercial" value="203">ZSH_SysAdmin</option>'
];
function cargarComboNormal() {
var valorSeleccionado = combo.val();
combo.find('option').remove().end().append(opcionesPorDefecto);
combo.val(valorSeleccionado);
}
function cargarComboAN() {
var valorSeleccionado = combo.val();
combo.find('option').remove();
for(let i=0;i<opcionesAN.length;i++)
{
combo.find('option').end().append(opcionesAN[i]);
}
combo.val(valorSeleccionado);
}
(function() {
'use strict';
var input = $('<label />').html("Filtrar proyectos AN").attr({style: 'margin-right:30px'}).prepend($('<input/>')
.attr({ type: 'checkbox', id: 'checkBoxFiltro', class: 'checkBoxFiltro'}))
.on('change', () => {
if($("#checkBoxFiltro")[0].checked == true)
{
cargarComboAN();
}
else
{
cargarComboNormal();
}
})
.prependTo($("form[name='form_set_project']")[0]);
input.click();
})();