Display green cards for valid TACE
当前为
// ==UserScript==
// @name PYS++
// @namespace http://tampermonkey.net/
// @version 1.1
// @description Display green cards for valid TACE
// @author You
// @match https://app.pickyourskills.com/reporting/staffing_dashboard?view=user
// @match https://app.pickyourskills.com/reporting/staffing_dashboard?view=user&tribe=lyon
// @match https://app.pickyourskills.com/reporting/staffing_dashboard?view=user&tribe=kumo
// @icon https://www.google.com/s2/favicons?domain=pickyourskills.com
// @grant none
// @require https://code.jquery.com/jquery-3.6.0.min.js
// @require https://greasyfork.org/scripts/433114-wait-for-key-elements-library/code/Wait%20for%20Key%20Elements%20Library.js?version=974664
// ==/UserScript==
(function() {
'use strict';
var $ = window.jQuery;
var displayExceedingTacesInOrange = false;
var defaultTaces = {
Dev: 100,
Architecte: 90,
'Head of Tribe': 0,
'VP Tech': 50,
'CA / PO': 100,
'DP / PM / AM': 100,
'Externe': 0
}
var tacesByTribe = {
'Theodo Lyon': {
...defaultTaces,
'Head of Tribe': 50,
'CA / PO': 50,
'DP / PM / AM': 70
},
'Kumo': {
...defaultTaces,
Dev: 90,
Architecte: 80
}
}
const urlParams = new URLSearchParams(window.location.search);
if (urlParams.get('tribe') === 'kumo') {
displayExceedingTacesInOrange = true;
}
function displayGreen(_this) {
_this.css('color', 'rgb(112, 215, 98)');
_this.css('background-color', 'rgba(112, 215, 98, 0.1)');
}
function displayOrange(_this) {
_this.css('color', 'rgb(255, 165, 0)');
_this.css('background-color', 'rgba(255, 165, 0, 0.1)');
}
function displayRed(_this) {
_this.css('color', 'rgb(219, 40, 40)');
_this.css('background-color', 'rgba(219, 40, 40, 0.1)');
}
function highlightGoodComments (jNode) {
var role = jNode.find('[label=Position]').text();
var tribe = jNode.find('[label=Tribe]').text();
jNode.find('div.cell.main_cell[width=85] > div > div').each(function(jNode) {
var staffing = $(this).text();
if (staffing.endsWith('%')) {
var staffingNumber = parseInt(staffing.slice(0, -1));
var taces = defaultTaces;
if (tribe in tacesByTribe) {
taces = tacesByTribe[tribe];
}
if (staffingNumber === taces[role]) {
displayGreen($(this));
} else if (staffingNumber > taces[role]) {
if (displayExceedingTacesInOrange) {
displayOrange($(this));
} else {
displayGreen($(this));
}
} else {
displayRed($(this));
}
}
});
}
waitForKeyElements ("#individual_staffing_reporting_table_export .row", highlightGoodComments);
})();