From 9fc34e270478a85995a85d52f39ed1106d22369c Mon Sep 17 00:00:00 2001 From: Tyler Date: Fri, 4 Jun 2021 22:57:31 -0500 Subject: [PATCH] catch up --- statusio-selector.js | 199 ++++++++++++++++++++++++++++++++----------- 1 file changed, 151 insertions(+), 48 deletions(-) diff --git a/statusio-selector.js b/statusio-selector.js index f5f3a42..00c2677 100644 --- a/statusio-selector.js +++ b/statusio-selector.js @@ -10,6 +10,29 @@ // @version 0.0.1 // ==/UserScript== +if (window.location.href.indexOf("5d49ec10226b9e13cb6a422e") > -1) { + console.log("azure status page"); + var componentArray = ["api", "auth", "compute", "jobs", "odbc", "webapp", "sql"]; + var regionArray = ["canadacentral", "canadaeast", "centralindia", "southindia", "westindia", + + "switzerlandnorth", "norwayeast", "westus2", "westus", "southcentralus", + + "westeurope", "northeurope", "ukwest", "uksouth", "southafricanorth", + + "uaenorth", "australiaeast", "australiacentral", "australiacentral2", + + "australiasoutheast", "japaneast", "japanwest", "koreacentral", + + "southeastasia", "eastasia", "brazilsouth", "eastus2", "eastus", + + "centralus", "northcentralus", "francecentral", "chinanorth2", "chinaeast2", + + "usgovvirginia", "usgovarizona"]; + var profilesHTML = '
' + var dataplanesHTML = '' + var locationHTML = dataplanesHTML +} + +if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) { + console.log("aws status page"); +} + +if (window.location.href.indexOf("60087ab5608daf0535dc8e23") > -1) { + console.log("gcp status page"); +} // setup some variables var apiGroup = $("div.form-group").filter(":contains('API Service')"); var authGroup = $("div.form-group").filter(":contains('Authentication')"); @@ -17,34 +40,45 @@ var computeGroup = $("div.form-group").filter(":contains('Compute Service')"); var jobsGroup = $("div.form-group").filter(":contains('Jobs Service')"); var odbcGroup = $("div.form-group").filter(":contains('ODBC/JDBC Service')"); var webappGroup = $("div.form-group").filter(":contains('User Interface')"); +var sqlGroup = $("div.form-group").filter(":contains('Databricks SQL')"); + -var componentArray = ["api", "auth", "compute", "jobs", "odbc", "webapp"]; var selectedComponents = new Map(); -var i; +var selectedRegions = new Map(); for (i = 0; i < componentArray.length; i++) { - selectedComponents.set(componentArray[i], 0); + selectedComponents.set(componentArray[i], false); } -for (i = 0; i < componentArray.length; i++) { - var component = componentArray[i]; - if (selectedComponents.get(component) == 0){ - var groupName = component + "Group"; - console.log(groupName); - console.log(eval(groupName)); +for (i = 0; i < regionArray.length; i++) { + selectedRegions.set(regionArray[i], false) +} + +function apply() { + for (i = 0; i < componentArray.length; i++) { + var component = componentArray[i]; + console.log(component) + for (j = 0; j < regionArray.length; j++) { + var region = regionArray[j]; + var groupName = component + "Group"; + var group = eval(groupName); + var checkboxStr = `group.find('*').filter(\":contains('${region}')\").filter("div.clearfix.prettycheckbox.labelright.blue").children().filter("A")[0]`; + var checkbox = eval(checkboxStr); + if (checkRegion(region) == true && checkComponent(component) == true) { + selectCheckbox(checkbox); + } else { + deselectCheckbox(checkbox); + } + } } } -// load actions -var testObj = apiGroup.find('*').filter(":contains('canadacentral')").filter("div.clearfix.prettycheckbox.labelright.blue").children().filter("A")[0]; -console.log(Object.keys(testObj)); -console.log(testObj); // draw frame var zNode = document.createElement('div'); -zNode.innerHTML = '' + +zNode.innerHTML = profilesHTML + '
' + locationHTML + '

' + '' + - '

' + - ' '; + '

'+ + ''; zNode.setAttribute('id', 'myContainer'); document.body.appendChild(zNode); @@ -54,48 +88,56 @@ document.getElementById("apiButton").addEventListener( ); function apiButtonClickAction(zEvent) { - toggleComponent("api", "apiButton"); - console.log(selectedComponents); + toggleComponent("api"); + toggleButtonColor("apiButton"); } document.getElementById("authButton").addEventListener( "click", authButtonClickAction, false ); function authButtonClickAction(zEvent) { - toggleComponent("auth", "authButton"); - console.log(selectedComponents); + toggleComponent("auth"); + toggleButtonColor("authButton"); } document.getElementById("computeButton").addEventListener( "click", computeButtonClickAction, false ); - function computeButtonClickAction(zEvent) { - toggleComponent("compute", "computeButton"); - console.log(selectedComponents); + toggleComponent("compute"); + toggleButtonColor("computeButton"); } + document.getElementById("jobsButton").addEventListener( "click", jobsButtonClickAction, false ); function jobsButtonClickAction(zEvent) { - toggleComponent("jobs", "jobsButton"); - console.log(selectedComponents); + toggleComponent("jobs"); + toggleButtonColor("jobsButton"); } document.getElementById("odbcButton").addEventListener( "click", odbcButtonClickAction, false ); function odbcButtonClickAction(zEvent) { - toggleComponent("odbc", "odbcButton"); - console.log(selectedComponents); + toggleComponent("odbc"); + toggleButtonColor("odbcButton"); } document.getElementById("webappButton").addEventListener( "click", webappButtonClickAction, false ); function webappButtonClickAction(zEvent) { - toggleComponent("webapp", "webappButton"); - console.log(selectedComponents); + toggleComponent("webapp"); + toggleButtonColor("webappButton"); +} +document.getElementById("sqlButton").addEventListener( + "click", sqlButtonClickAction, false +); + +function sqlButtonClickAction(zEvent) { + toggleComponent("sql"); + toggleButtonColor("sqlButton"); } document.getElementById("allComponentsButton").addEventListener( "click", allComponentsButtonClickAction, false @@ -105,49 +147,110 @@ function allComponentsButtonClickAction(zEvent) { for (i = 0; i < componentArray.length; i++) { var component = componentArray[i]; var buttonName = component + "Button"; - toggleComponent(component, buttonName); - console.log(buttonName); + selectComponent(component); + setButtonColor(buttonName); } } // regional buttons function canadaCentralButtonClickAction(zEvent) { - checkBoxToggle(testObj, "canadaCentralButton"); + toggleRegion("canadacentral"); + toggleButtonColor("canadaCentralButton") + } document.getElementById("canadaCentralButton").addEventListener( "click", canadaCentralButtonClickAction, false ); - -// aux buttons -function printArrayClickAction(zEvent) { - console.log(componentArray); +function canadaEastButtonClickAction(zEvent) { + toggleRegion("canadaeast"); + toggleButtonColor("canadaEastButton") } -document.getElementById("printArrayButton").addEventListener( - "click", printArrayClickAction, false +document.getElementById("canadaEastButton").addEventListener( + "click", canadaEastButtonClickAction, false ); +// aux buttons +function applyButtonClickAction(zEvent) { + apply(); +} +document.getElementById("applyButton").addEventListener( + "click", applyButtonClickAction, false +) // aux functions -function toggleComponent(component, buttonName) { - if (selectedComponents.get(component) == 0) { - selectedComponents.set(component, 1); - document.getElementById(buttonName).style.background = '#00FF00'; +function toggleComponent(component) { + if (checkComponent(component) == false) { + selectComponent(component); } else { - selectedComponents.set(component, 0); - document.getElementById(buttonName).style.background = '#FFFFFF'; + deselectComponent(component); } } +function toggleButtonColor(buttonName) { + var bg = document.getElementById(buttonName).style.background; + if(bg != '') { + clearButtonColor(buttonName); + } else { + setButtonColor(buttonName); + } +} +function checkComponent(component) { + var status = selectedComponents.get(component); + return status; +} +function checkRegion(region) { + var status = selectedRegions.get(region) + return status; +} -function checkBoxToggle(box, buttonName) { +function selectComponent(component) { + selectedComponents.set(component, true); + console.log(selectedComponents); +} + +function deselectComponent(component) { + selectedComponents.set(component, false); + console.log(selectedComponents); +} + +function toggleRegion(region) { + if (checkRegion(region) == false) { + selectRegion(region); + } else { + deselectRegion(region); + } +} +function selectRegion(region) { + selectedRegions.set(region, true); + console.log(selectedRegions); +} +function deselectRegion(region) { + selectedRegions.set(region, false); + console.log(selectedRegions); +} +function setButtonColor(buttonName) { + document.getElementById(buttonName).style.background = '#00FF00'; +} + +function clearButtonColor(buttonName) { + document.getElementById(buttonName).style.background = ''; +} + +function selectCheckbox(box) { + box.setAttribute("class", "checked"); +} +function deselectCheckbox(box) { + box.setAttribute("class", ""); +} + +function toggleCheckbox(box) { if (box.getAttribute("class") == "checked") { box.setAttribute("class", ""); - document.getElementById(buttonName).style.background = '#FFFFFF'; } else { box.setAttribute("class", "checked"); - document.getElementById(buttonName).style.background = '#00FF00'; } } + function multilineStr(dummyFunc) { var str = dummyFunc.toString(); str = str.replace(/^[^\/]+\/\*!?/, '') // Strip function () { /*! @@ -156,7 +259,6 @@ function multilineStr(dummyFunc) { ; return str; } - // frame CSS style GM_addStyle(multilineStr(function() { /*! @@ -181,3 +283,4 @@ GM_addStyle(multilineStr(function() { } */ })); +