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;
+};