diff --git a/statusio-selector.user.js b/statusio-selector.user.js new file mode 100644 index 0000000..c6a3c61 --- /dev/null +++ b/statusio-selector.user.js @@ -0,0 +1,1295 @@ +// ==UserScript== +// @name Status.io Selector +// @namespace https://status.io +// @description Effort to simplify configuration of incidents/maintenance windows +// @require http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js +// @require http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.1/jquery-ui.min.js +// @version 0.0.1 +// @downloadUrl https://gitea.frijole.lol/o0beaner/js-statusio-selector/raw/branch/main/statusio-selector.js +// @updateURL https://gitea.frijole.lol/o0beaner/js-statusio-selector/raw/branch/main/statusio-selector.js +// @include /^https?://app\.status\.io/dashboard/.*/?(maintenance|incident)/create$/ +// @include /^https?://app\.status\.io/dashboard/.*/?(maintenance|incident)/.*/?edit$/ +// @grant GM_addStyle +// @grant GM_setClipboard +// ==/UserScript== + +//--- Style our newly added elements using CSS. +GM_addStyle ( multilineStr ( function () {/*! + #myContainer { + position: fixed; + bottom: 150px; + right: 0; + font-size: 14px; + background: orange; + border: 3px outset black; + margin: 3px; + opacity: 0.7; + z-index: 222; + padding: 5px 5px; + } + #myButton { + cursor: pointer; + } + #myContainer p { + color: red; + background: white; + } + */} ) ); + +function multilineStr (dummyFunc) { + var str = dummyFunc.toString (); + str = str.replace (/^[^\/]+\/\*!?/, '') // Strip function () { /*! + .replace (/\s*\*\/\s*\}\s*$/, '') // Strip */ } + .replace (/\/\/.+$/gm, '') // Double-slash comments wreck CSS. Strip them. + ; + return str; +} + +// draw frame +var zNode = document.createElement('div'); +zNode.setAttribute('id', 'myContainer'); +document.body.appendChild(zNode); + +var auxHTML = '
'; + +var debugFlag = false; +var currentMode = ""; +//azure status page controls +if (window.location.href.indexOf("5d49ec10226b9e13cb6a422e") > -1) { + // render initial HTML + var profilesHTML = '
' + + '
'; + zNode.innerHTML = profilesHTML; + if (debugFlag == true) { + 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); + + // initialize azure component and region variables + 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 buttonArray = []; + + // create tracking maps + 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')"); + var sqlGroup = $("div.form-group").filter(":contains('Databricks SQL')"); + + // write component HTML template + var componentsHTML = '
' + + '' + + '' + + '


'; + + // regional functions + function canadaeastButtonClickAction(zEvent) { + toggleRegion("canadaeast"); + toggleButtonColor("canadaeastButton"); + }; + function canadacentralButtonClickAction(zEvent) { + toggleRegion("canadacentral"); + toggleButtonColor("canadacentralButton"); + }; + function canadacentralCPButtonClickAction(zEvent) { + toggleRegion("canadacentral"); + toggleRegion("canadaeast"); + toggleButtonColor("canadacentralButton"); + }; + function centralindiaButtonClickAction(zEvent) { + toggleRegion("centralindia"); + toggleButtonColor("centralindiaButton"); + }; + function centralindiaCPButtonClickAction(zEvent) { + toggleRegion("centralindia"); + toggleRegion("southindia"); + toggleRegion("westindia"); + toggleButtonColor("centralindiaButton"); + }; + function southindiaButtonClickAction(zEvent) { + toggleRegion("southindia"); + toggleButtonColor("southindiaButton"); + }; + function westindiaButtonClickAction(zEvent) { + toggleRegion("westindia"); + toggleButtonColor("westindiaButton"); + }; + function switzerlandnorthButtonClickAction(zEvent) { + toggleRegion("switzerlandnorth"); + toggleButtonColor("switzerlandnorthButton"); + }; + function norwayeastButtonClickAction(zEvent) { + toggleRegion("norwayeast"); + toggleButtonColor("norwayeastButton"); + }; + function westusButtonClickAction(zEvent) { + toggleRegion("westus"); + toggleButtonColor("westusButton"); + }; + function westusCPButtonClickAction(zEvent) { + toggleRegion("westus"); + toggleRegion("westus2"); + toggleRegion("southcentralus"); + toggleButtonColor("westusButton"); + }; + function westus2ButtonClickAction(zEvent) { + toggleRegion("westus2"); + toggleButtonColor("westus2Button"); + }; + function southcentralusButtonClickAction(zEvent) { + toggleRegion("southcentralus"); + toggleButtonColor("southcentralusButton"); + }; + function westeuropeButtonClickAction(zEvent) { + toggleRegion("westeurope"); + toggleButtonColor("westeuropeButton"); + }; + function westeuropeCPButtonClickAction(zEvent) { + toggleRegion("westeurope"); + toggleRegion("northeurope"); + toggleButtonColor("westeuropeButton"); + } + function northeuropeButtonClickAction(zEvent) { + toggleRegion("northeurope"); + toggleButtonColor("northeuropeButton"); + }; + function ukwestButtonClickAction(zEvent) { + toggleRegion("ukwest"); + toggleButtonColor("ukwestButton"); + }; + function ukwestCPButtonClickAction(zEvent) { + toggleRegion("ukwest"); + toggleRegion("uksouth"); + toggleButtonColor("ukwestButton"); + }; + function uksouthButtonClickAction(zEvent) { + toggleRegion("uksouth"); + toggleButtonColor("uksouthButton"); + }; + function southafricanorthButtonClickAction(zEvent) { + toggleRegion("southafricanorth"); + toggleButtonColor("southafricanorthButton"); + }; + function uaenorthButtonClickAction(zEvent) { + toggleRegion("uaenorth"); + toggleButtonColor("uaenorthButton"); + }; + function australiaeastButtonClickAction(zEvent) { + toggleRegion("australiaeast"); + toggleButtonColor("australiaeastButton"); + }; + function australiaeastCPButtonClickAction(zEvent) { + toggleRegion("australiaeast"); + toggleRegion("australiacentral"); + toggleRegion("australiacentral2"); + toggleRegion("australiasoutheast"); + toggleButtonColor("australiaeastButton"); + }; + function australiacentralButtonClickAction(zEvent) { + toggleRegion("australiacentral"); + toggleButtonColor("australiacentralButton"); + }; + function australiacentral2ButtonClickAction(zEvent) { + toggleRegion("australiacentral2"); + toggleButtonColor("australiacentral2Button"); + }; + function australiasoutheastButtonClickAction(zEvent) { + toggleRegion("australiasoutheast"); + toggleButtonColor("australiasoutheastButton"); + }; + function japaneastButtonClickAction(zEvent) { + toggleRegion("japaneast"); + toggleButtonColor("japaneastButton"); + }; + function japaneastCPButtonClickAction(zEvent) { + toggleRegion("japaneast"); + toggleRegion("japanwest"); + toggleButtonColor("japaneastButton"); + }; + function japanwestButtonClickAction(zEvent) { + toggleRegion("japanwest"); + toggleButtonColor("japanwestButton"); + }; + function koreacentralButtonClickAction(zEvent) { + toggleRegion("koreacentral"); + toggleButtonColor("koreacentralButton"); + }; + function southeastasiaButtonClickAction(zEvent) { + toggleRegion("southeastasia"); + toggleButtonColor("southeastasiaButton"); + }; + function southeastasiaCPButtonClickAction(zEvent) { + toggleRegion("southeastasia"); + toggleRegion("eastasia"); + toggleButtonColor("southeastasiaButton"); + }; + function eastasiaButtonClickAction(zEvent) { + toggleRegion("eastasia"); + toggleButtonColor("eastasiaButton"); + }; + function brazilsouthButtonClickAction(zEvent) { + toggleRegion("brazilsouth"); + toggleButtonColor("brazilsouthButton"); + }; + function eastus2ButtonClickAction(zEvent) { + toggleRegion("eastus2"); + toggleButtonColor("eastus2Button"); + }; + function eastus2CPButtonClickAction(zEvent) { + toggleRegion("eastus2"); + toggleRegion("eastus"); + toggleRegion("centralus"); + toggleRegion("northcentralus"); + toggleButtonColor("eastus2Button"); + }; + function eastusButtonClickAction(zEvent) { + toggleRegion("eastus"); + toggleButtonColor("eastusButton"); + }; + function centralusButtonClickAction(zEvent) { + toggleRegion("centralus"); + toggleButtonColor("centralusButton"); + }; + function northcentralusButtonClickAction(zEvent) { + toggleRegion("northcentralus"); + toggleButtonColor("northcentralusButton"); + }; + function francecentralButtonClickAction(zEvent) { + toggleRegion("francecentral"); + toggleButtonColor("francecentralButton"); + }; + function chinanorth2ButtonClickAction(zEvent) { + toggleRegion("chinanorth2"); + toggleButtonColor("chinanorth2Button"); + }; + function chinaeast2ButtonClickAction(zEvent) { + toggleRegion("chinaeast2"); + toggleButtonColor("chinaeast2Button"); + }; + function usgovvirginiaButtonClickAction(zEvent) { + toggleRegion("usgovvirginia"); + toggleButtonColor("usgovvirginiaButton"); + }; + function usgovarizonaButtonClickAction(zEvent) { + toggleRegion("usgovarizona"); + toggleButtonColor("usgovarizonaButton"); + }; + function stage1ButtonClickAction(zEvent) { + toggleRegion("canadacentral"); + toggleRegion("canadaeast"); + toggleRegion("centralindia"); + toggleRegion("southindia"); + toggleRegion("westindia"); + toggleRegion("switzerlandnorth"); + toggleRegion("norwayeast"); + toggleButtonColor("stage1Button"); + }; + function stage1point5ButtonClickAction(zEvent) { + toggleRegion("westus"); + toggleRegion("westus2"); + toggleRegion("southcentralus"); + toggleButtonColor("stage1point5Button"); + }; + function stage2ButtonClickAction(zEvent) { + toggleRegion("westeurope"); + toggleRegion("northeurope"); + toggleRegion("ukwest"); + toggleRegion("uksouth"); + toggleRegion("southafricanorth"); + toggleRegion("uaenorth"); + toggleButtonColor("stage2Button"); + }; + function stage3amButtonClickAction(zEvent) { + toggleRegion("australiaeast"); + toggleRegion("australiacentral"); + toggleRegion("australiacentral2"); + toggleRegion("australiasoutheast"); + toggleRegion("japaneast"); + toggleRegion("japanwest"); + toggleRegion("koreacentral"); + toggleRegion("southeastasia"); + toggleRegion("eastasia"); + toggleButtonColor("stage3amButton"); + }; + function stage3pmButtonClickAction(zEvent) { + toggleRegion("brazilsouth"); + toggleRegion("eastus2"); + toggleRegion("eastus"); + toggleRegion("centralus"); + toggleRegion("northcentralus"); + toggleRegion("francecentral"); + toggleButtonColor("stage3pmButton"); + }; + function stagegovcloudButtonClickAction(zEvent) { + toggleRegion("usgovvirginia"); + toggleRegion("usgovarizona"); + toggleButtonColor("stagegovcloudButton"); + }; + function stagemooncakeButtonClickAction(zEvent) { + toggleRegion("chinanorth2"); + toggleRegion("chinaeast2"); + toggleButtonColor("stagemooncakeButton"); + }; + + // 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 Azure dataplanes profile"); + var dataplaneHTML = '
















'; + zNode.innerHTML = profilesHTML + '
' + dataplaneHTML + '
' + componentsHTML + + auxHTML; + if (debugFlag == true) { + toggleButtonColor("debugButton"); + }; + + // array of active buttons + buttonArray = ["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"]; + reset(); + // regional listeners + document.getElementById("canadacentralButton").addEventListener("click", canadacentralButtonClickAction, false); + document.getElementById("canadaeastButton").addEventListener("click", canadaeastButtonClickAction, false); + document.getElementById("centralindiaButton").addEventListener("click", centralindiaButtonClickAction, false); + document.getElementById("southindiaButton").addEventListener("click", southindiaButtonClickAction, false); + document.getElementById("westindiaButton").addEventListener("click", westindiaButtonClickAction, false); + document.getElementById("switzerlandnorthButton").addEventListener("click", switzerlandnorthButtonClickAction, false); + document.getElementById("norwayeastButton").addEventListener("click", norwayeastButtonClickAction, false); + document.getElementById("westusButton").addEventListener("click", westusButtonClickAction, false); + document.getElementById("westus2Button").addEventListener("click", westus2ButtonClickAction, false); + document.getElementById("southcentralusButton").addEventListener("click", southcentralusButtonClickAction, false); + document.getElementById("westeuropeButton").addEventListener("click", westeuropeButtonClickAction, false); + document.getElementById("northeuropeButton").addEventListener("click", northeuropeButtonClickAction, false); + document.getElementById("ukwestButton").addEventListener("click", ukwestButtonClickAction, false); + document.getElementById("uksouthButton").addEventListener("click", uksouthButtonClickAction, false); + document.getElementById("southafricanorthButton").addEventListener("click", southafricanorthButtonClickAction, false); + document.getElementById("uaenorthButton").addEventListener("click", uaenorthButtonClickAction, false); + document.getElementById("australiaeastButton").addEventListener("click", australiaeastButtonClickAction, false); + document.getElementById("australiacentralButton").addEventListener("click", australiacentralButtonClickAction, false); + document.getElementById("australiacentral2Button").addEventListener("click", australiacentral2ButtonClickAction, false); + document.getElementById("australiasoutheastButton").addEventListener("click", australiasoutheastButtonClickAction, false); + document.getElementById("japaneastButton").addEventListener("click", japaneastButtonClickAction, false); + document.getElementById("japanwestButton").addEventListener("click", japanwestButtonClickAction, false); + document.getElementById("koreacentralButton").addEventListener("click", koreacentralButtonClickAction, false); + document.getElementById("southeastasiaButton").addEventListener("click", southeastasiaButtonClickAction, false); + document.getElementById("eastasiaButton").addEventListener("click", eastasiaButtonClickAction, false); + document.getElementById("brazilsouthButton").addEventListener("click", brazilsouthButtonClickAction, false); + document.getElementById("eastus2Button").addEventListener("click", eastus2ButtonClickAction, false); + document.getElementById("eastusButton").addEventListener("click", eastusButtonClickAction, false); + document.getElementById("centralusButton").addEventListener("click", centralusButtonClickAction, false); + document.getElementById("northcentralusButton").addEventListener("click", northcentralusButtonClickAction, false); + document.getElementById("francecentralButton").addEventListener("click", francecentralButtonClickAction, false); + document.getElementById("chinanorth2Button").addEventListener("click", chinanorth2ButtonClickAction, false); + document.getElementById("chinaeast2Button").addEventListener("click", chinaeast2ButtonClickAction, false); + document.getElementById("usgovvirginiaButton").addEventListener("click", usgovvirginiaButtonClickAction, false); + document.getElementById("usgovarizonaButton").addEventListener("click", usgovarizonaButtonClickAction, false); + + // profile listeners + 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); + + // 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("sqlButton").addEventListener("click", sqlButtonClickAction, false); + document.getElementById("allComponentsButton").addEventListener("click", allComponentsButtonClickAction, false); + + // aux listeners + document.getElementById("resetButton").addEventListener("click", resetButtonClickAction, false); + 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"); + }; + + // 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"]; + + // clear everything on profile load + reset(); + + // regional listeners + document.getElementById("canadacentralButton").addEventListener("click", canadacentralCPButtonClickAction, false); + document.getElementById("switzerlandnorthButton").addEventListener("click", switzerlandnorthButtonClickAction, false); + document.getElementById("norwayeastButton").addEventListener("click", norwayeastButtonClickAction, false); + document.getElementById("centralindiaButton").addEventListener("click", centralindiaCPButtonClickAction, false); + document.getElementById("westusButton").addEventListener("click", westusCPButtonClickAction, false); + document.getElementById("westeuropeButton").addEventListener("click", westeuropeCPButtonClickAction, false); + document.getElementById("ukwestButton").addEventListener("click", ukwestCPButtonClickAction, false); + document.getElementById("southafricanorthButton").addEventListener("click", southafricanorthButtonClickAction, false); + document.getElementById("uaenorthButton").addEventListener("click", uaenorthButtonClickAction, false); + document.getElementById("australiaeastButton").addEventListener("click", australiaeastCPButtonClickAction, false); + document.getElementById("japaneastButton").addEventListener("click", japaneastCPButtonClickAction, false); + document.getElementById("koreacentralButton").addEventListener("click", koreacentralButtonClickAction, false); + document.getElementById("southeastasiaButton").addEventListener("click", southeastasiaCPButtonClickAction, false); + document.getElementById("brazilsouthButton").addEventListener("click", brazilsouthButtonClickAction, false); + document.getElementById("eastus2Button").addEventListener("click", eastus2CPButtonClickAction, false); + document.getElementById("francecentralButton").addEventListener("click", francecentralButtonClickAction, false); + document.getElementById("chinanorth2Button").addEventListener("click", chinanorth2ButtonClickAction, false); + document.getElementById("chinaeast2Button").addEventListener("click", chinaeast2ButtonClickAction, false); + document.getElementById("usgovvirginiaButton").addEventListener("click", usgovvirginiaButtonClickAction, false); + document.getElementById("usgovarizonaButton").addEventListener("click", usgovarizonaButtonClickAction, false); + + // profile listeners + 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); + + // 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("sqlButton").addEventListener("click", sqlButtonClickAction, false); + document.getElementById("allComponentsButton").addEventListener("click", allComponentsButtonClickAction, false); + + // aux listeners + document.getElementById("resetButton").addEventListener("click", resetButtonClickAction, false); + 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"); + }; + + // array of active buttons + buttonArray = ["stage1", "stage1point5", "stage2", "stage3am", "stage3pm", "stagegovcloud", "stagemooncake"]; + reset(); + + // regional listeners + document.getElementById("stage1Button").addEventListener("click", stage1ButtonClickAction, false); + document.getElementById("stage1point5Button").addEventListener("click", stage1point5ButtonClickAction, false); + document.getElementById("stage2Button").addEventListener("click", stage2ButtonClickAction, false); + document.getElementById("stage3amButton").addEventListener("click", stage3amButtonClickAction, false); + document.getElementById("stage3pmButton").addEventListener("click", stage3pmButtonClickAction, false); + document.getElementById("stagegovcloudButton").addEventListener("click", stagegovcloudButtonClickAction, false); + document.getElementById("stagemooncakeButton").addEventListener("click", stagemooncakeButtonClickAction, false); + + // profile listeners + 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); + + // 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("sqlButton").addEventListener("click", sqlButtonClickAction, false); + document.getElementById("allComponentsButton").addEventListener("click", allComponentsButtonClickAction, false); + + // aux listeners + document.getElementById("resetButton").addEventListener("click", resetButtonClickAction, false); + document.getElementById("applyButton").addEventListener("click", applyButtonClickAction, false); + }; + function shrink() { + currentMode = ""; + zNode.innerHTML = profilesHTML + if (debugFlag == true) { + 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); + }; +}; + +// aws status page controls +if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) { + // render initial HTML + var profilesHTML = '
' + + '
'; + zNode.innerHTML = profilesHTML; + if (debugFlag == true) { + 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); + + // initialize azure component and region variables + var componentArray = ["api", "auth", "compute", "jobs", "odbc", "webapp", "sql"]; + var regionArray = ["us-west-1", "us-west-2", "us-east-1", "us-east-2", "sa-east-1", "eu-west-1", "eu-west-2", "eu-central-1", + "ap-south-1", "ap-southeast-1", "ap-southeast-2", "ap-northeast-1", "ap-northeast-2", "ca-central-1"]; + var buttonArray = []; + var ceFlag = false; + + // create tracking maps + 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')"); + var sqlGroup = $("div.form-group").filter(":contains('Databricks SQL')"); + var ceGroup = $("div.form-group").filter(":contains('Community Edition')"); + + // write component HTML template + var componentsHTML = '
' + + '' + + '' + + '

'; + + // regional functions + function cacentral1ButtonClickAction(zEvent) { + toggleRegion("ca-central-1"); + toggleButtonColor("cacentral1Button"); + }; + function eucentral1ButtonClickAction(zEvent) { + toggleRegion("eu-central-1"); + toggleButtonColor("eucentral1Button"); + }; + function euwest2ButtonClickAction(zEvent) { + toggleRegion("eu-west-2"); + toggleButtonColor("euwest2Button"); + }; + function uswest1ButtonClickAction(zEvent) { + toggleRegion("us-west-1"); + toggleButtonColor("uswest1Button"); + }; + function uswest2ButtonClickAction(zEvent) { + toggleRegion("us-west-2"); + toggleButtonColor("uswest2Button"); + }; + function uswest2CPButtonClickAction(zEvent) { + toggleRegion("us-west-2"); + toggleRegion("us-west-1"); + toggleRegion("us-east-1"); + toggleButtonColor("uswest2Button"); + }; + function useast1ButtonClickAction(zEvent) { + toggleRegion("us-east-1"); + toggleButtonColor("useast1Button"); + }; + function useast2ButtonClickAction(zEvent) { + toggleRegion("us-east-2"); + toggleButtonColor("useast2Button"); + }; + function apsouth1ButtonClickAction(zEvent) { + toggleRegion("ap-south-1"); + toggleButtonColor("apsouth1Button"); + }; + function apsoutheast2ButtonClickAction(zEvent) { + toggleRegion("ap-southeast-2"); + toggleButtonColor("apsoutheast2Button"); + }; + function apnortheast1ButtonClickAction(zEvent) { + toggleRegion("ap-northeast-1"); + toggleButtonColor("apnortheast1Button"); + }; + function euwest1ButtonClickAction(zEvent) { + toggleRegion("eu-west-1"); + toggleButtonColor("euwest1Button"); + }; + function ceButtonClickAction(zEvent) { + toggleButtonColor("ceButton"); + toggleCe(); + }; + function stage1ButtonClickAction(zEvent) { + toggleRegion("ca-central-1"); + toggleRegion("eu-central-1"); + toggleRegion("eu-west-2"); + toggleCe(); + toggleButtonColor("stage1Button"); + }; + function stage2ButtonClickAction(zEvent) { + toggleRegion("us-west-2"); + toggleRegion("us-west-1"); + toggleRegion("us-east-1"); + toggleRegion("us-east-2"); + toggleButtonColor("stage2Button"); + }; + function stage3amButtonClickAction(zEvent) { + toggleRegion("ap-south-1"); + toggleRegion("ap-southeast-2"); + toggleRegion("ap-northeast-1"); + toggleButtonColor("stage3amButton"); + }; + 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"); + }; + + // array of active buttons + 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); + document.getElementById("euwest2Button").addEventListener("click", euwest2ButtonClickAction, false); + document.getElementById("uswest1Button").addEventListener("click", uswest1ButtonClickAction, false); + document.getElementById("uswest2Button").addEventListener("click", uswest2ButtonClickAction, 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); + 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); + + // 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("sqlButton").addEventListener("click", sqlButtonClickAction, false); + document.getElementById("allComponentsButton").addEventListener("click", allComponentsButtonClickAction, false); + + // aux listeners + document.getElementById("resetButton").addEventListener("click", resetButtonClickAction, false); + document.getElementById("applyButton").addEventListener("click", applyButtonClickAction, false); + }; + function loadControlplanes() { + currentMode = "controlplane"; + console.log("Loading AWS controlplanes profile"); + var controlplaneHTML = '






'; + zNode.innerHTML = profilesHTML + '
' + controlplaneHTML + '
' + componentsHTML + auxHTML; + if (debugFlag == true) { + toggleButtonColor("debugButton"); + }; + + // array of active buttons + buttonArray = ["ce", "cacentral1", "eucentral1", "euwest2", "uswest2", "useast2", "apsouth1", + "apsoutheast2", "apnortheast1", "euwest1"]; + + // clear everything on profile load + reset(); + + // regional listeners + // document.getElementById("canadacentralButton").addEventListener("click", canadacentralCPButtonClickAction, false); + document.getElementById("cacentral1Button").addEventListener("click", cacentral1ButtonClickAction, false); + document.getElementById("eucentral1Button").addEventListener("click", eucentral1ButtonClickAction, false); + document.getElementById("euwest2Button").addEventListener("click", euwest2ButtonClickAction, false); + document.getElementById("uswest2Button").addEventListener("click", uswest2CPButtonClickAction, 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); + 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); + + // 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("sqlButton").addEventListener("click", sqlButtonClickAction, false); + document.getElementById("allComponentsButton").addEventListener("click", allComponentsButtonClickAction, false); + + // aux listeners + document.getElementById("resetButton").addEventListener("click", resetButtonClickAction, false); + 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"); + } + + // array of active buttons + buttonArray = ["stage1", "stage2", "stage3am", "stage3pm"]; + + // clear everything on profile load + reset(); + + // regional listeners + 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); + document.getElementById("dataplanesButton").addEventListener("click", dataplanesButtonClickAction, false); + document.getElementById("stagesButton").addEventListener("click", stagesButtonClickAction, false); + document.getElementById("shrinkButton").addEventListener("click", shrinkButtonClickAction, 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("sqlButton").addEventListener("click", sqlButtonClickAction, false); + document.getElementById("allComponentsButton").addEventListener("click", allComponentsButtonClickAction, false); + + // aux listeners + document.getElementById("resetButton").addEventListener("click", resetButtonClickAction, false); + document.getElementById("applyButton").addEventListener("click", applyButtonClickAction, false); + }; + function shrink() { + currentMode = ""; + zNode.innerHTML = profilesHTML + if (debugFlag == true) { + 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); + }; +}; + +// gcp status page controls +if (window.location.href.indexOf("60087ab5608daf0535dc8e23") > -1) { + // render initial HTML + var profilesHTML = '
' + + '' + + '
'; + zNode.innerHTML = profilesHTML; + if (debugFlag == true) { + 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); + }; + function loadStages() { + currentMode = "stage"; + console.log("Loading GCP stages profile"); + var stagesHTML = '
'; + + zNode.innerHTML = profilesHTML + '
' + stagesHTML + '
' + componentsHTML + auxHTML; + if (debugFlag == true) { + toggleButtonColor("debugButton"); + } + + // array of active buttons + buttonArray = ["stage1"]; + + // clear everything on profile load + reset(); + + // regional listeners + document.getElementById("stage1Button").addEventListener("click", stage1ButtonClickAction, false); + + // profile listeners + document.getElementById("controlplanesButton").addEventListener("click", controlplanesButtonClickAction, false); + document.getElementById("stagesButton").addEventListener("click", stagesButtonClickAction, false); + document.getElementById("shrinkButton").addEventListener("click", shrinkButtonClickAction, 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); + }; + function shrink() { + currentMode = ""; + zNode.innerHTML = profilesHTML + if (debugFlag == true) { + 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); + }; + +}; + +// profile functions +function controlplanesButtonClickAction(zEvent) { + loadControlplanes(); +}; +function dataplanesButtonClickAction(zEvent) { + loadDataplanes(); +}; +function stagesButtonClickAction(zEvent) { + loadStages(); +}; +function shrinkButtonClickAction(zEvent) { + shrink(); +}; +function debugButtonClickAction(zEvent) { + toggleDebug(); + toggleButtonColor("debugButton"); +}; + +// aux functions +function applyButtonClickAction(zEvent) { + apply(); +}; +function allComponentsButtonClickAction(zEvent) {$ + var enabledCount = 0 + for (i = 0; i < componentArray.length; i++) { + var component = componentArray[i]; + if (checkComponent(component) == true) { + enabledCount++; + } + } + if (enabledCount == componentArray.length) { + for (i = 0; i < componentArray.length; i++) { + var component = componentArray[i]; + var buttonName = component + "Button"; + deselectComponent(component); + clearButtonColor(buttonName); + } + } else { + for (i = 0; i < componentArray.length; i++) { + var component = componentArray[i]; + var buttonName = component + "Button"; + selectComponent(component); + setButtonColor(buttonName); + } + } +}; +function resetButtonClickAction(zEvent) { + reset(); +}; +function toggleComponent(component) { + if (checkComponent(component) == false) { + selectComponent(component); + } else { + 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 selectComponent(component) { + selectedComponents.set(component, true); + if (debugFlag == true) { + console.log(selectedComponents); + } +}; +function deselectComponent(component) { + selectedComponents.set(component, false); + if (debugFlag == true) { + console.log(selectedComponents); + }; +}; +function toggleRegion(region) { + if (checkRegion(region) == false) { + selectRegion(region); + } else { + deselectRegion(region); + } +}; +function selectRegion(region) { + selectedRegions.set(region, true); + if (debugFlag == true) { + console.log(selectedRegions); + }; +}; +function deselectRegion(region) { + selectedRegions.set(region, false); + if (debugFlag == true) { + console.log(selectedRegions); + }; +}; +function setButtonColor(buttonName) { + document.getElementById(buttonName).style.background = '#00FF00'; +}; +function clearButtonColor(buttonName) { + document.getElementById(buttonName).style.background = ''; +}; +function selectCheckbox(box) { + box.filter("A")[0].classList.add("checked"); + box.filter("INPUT")[0].checked = true; +}; +function deselectCheckbox(box) { + box.filter("A")[0].classList.remove("checked"); + box.filter("INPUT")[0].checked = false; +}; +function apply() { + for (i = 0; i < componentArray.length; i++) { + var component = componentArray[i]; + 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()`; + var checkbox = eval(checkboxStr); + if (checkRegion(region) == true && checkComponent(component) == true) { + selectCheckbox(checkbox); + } else { + deselectCheckbox(checkbox); + } + } + } + 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++) { + var component = componentArray[i]; + deselectComponent(component); + var buttonName = component + 'Button'; + clearButtonColor(buttonName); + }; + for (i = 0; i < buttonArray.length; i++) { + var region = buttonArray[i]; + var buttonName = region + 'Button'; + clearButtonColor(buttonName); + }; + for (i = 0; i < regionArray.length; i++) { + var region = regionArray[i]; + deselectRegion(region); + }; + if (typeof ceFlag != 'undefined') { + deselectCe(); + if (currentMode != 'stage') { + clearButtonColor("ceButton"); + }; + } + apply(); +}; +function checkDebug() { + var status = debugFlag; + return status; +}; +function toggleDebug() { + if (checkDebug() == false) { + enableDebug(); + } else { + disableDebug(); + }; +}; +function enableDebug() { + debugFlag = true; + console.log("DEBUG logging enabled"); +}; +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; +};