🏠 

Case Assignment Automator

Case Assignment Remember Configuration & Automated


Install this script?
// ==UserScript==
// @name         Case Assignment Automator
// @namespace    http://tampermonkey.net/
// @version      1.19
// @description  Case Assignment Remember Configuration & Automated
// @author       Shawn Q
// @match        https://caseassignment.channelservices.microsoft.com/*
// @grant        none
// @require      https://code.jquery.com/jquery-3.3.1.min.js
// @require      https://cdn.bootcss.com/canvg/1.4/rgbcolor.min.js
// ==/UserScript==
(function() {
'use strict';
// Your code here...
// Variables
var mine = [];
var auto_mine = false;
var dark_mode = false;
var auto_execute = false;
var auto_refresh = false;
var auto_refresh_interval = 1000 * 60 * 6; // In Min
// End of Variables
var EXEMPT_MANDARIN = true;
var TOTAL_NUMBER;
var bc = [], prem = [], midElms = [], cBox, executeBtn, btnDiv, spans, auto_refresh_func;
WaitAndCheck();
var _COUNTER = 0;
function WaitAndCheck(){
cBox = document.getElementsByTagName('input');
TOTAL_NUMBER = cBox.length - 1;
executeBtn = document.getElementById('prioritize_work_items');
btnDiv = document.getElementById('prioritize_button');
PrefImplement();
midElms.push(btnDiv);
if(auto_mine){
CheckMine();
if(!auto_execute) ExecuteCall();
}
Categorize();
midElms.push(spans[0]);
Middlize(midElms);
AddBtns();
}
function AutoRefresh(){
auto_refresh_func = setTimeout(ExecuteCall, auto_refresh_interval);
}
function StopAutoRef(){
clearTimeout(auto_refresh_func);
}
function CheckBC(){
UncheckAll();
bc.forEach(function(num) {
cBox[num].click();
});
if(auto_execute) ExecuteCall();
}
function CheckPrem(){
UncheckAll();
prem.forEach(function(num) {
cBox[num].click();
});
if(auto_execute) ExecuteCall();
}
function CheckMine(){
UncheckAll();
mine.forEach(function(num) {
cBox[num].click();
});
if(auto_execute) ExecuteCall();
}
function SaveMine(){
mine.length = 0;
for(var i = 0; i < TOTAL_NUMBER; i++)
{
if(cBox[i].checked) mine.push(i);
}
SetCookie('mine', JSON.stringify(mine));
}
function ExecuteCall(){
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 PrefImplement(){
AddPrefElm();
if(GetCookie('auto_refresh')) {
auto_refresh = true;
document.getElementById('auto_refresh').click();
}
if(GetCookie('auto_mine')) {
auto_mine = true;
document.getElementById('auto_mine').click();
}
if(GetCookie('auto_execute')) {
auto_execute = true;
document.getElementById('auto_execute').click();
}
if(GetCookie('dark_mode')) {
dark_mode = true;
document.getElementById('dark_mode').click();
}
try {
mine = JSON.parse(GetCookie('mine'));
} catch(e) {
mine.length = 0;
}
}
function AddDarkSB() {
var rule = "<style id='darksb_css' type='text/css'>body {background-color: rgb(21, 21, 21) !important;} ::-webkit-scrollbar, ::-webkit-scrollbar-corner, ::-webkit-scrollbar-track-piece { background: #101010 !important; } ::-webkit-scrollbar { width: 17px !important; height: 17px !important; } ::-webkit-scrollbar-thumb { background: #333333; border: 3px solid #101010 !important; border-radius: 8px !important; } ::-webkit-scrollbar-thumb:hover { background: #444444; }</style>";
$('html').append(rule);
}
function RmDarkSB() {
document.getElementById('darksb_css').remove();
document.getElementById("__genieContainer").removeAttribute("style");
}
function AddPrefElm(){
var auto_refresh_text = 'Auto Refresh';
var auto_mine_text = 'Auto Mine';
var auto_execute_text = 'Auto Execute';
var dark_mode_text = 'Dark Mode';
executeBtn.style.background = 'green';
executeBtn.style.transitionDuration = "0.3s";
executeBtn.style.transitionTimingFunction = "ease-out";
var node = document.createElement('DIV');
node.style.marginRight = '10px';
node.style.marginLeft = '-176px';
node.style.textAlign = 'right';
node.innerHTML =
'<input type="checkbox" id="dark_mode" name="dark_mode"><label for="dark_mode">'+ dark_mode_text +'</label>'+
'<input type="checkbox" id="auto_refresh" name="auto_refresh"><label for="auto_refresh">'+ auto_refresh_text +'</label><br />'+
'<input type="checkbox" id="auto_mine" name="auto_mine"><label for="auto_mine">'+ auto_mine_text +'</label>'+
'<input type="checkbox" id="auto_execute" name="auto_execute"><label for="auto_execute">'+ auto_execute_text +'</label>';
executeBtn.parentNode.insertBefore(node, executeBtn);
$('label').css({"color": "#555"});
$('span b').css({"color": "#555"});
$('#current_time').css({"color": "#555"});
document.getElementById('dark_mode').nextSibling.style.marginRight = '10px';
document.getElementById('auto_mine').nextSibling.style.marginRight = '10px';
document.getElementById('dark_mode').onclick = function() {
dark_mode = this.checked;
SetCookie('dark_mode', this.checked);
if(!dark_mode) RmDarkSB();
var colorProperties = ['color', 'background-color'];
$('*').each(function() {
var color = null;
for (var prop in colorProperties) {
prop = colorProperties[prop];
if (!$(this).css(prop) || $(this).is('button') || $(this).is(executeBtn)) continue;
color = new RGBColor($(this).css(prop));
if (color.ok) {
$(this).css(prop, 'rgb(' + (255 - color.r) + ', ' + (255 - color.g) + ', ' + (255 - color.b) + ')');
}
color = null; //some cleanup
}
});
if(dark_mode) AddDarkSB();
};
document.getElementById('auto_refresh').onclick = function() {
auto_refresh = this.checked;
SetCookie('auto_refresh', this.checked);
StopAutoRef();
if(this.checked) AutoRefresh();
};
document.getElementById('auto_mine').onclick = function() {
auto_mine = this.checked;
SetCookie('auto_mine', this.checked);
};
document.getElementById('auto_execute').onclick = function() {
auto_execute = this.checked;
SetCookie('auto_execute', this.checked);
};
}
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";
btnDiv.appendChild(btn);
if(id == 'save') btn.style.background = '#232323';
else if(id == 'clear') btn.style.background = 'rgb(185, 10, 10)';
}
function SetCookie(cname, cvalue) {
var d = new Date();
d.setTime(d.getTime() + (365 * 24 * 60 * 60 * 1000));
var expires = "expires=" + d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
function GetCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == ' ') {
c = c.substring(1);
}
if (c.indexOf(name) === 0) {
var res = c.substring(name.length, c.length);
if(res.toLowerCase() == 'true') return true;
else if (res.toLowerCase() == 'false') return false;
return res;
}
}
return "";
}
function CheckCookie(cname) {
if (GetCookie(cname) !== "") return true;
else return false;
}
function Middlize(elms){
elms.forEach(function(elm) {
elm.style.display = "flex";
elm.style.justifyContent = "center";
elm.style.marginLeft = "0px";
});
executeBtn.style.marginLeft = "0px";
btnDiv.style.marginTop = "2px";
var table = document.getElementById('select_queues');
table.style.position = "relative";
table.style.left = "50%";
table.style.transform = "translate(-50%)";
table.style.marginLeft = "0px";
}
function AddBtns(){
var btn;
AddBtn(btn, 'mine', 'Mine', CheckMine);
AddBtn(btn, 'bc', 'BC', CheckBC);
AddBtn(btn, 'prem', 'Prem', CheckPrem);
AddBtn(btn, 'save', 'Save', SaveMine);
AddBtn(btn, 'clear', 'Clear', UncheckAll);
}
function Categorize(){
spans = document.getElementsByTagName("span");
spans[0].parentNode.style.marginLeft = "0px";
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 (EXEMPT_MANDARIN && spanTxt.includes('mandarin')) {}
else prem.push(i-1);
}
}
}
})();