AddIdle-TOT

You might also like

Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

// ==UserScript==

// @name Add_Idle(testing)
// @version 0.1
// @require https://ekarulf.corp.amazon.com/js/jquery-1.12.4.min.js
// @include https://fclm-portal.amazon.com/reports/timeOnTask*
// @grant GM.xmlHttpRequest
// @grant GM.xmlhttpRequest
// @grant GM_xmlhttpRequest
// @grant GM.info
// @author adacrans - Adam Cranston
// ==/UserScript==

var button1Div = document.createElement("div");


var button2Div = document.createElement("div");
button1Div.className = "button1Div";
button2Div.className = "button2Div";
var runButton = document.createElement("button");
var unlockButton = document.createElement("button");

addButtons();

function addButtons(){
$('.tot-filters').append(button1Div);
$('.tot-filters').append(button2Div);

button1Div.appendChild(runButton);
button2Div.appendChild(unlockButton);

runButton.textContent = "Run Idle";


runButton.onclick = runIdle;

unlockButton.textContent = "Unlock Page";


unlockButton.onclick = runUnlock;
}

//
function runIdle(){

let filteredManagers = document.querySelectorAll('tr.tot-row.hide-manager');

filteredManagers.forEach((filtered) =>{
filtered.className = "filtered";
filtered.hidden = true;
});

var header = document.querySelector("thead");


var myHead = document.createElement("th");
myHead.className = "header";

header.firstElementChild.appendChild(myHead);
myHead.textContent = "Idle Time";
var rows = document.querySelectorAll('.tot-row');

rows.forEach((row) => {
empIDArr = document.querySelectorAll("a.employee-time-details-link");
let z = document.createElement("td");
let zd = document.createElement("div");

zd.className = String("myContainer" + (row.rowIndex));


zd.hidden = true;
row.appendChild(z);
row.lastElementChild.appendChild(zd);

let targetLink = new URL(String(empIDArr[row.rowIndex -1]));


let formattedVals = [];

GM.xmlHttpRequest({
method: 'GET',
url: targetLink,
onload: function(response){
var parser = new DOMParser();

var doc = parser.parseFromString (response.responseText, "text/html");


var idleSeg = doc.getElementsByClassName('function-seg indirect');

//'.myContainer').prepend(idleSeg);
$('.myContainer' + String(row.rowIndex)).prepend(idleSeg);
var durationArr = document.querySelectorAll('.rightAlign');

for(var i = 0; i < durationArr.length; i++){


splitVals = durationArr[i].textContent.split(":").map(Number);
let seconds = (splitVals[0]*60)+splitVals[1];
formattedVals[i] = seconds;
sumOfVals = formattedVals.reduce((x, y) => x + y);
z.textContent = parseFloat((sumOfVals/3600).toFixed(2));
console.log(sumOfVals);
}
}
});
});
}

function runUnlock(){
let reverseTargets = document.querySelectorAll('.filtered');

reverseTargets.forEach((target) =>{
target.className = "tr.tot-row.hide-manager";
target.hidden = false;
});
}

You might also like