diff --git a/statusio-selector.js b/statusio-selector.js index 5dc925f..66fcef8 100644 --- a/statusio-selector.js +++ b/statusio-selector.js @@ -17,7 +17,8 @@ document.body.appendChild(zNode); var auxHTML = '
'; -var debugFlag = true; +var debugFlag = false; +var currentMode = ""; //azure status page controls if (window.location.href.indexOf("5d49ec10226b9e13cb6a422e") > -1) { // render initial HTML @@ -350,13 +351,13 @@ if (window.location.href.indexOf("5d49ec10226b9e13cb6a422e") > -1) { // profile management functions function loadDataplanes() { + currentMode = "dataplane"; console.log("Loading Azure dataplanes profile"); var dataplaneHTML = '
















'; - zNode.innerHTML = profilesHTML + '
' + dataplaneHTML + '
' + componentsHTML + auxHTML; if (debugFlag == true) { - toggleButtonColor(debugButton); + toggleButtonColor("debugButton"); }; // array of active buttons @@ -428,11 +429,12 @@ if (window.location.href.indexOf("5d49ec10226b9e13cb6a422e") > -1) { document.getElementById("applyButton").addEventListener("click", applyButtonClickAction, false); }; function loadControlplanes() { + currentMode = "controlplane"; console.log("Loading Azure controlplanes profile"); var controlplaneHTML = '












'; zNode.innerHTML = profilesHTML + '
' + controlplaneHTML + '
' + componentsHTML + auxHTML; if (debugFlag == true) { - toggleButtonColor(debugButton); + toggleButtonColor("debugButton"); }; // array of active buttons @@ -487,12 +489,13 @@ if (window.location.href.indexOf("5d49ec10226b9e13cb6a422e") > -1) { document.getElementById("applyButton").addEventListener("click", applyButtonClickAction, false); }; function loadStages() { + currentMode = "stage"; console.log("Loading Azure stages profile"); var stagesHTML = '

'; zNode.innerHTML = profilesHTML + '
' + stagesHTML + '
' + componentsHTML + auxHTML; if (debugFlag == true) { - toggleButtonColor(debugButton); + toggleButtonColor("debugButton"); }; // array of active buttons @@ -530,15 +533,17 @@ if (window.location.href.indexOf("5d49ec10226b9e13cb6a422e") > -1) { document.getElementById("applyButton").addEventListener("click", applyButtonClickAction, false); }; function shrink() { + currentMode = ""; zNode.innerHTML = profilesHTML if (debugFlag == true) { - toggleButtonColor(debugButton); + toggleButtonColor("debugButton"); }; document.getElementById("controlplanesButton").addEventListener("click", controlplanesButtonClickAction, false); document.getElementById("dataplanesButton").addEventListener("click", dataplanesButtonClickAction, false); document.getElementById("stagesButton").addEventListener("click", stagesButtonClickAction, false); document.getElementById("shrinkButton").addEventListener("click", shrinkButtonClickAction, false); + document.getElementById("debugButton").addEventListener("click", debugButtonClickAction, false); }; }; @@ -550,7 +555,7 @@ if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) { 'Dataplanes
'; zNode.innerHTML = profilesHTML; if (debugFlag == true) { - toggleButtonColor(debugButton); + toggleButtonColor("debugButton"); }; document.getElementById("controlplanesButton").addEventListener("click", controlplanesButtonClickAction, false); document.getElementById("dataplanesButton").addEventListener("click", dataplanesButtonClickAction, false); @@ -583,6 +588,7 @@ if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) { 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 ceGroup = $("div.form-group").filter(":contains('Community Edition')"); // write component HTML template var componentsHTML = '
' + @@ -641,50 +647,83 @@ if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) { toggleRegion("eu-west-1"); toggleButtonColor("euwest1Button"); }; - function canadacentralCPButtonClickAction(zEvent) { - toggleRegion("canadacentral"); - toggleRegion("canadaeast"); - toggleButtonColor("canadacentralButton"); - }; function ceButtonClickAction(zEvent) { toggleButtonColor("ceButton"); toggleCe(); }; - function selectCe() { - ceFlag = true; - if (debugFlag = true) { - console.log("DEBUG: ceFlag = " + ceFlag); - }; + function stage1ButtonClickAction(zEvent) { + toggleRegion("ca-central-1"); + toggleRegion("eu-central-1"); + toggleRegion("eu-west-2"); + toggleCe(); + toggleButtonColor("stage1Button"); }; - function deselectCe() { - ceFlag = false; + function stage2ButtonClickAction(zEvent) { + toggleRegion("us-west-2"); + toggleRegion("us-west-1"); + toggleRegion("us-east-1"); + toggleRegion("us-east-2"); + toggleButtonColor("stage2Button"); }; - function toggleCe() { - if (checkCe == false) { - selectCe(); - } else { - deselectCe(); - } + function stage3amButtonClickAction(zEvent) { + toggleRegion("ap-south-1"); + toggleRegion("ap-southeast-2"); + toggleRegion("ap-northeast-1"); + toggleButtonColor("stage3amButton"); }; - function checkCe() { - var status = ceFlag; - return status; + function stage3pmButtonClickAction(zEvent) { + toggleRegion("eu-west-1"); + toggleButtonColor("stage3pmButton"); + }; + + // component functions + function authButtonClickAction(zEvent) { + toggleComponent("auth"); + toggleButtonColor("authButton"); + }; + function apiButtonClickAction(zEvent) { + toggleComponent("api"); + toggleButtonColor("apiButton"); + }; + function computeButtonClickAction(zEvent) { + toggleComponent("compute"); + toggleButtonColor("computeButton"); + }; + function jobsButtonClickAction(zEvent) { + toggleComponent("jobs"); + toggleButtonColor("jobsButton"); + }; + function odbcButtonClickAction(zEvent) { + toggleComponent("odbc"); + toggleButtonColor("odbcButton"); + }; + function webappButtonClickAction(zEvent) { + toggleComponent("webapp"); + toggleButtonColor("webappButton"); + }; + function sqlButtonClickAction(zEvent) { + toggleComponent("sql"); + toggleButtonColor("sqlButton"); }; // profile management functions function loadDataplanes() { + currentMode = "dataplane"; console.log("Loading AWS dataplanes profile"); var dataplaneHTML = '







'; zNode.innerHTML = profilesHTML + '
' + dataplaneHTML + '
' + componentsHTML + auxHTML; if (debugFlag == true) { - toggleButtonColor(debugButton); + toggleButtonColor("debugButton"); }; // array of active buttons - buttonArray = ["CE", "ca-central-1", "eu-central-1", "eu-west-2", "us-west-2", "us-east-1", "us-east-2", "ap-south-1", - "ap-southeast-2", "ap-northeast-1", "eu-west-1"]; - //reset(); + buttonArray = ["ce", "cacentral1", "eucentral1", "euwest2", "uswest2", "uswest1", "useast1", "useast2", "apsouth1", + "apsoutheast2", "apnortheast1", "euwest1"]; + + // clear everything on profile load + reset(); + // regional listeners document.getElementById("cacentral1Button").addEventListener("click", cacentral1ButtonClickAction, false); document.getElementById("eucentral1Button").addEventListener("click", eucentral1ButtonClickAction, false); @@ -721,20 +760,20 @@ if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) { document.getElementById("applyButton").addEventListener("click", applyButtonClickAction, false); }; function loadControlplanes() { + currentMode = "controlplane"; console.log("Loading AWS controlplanes profile"); - var controlplaneHTML = '






'; + var controlplaneHTML = '






'; zNode.innerHTML = profilesHTML + '
' + controlplaneHTML + '
' + componentsHTML + auxHTML; if (debugFlag == true) { - toggleButtonColor(debugButton); + toggleButtonColor("debugButton"); }; // array of active buttons - buttonArray = ["canadacentral", "centralindia", "switzerlandnorth", "norwayeast", "westus", "westeurope","ukwest", "southafricanorth", - "uaenorth", "australiaeast", "japaneast", "koreacentral", "southeastasia", "brazilsouth", "eastus2", "francecentral", - "chinanorth2", "chinaeast2", "usgovvirginia", "usgovarizona"]; + buttonArray = ["ce", "cacentral1", "eucentral1", "euwest2", "uswest2", "useast2", "apsouth1", + "apsoutheast2", "apnortheast1", "euwest1"]; // clear everything on profile load - //reset(); + reset(); // regional listeners // document.getElementById("canadacentralButton").addEventListener("click", canadacentralCPButtonClickAction, false); @@ -742,12 +781,12 @@ if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) { document.getElementById("eucentral1Button").addEventListener("click", eucentral1ButtonClickAction, false); document.getElementById("euwest2Button").addEventListener("click", euwest2ButtonClickAction, false); document.getElementById("uswest2Button").addEventListener("click", uswest2CPButtonClickAction, false); - document.getElementById("useast1Button").addEventListener("click", useast1ButtonClickAction, false); document.getElementById("useast2Button").addEventListener("click", useast2ButtonClickAction, false); document.getElementById("apsouth1Button").addEventListener("click", apsouth1ButtonClickAction, false); document.getElementById("apsoutheast2Button").addEventListener("click", apsoutheast2ButtonClickAction, false); document.getElementById("apnortheast1Button").addEventListener("click", apnortheast1ButtonClickAction, false); document.getElementById("euwest1Button").addEventListener("click", euwest1ButtonClickAction, false); + document.getElementById("ceButton").addEventListener("click", ceButtonClickAction, false); // profile listeners document.getElementById("controlplanesButton").addEventListener("click", controlplanesButtonClickAction, false); @@ -771,20 +810,26 @@ if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) { document.getElementById("applyButton").addEventListener("click", applyButtonClickAction, false); }; function loadStages() { + currentMode = "stage"; console.log("Loading AWS stages profile"); var stagesHTML = '
'; zNode.innerHTML = profilesHTML + '
' + stagesHTML + '
' + componentsHTML + auxHTML; if (debugFlag == true) { - toggleButtonColor(debugButton); + toggleButtonColor("debugButton"); } // array of active buttons - buttonArray = ["stage1", "stage1point5", "stage2", "stage3am", "stage3pm", "stagegovcloud", "stagemooncake"]; - // reset(); + buttonArray = ["stage1", "stage2", "stage3am", "stage3pm"]; + + // clear everything on profile load + reset(); // regional listeners - //document.getElementById("stage1Button").addEventListener("click", stage1ButtonClickAction, false); + document.getElementById("stage1Button").addEventListener("click", stage1ButtonClickAction, false); + document.getElementById("stage2Button").addEventListener("click", stage2ButtonClickAction, false); + document.getElementById("stage3amButton").addEventListener("click", stage3amButtonClickAction, false); + document.getElementById("stage3pmButton").addEventListener("click", stage3pmButtonClickAction, false); // profile listeners document.getElementById("controlplanesButton").addEventListener("click", controlplanesButtonClickAction, false); @@ -807,9 +852,10 @@ if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) { document.getElementById("applyButton").addEventListener("click", applyButtonClickAction, false); }; function shrink() { + currentMode = ""; zNode.innerHTML = profilesHTML if (debugFlag == true) { - toggleButtonColor(debugButton); + toggleButtonColor("debugButton"); }; document.getElementById("controlplanesButton").addEventListener("click", controlplanesButtonClickAction, false); @@ -824,11 +870,135 @@ if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) { if (window.location.href.indexOf("60087ab5608daf0535dc8e23") > -1) { // render initial HTML var profilesHTML = '
' + - '
'; + '' + + '
'; zNode.innerHTML = profilesHTML; if (debugFlag == true) { - toggleButtonColor(debugButton); + toggleButtonColor("debugButton"); + }; + + document.getElementById("controlplanesButton").addEventListener("click", controlplanesButtonClickAction, false); + document.getElementById("stagesButton").addEventListener("click", stagesButtonClickAction, false); + document.getElementById("shrinkButton").addEventListener("click", shrinkButtonClickAction, false); + document.getElementById("debugButton").addEventListener("click", debugButtonClickAction, false); + + // initialize azure component and region variables + var componentArray = ["api", "auth", "compute", "jobs", "odbc", "webapp"]; + var regionArray = ["us-west1", "us-central1", "europe-west2", "us-west4"]; + var buttonArray = []; + + var selectedComponents = new Map(); + var selectedRegions = new Map(); + for (i = 0; i < componentArray.length; i++) { + selectedComponents.set(componentArray[i], false); + }; + for (i = 0; i < regionArray.length; i++) { + selectedRegions.set(regionArray[i], false); + }; + + // init component div groups + var apiGroup = $("div.form-group").filter(":contains('API Service')"); + var authGroup = $("div.form-group").filter(":contains('Authentication')"); + 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')"); + + // write component HTML template + var componentsHTML = '
' + + '' + + '' + + '


'; + + // regional functions + function uswest1ButtonClickAction(zEvent) { + toggleRegion("us-west1"); + toggleButtonColor("uswest1Button"); + }; + function uscentral1ButtonClickAction(zEvent) { + toggleRegion("us-central1"); + toggleButtonColor("uscentral1Button"); + }; + function europewest2ButtonClickAction(zEvent) { + toggleRegion("europe-west2"); + toggleButtonColor("europewest2Button"); + }; + function uswest4ButtonClickAction(zEvent) { + toggleRegion("us-west4"); + toggleButtonColor("uswest4Button"); + }; + function stage1ButtonClickAction(zEvent) { + toggleRegion("uswest1"); + toggleRegion("uscentral1"); + toggleRegion("europewest2"); + toggleRegion("uswest4"); + toggleButtonColor("stage1Button"); + }; + // component functions + function authButtonClickAction(zEvent) { + toggleComponent("auth"); + toggleButtonColor("authButton"); + }; + function apiButtonClickAction(zEvent) { + toggleComponent("api"); + toggleButtonColor("apiButton"); + }; + function computeButtonClickAction(zEvent) { + toggleComponent("compute"); + toggleButtonColor("computeButton"); + }; + function jobsButtonClickAction(zEvent) { + toggleComponent("jobs"); + toggleButtonColor("jobsButton"); + }; + function odbcButtonClickAction(zEvent) { + toggleComponent("odbc"); + toggleButtonColor("odbcButton"); + }; + function webappButtonClickAction(zEvent) { + toggleComponent("webapp"); + toggleButtonColor("webappButton"); + }; + + function loadControlplanes() { + currentMode = "controlplane"; + console.log("Loading GCP controlplanes profile"); + var controlplaneHTML = '

'; + zNode.innerHTML = profilesHTML + '
' + controlplaneHTML + '
' + componentsHTML + auxHTML; + if (debugFlag == true) { + toggleButtonColor("debugButton"); + }; + + // array of active buttons + buttonArray = ["uswest1", "uscentral1", "europewest2", "uswest4"]; + + // clear everything on profile load + reset(); + + // regional listeners + document.getElementById("uswest1Button").addEventListener("click", uswest1ButtonClickAction, false); + document.getElementById("uscentral1Button").addEventListener("click", uscentral1ButtonClickAction, false); + document.getElementById("europewest2Button").addEventListener("click", europewest2ButtonClickAction, false); + document.getElementById("uswest4Button").addEventListener("click", uswest4ButtonClickAction, false); + + // profile listeners + document.getElementById("controlplanesButton").addEventListener("click", controlplanesButtonClickAction, false); + document.getElementById("stagesButton").addEventListener("click", stagesButtonClickAction, false); + document.getElementById("shrinkButton").addEventListener("click", shrinkButtonClickAction, false); + document.getElementById("debugButton").addEventListener("click", debugButtonClickAction, false); + + // component listeners + document.getElementById("apiButton").addEventListener("click", apiButtonClickAction, false); + document.getElementById("authButton").addEventListener("click", authButtonClickAction, false); + document.getElementById("computeButton").addEventListener("click", computeButtonClickAction, false); + document.getElementById("jobsButton").addEventListener("click", jobsButtonClickAction, false); + document.getElementById("odbcButton").addEventListener("click", odbcButtonClickAction, false); + document.getElementById("webappButton").addEventListener("click", webappButtonClickAction, false); + document.getElementById("allComponentsButton").addEventListener("click", allComponentsButtonClickAction, false); + + // aux listeners + document.getElementById("resetButton").addEventListener("click", resetButtonClickAction, false); + document.getElementById("applyButton").addEventListener("click", applyButtonClickAction, false); }; }; @@ -906,13 +1076,13 @@ function checkRegion(region) { }; function selectComponent(component) { selectedComponents.set(component, true); - if (debugFlag = true) { + if (debugFlag == true) { console.log(selectedComponents); } }; function deselectComponent(component) { selectedComponents.set(component, false); - if (debugFlag = true) { + if (debugFlag == true) { console.log(selectedComponents); }; }; @@ -925,13 +1095,13 @@ function toggleRegion(region) { }; function selectRegion(region) { selectedRegions.set(region, true); - if (debugFlag = true) { + if (debugFlag == true) { console.log(selectedRegions); }; }; function deselectRegion(region) { selectedRegions.set(region, false); - if (debugFlag = true) { + if (debugFlag == true) { console.log(selectedRegions); }; }; @@ -965,6 +1135,15 @@ function apply() { } } } + if (typeof ceFlag != 'undefined') { + var checkboxStr = `$("div.form-group").filter(":contains('Community Edition')").children().slice(1).children().children().children().children().children()`; + var checkbox = eval(checkboxStr); + if (checkCe() == true) { + selectCheckbox(checkbox); + } else { + deselectCheckbox(checkbox); + } + } }; function reset() { for (i = 0; i < componentArray.length; i++) { @@ -982,6 +1161,12 @@ function reset() { var region = regionArray[i]; deselectRegion(region); }; + if (typeof ceFlag != 'undefined') { + deselectCe(); + if (currentMode != 'stage') { + clearButtonColor("ceButton"); + }; + } apply(); }; function checkDebug() { @@ -989,7 +1174,7 @@ function checkDebug() { return status; }; function toggleDebug() { - if (checkDebug == false) { + if (checkDebug() == false) { enableDebug(); } else { disableDebug(); @@ -1003,3 +1188,23 @@ function disableDebug() { debugFlag = false; console.log("DEBUG logging disabled"); }; +function selectCe() { + ceFlag = true; + if (debugFlag == true) { + console.log("DEBUG: ceFlag = " + ceFlag); + }; +}; +function deselectCe() { + ceFlag = false; +}; +function toggleCe() { + if (checkCe() == false) { + selectCe(); + } else { + deselectCe(); + } +}; +function checkCe() { + var status = ceFlag; + return status; +};