Skip to content

Instantly share code, notes, and snippets.

@adumont
Last active April 20, 2020 07:28
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save adumont/0469d1edd6ef9696e97a33274960d480 to your computer and use it in GitHub Desktop.
Save adumont/0469d1edd6ef9696e97a33274960d480 to your computer and use it in GitHub Desktop.
ServiceNow Mods (adumont)
// ==UserScript==
// @name ServiceNow Mods (adumont)
// @namespace http://tampermonkey.net/
// @version 0.11.9
// @description ...
// @author ADUMONT
// @match https://acciona.service-now.com/*
// @grant none
// @updateURL https://gist.githubusercontent.com/adumont/0469d1edd6ef9696e97a33274960d480/raw/servicenow-mods-adumont.user.js
// @downloadURL https://gist.githubusercontent.com/adumont/0469d1edd6ef9696e97a33274960d480/raw/servicenow-mods-adumont.user.js
// ==/UserScript==
var pm_listHideTabs = [
"Plan de recurso",
"Plan de Coste",
"Planes de Beneficios",
"Presupuesto del proyecto",
"Desglose de Plan de Costes",
"Desglose de Planes de Beneficios",
"Partidas de gastos",
"Solicitudes de Cambio",
"Time Cards",
"Adquisiciones del proyecto",
"Medidas para la transferencia de conocimiento",
"Stakeholders",
"Monitorización del proyecto"
];
var replaceArryProyectos = [
[ /^PRJ0030199$/gi, "PRJ0030199 - T1.02.1 Transicion Lote 2 (W1)" ],
[ /^PRJ0030188$/gi, "PRJ0030188 - P1. Seguridad: Gobierno de Seguridad en el contrato" ],
[ /^PRJ0030312$/, "PRJ0030312 - P2.2 Gestión de accesos y gestión de usuarios privilegiados (PAM)" ],
[ /^PRJ0030202$/, "PRJ0030202 - P2.4 Diseño y montaje de redes OT" ],
[ /^PRJ0030186$/, "PRJ0030186 - T1.01 Transicion Lote 1" ],
[ /^PRJ0030200$/, "PRJ0030200 - P3.1 Puesta en marcha del servicio" ],
[ /^PRJ0030193$/, "PRJ0030193 - P3.2 Nuevos procesos y procedimientos" ],
[ /^PRJ0030201$/, "PRJ0030201 - P4.1.1 Traslado físico y lógico de DataCenters" ],
[ /^PRJ0030191$/, "PRJ0030191 - P4.1.2 Transformación de comunicaciones y networking" ],
[ /^PRJ0030194$/, "PRJ0030194 - P4.4 Reporting" ],
[ /^PRJ0030195$/, "PRJ0030195 - P4.5 LB y Facturación" ],
[ /^PRJ0030196$/, "PRJ0030196 - P4.7 APM" ],
[ /^PRJ0030197$/, "PRJ0030197 - P4.8 Analítica de Logs" ],
[ /^PRJ0030311$/, "PRJ0030311 - P4.9 ADDM" ],
[ /^PRJ0030203$/, "PRJ0030203 - P4.10 Supervisión" ],
[ /^PRJ0030358$/, "PRJ0030358 - P4.2 Transformación de Aplicaciones" ],
[ /^PRJ0030359$/, "PRJ0030359 - P4.3.1 Servicio SCM de ACCIONA" ],
[ /^PRJ0030378$/, "PRJ0030378 - T1.02.2 Transferencia Servicio Lote 2 (Wave 2)" ],
];
var replaceArry = [
[/Moebius - /gi, ''],
[/Demand Management/gi, 'Acciona ITBM'],
[/Alexandre Jean Michel Pierre/gi, 'Alexandre'],
[/Alexandre Jean Michel Pie/gi, 'Alexandre'],
];
(function() {
'use strict';
//console.log(document);
try {
console.log("window.location.pathname = " + window.location.pathname);
// Proyecto - pm_project.do
if( window.location.pathname == "/pm_project.do" ) {
var res = document.getElementsByClassName("tab_caption_text");
for (var i=0, len=res.length|0; i<len; i=i+1|0) {
if( pm_listHideTabs.includes(res[i].innerText) ){
console.log("" + res[i].innerText + " - HIDE\n");
res[i].parentElement.parentElement.style.display = "none";
}
}
var estado = document.getElementById("pm_project.status");
console.log( estado.parentElement );
estado.parentElement.style.color = estado.value;
}
} catch (e) {}
})();
function getMonday(date)
{
var diff = date.getDate() - date.getDay() + (date.getDay() === 0 ? -6 : 1);
var d = new Date(date.setDate(diff));
var month = ('000' + (d.getMonth() + 1)).slice(-2),
day = ('000' + (d.getDate() )).slice(-2),
year = d.getFullYear();
return [day, month, year].join('-');
}
function getMes(date)
{
var meses=["Ene", "Feb", "Mar", "Abr", "May", "Junio", "Julio", "Ago", "Sep", "Oct", "Nov", "Dic"];
return meses[date.getMonth()] + "/" + (date.getYear()+1900);
}
var lunes = getMonday(new Date())
var esteMes = getMes(new Date())
console.log("ESTE MES ES " + esteMes);
setInterval(function(){
if( document.activeElement.contentEditable == "true" ) {
return
}
var txtWalker = document.createTreeWalker (
document.body,
NodeFilter.SHOW_TEXT,
{ acceptNode: function (node) {
//-- Skip whitespace-only nodes
if ( node.nodeValue.trim() ){
return NodeFilter.FILTER_ACCEPT;
}
return NodeFilter.FILTER_SKIP;
}
},
false
);
var txtNode = null;
while (txtNode = txtWalker.nextNode () ) {
var oldTxt = txtNode.nodeValue;
for (var J = 0; J < replaceArry.length; J++) {
oldTxt = oldTxt.replace (replaceArry[J][0], replaceArry[J][1]);
}
txtNode.nodeValue = oldTxt;
if(
( txtNode.parentElement.className == "select2-result-label" && txtNode.parentElement.tagName == "DIV" ) ||
( txtNode.parentElement.className == "select2-chosen" && txtNode.parentElement.tagName == "SPAN" ) ||
( txtNode.parentElement.parentElement.className == "select2-search-choice" && txtNode.parentElement.tagName == "DIV" )
) {
// console.log("-------");
// console.log("txtNode.nodeName: ", txtNode.nodeName);
// console.log("txtNode.nodeValue:", txtNode.nodeValue);
// console.log("txtNode.textContent: ", txtNode.textContent);
// console.log("txtNode.parentElement.tagName: ", txtNode.parentElement.tagName);
// console.log("txtNode.parentElement.className: ", txtNode.parentElement.className);
for (var K = 0; K < replaceArryProyectos.length; K++) {
txtNode.nodeValue=txtNode.nodeValue.replace( replaceArryProyectos[K][0], replaceArryProyectos[K][1]);
}
}
}
// Highlight week date with *** ***
var res = document.getElementsByTagName("text");
for (var i=0, len=res.length|0; i<len; i=i+1|0) {
// console.log("ENCONTRADO tspan" + i + " : " + res[i].innerHTML + "\n");
if( res[i].innerHTML == lunes || res[i].innerHTML == esteMes ) {
console.log("ENCONTRADO tspan" + res[i].innerHTML + "\n");
// res[i].innerHTML = "<< " + lunes + " >>";
res[i].style='color:red;cursor:default;font-size:11px;font-family:SourceSansPro, "Helvetica Neue", Arial;fill:red;';
}
}
}, 2500)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment