// ==UserScript== // @name Case Assignment Automator // @namespace http://tampermonkey.net/ // @version 1.1 // @description Case Assignment Remember Configuration & Automated // @author Shawn Q // @match https://caseassignment.channelservices.microsoft.com/* // @grant none // @downloadURL none // ==/UserScript== (function() { 'use strict'; // Your code here... // Specify your preferred queue here and if you'd like to have it auto displayed var mine = [0, 1, 2, 4]; var auto_mine = true; var auto_execute = false; // End of customization const EXAMPT_MANDARIN = true; const TOTAL_NUMBER = 12; var bc = [], prem = [], cBox, executeBtn; WaitAndCheck(); var _COUNTER = 0; function WaitAndCheck(){ setTimeout(function updateTitle() { if(isEmptyOrSpaces(document.getElementsByTagName('span')[0].innerHTML)) { if(++_COUNTER < 10) WaitAndCheck(); } else{ cBox = document.getElementsByTagName('input'); executeBtn = document.getElementById('prioritize_work_items'); Categorize(); AddBtns(); if(auto_mine){ CheckMine(); executeBtn.click(); } }; }, 50); } function CheckBC(){ UncheckAll(); bc.forEach(function(num) { cBox[num].click(); }); if(auto_execute) executeBtn.click(); } function CheckPrem(){ UncheckAll(); prem.forEach(function(num) { cBox[num].click(); }); if(auto_execute) executeBtn.click(); } function CheckMine(){ UncheckAll(); mine.forEach(function(num) { cBox[num].click(); }); if(auto_execute) executeBtn.click(); } function isEmptyOrSpaces(str){ return str === null || str.match(/^ *$/) !== null; } function UncheckAll(){ for(var i = 0; i <= TOTAL_NUMBER; i++) { if(cBox[i].checked) cBox[i].click(); } } function AddBtn(btn, id, text, func){ btn = document.createElement("BUTTON"); btn.classList.add('button'); btn.id = id; btn.innerHTML = text; btn.addEventListener("click", func); btn.style.marginLeft = "3px"; document.getElementById('prioritize_button').appendChild(btn); } function AddBtns(){ executeBtn.style.marginLeft = "673px"; executeBtn.style.transitionDuration = "0.35s"; var btn; AddBtn(btn, 'mine', 'Mine', CheckMine); AddBtn(btn, 'bc', 'BC', CheckBC); AddBtn(btn, 'prem', 'Prem', CheckPrem); AddBtn(btn, 'clear', 'Claer', UncheckAll); } function Categorize(){ var spans = document.getElementsByTagName("span"); var needSearch = ['bc', 'prem']; for (var i = 1; i <= TOTAL_NUMBER; i++) { var spanTxt = spans[i].innerText.toLowerCase(); if (spanTxt.includes(needSearch[0]) || spanTxt.includes(needSearch[1])) { if(spanTxt.includes(needSearch[0])){ bc.push(i-1); } else if (EXAMPT_MANDARIN && spanTxt.includes('mandarin')) {} else prem.push(i-1); } } } })();