// ==UserScript==
// @name Status.io Selector 2
// @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
// @require https://gist.github.com/raw/2625891/waitForKeyElements.js
// @grant GM_addStyle
// @grant GM_setClipboard
// @version 0.0.1
// ==/UserScript==
// draw frame
var zNode = document.createElement('div');
zNode.setAttribute('id', 'myContainer');
document.body.appendChild(zNode);
var auxHTML = '
Apply Selection Reset Form ';
if (window.location.href.indexOf("5d49ec10226b9e13cb6a422e") > -1) {
// render initial HTML
var profilesHTML = 'Controlplanes ' +
'Stages ' +
'Dataplanes Shrink ';
zNode.innerHTML = profilesHTML;
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);
// 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 = 'AllComponents API ' +
'Auth Compute Jobs ' +
'ODBC/JDBC Webapp ' +
'SQL ';
// 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() {
console.log("Loading Azure dataplanes profile");
var dataplaneHTML = 'Canada Central Canada East Central India South India West India Switzerland North Norway East West US West US 2 South Central US West Europe North Europe UK West UK South South Africa North UAE North Australia East Australia Central Australia Central 2 Australia Southeast Japan East Japan West Korea Central Southeast Asia East Asia Brazil South East US 2 East US Central US North Central US France Central China North 2 China East 2 US Gov Virginia US Gov Arizona ';
zNode.innerHTML = profilesHTML + ' ' + dataplaneHTML + ' ' + componentsHTML +
auxHTML;
// 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);
// 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() {
console.log("Loading Azure controlplanes profile");
var controlplaneHTML = 'Canada Central Central India Switzerland North Norway East West US West Europe UK West South Africa North UAE North Australia East Japan East Korea Central Southeast Asia Brazil South East US 2 France Central China North 2 China East 2 US Gov Virginia US Gov Arizona ';
zNode.innerHTML = profilesHTML + ' ' + controlplaneHTML + ' ' + componentsHTML + auxHTML;
// 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);
// 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() {
console.log("Loading Azure stages profile");
var stagesHTML = 'Stage-1 Stage-1.5 Stage-2 Stage-3AM Stage-3PM Govcloud Mooncake ';
zNode.innerHTML = profilesHTML + ' ' + stagesHTML + ' ' + componentsHTML + auxHTML;
// 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);
// 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() {
zNode.innerHTML = profilesHTML
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);
};
};
if (window.location.href.indexOf("5cf02dde58a00904bda41926") > -1) {
// render initial HTML
var profilesHTML = 'Controlplanes ' +
'Stages ' +
'Dataplanes Shrink ';
zNode.innerHTML = profilesHTML;
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);
// 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 = [];
// 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 = 'AllComponents API ' +
'Auth Compute Jobs ' +
'ODBC/JDBC Webapp ' +
'SQL ';
// regional functions
function uswest1ButtonClickAction(zEvent) {
toggleRegion("us-west-1");
toggleButtonColor("uswest1Button");
};
function canadacentralCPButtonClickAction(zEvent) {
toggleRegion("canadacentral");
toggleRegion("canadaeast");
toggleButtonColor("canadacentralButton");
};
// profile management functions
function loadDataplanes() {
console.log("Loading AWS dataplanes profile");
var dataplaneHTML = 'CE ca-central-1 eu-central-1 eu-west-2 us-west-2 us-west-1 us-east-1 us-east-2 ap-south-1 ap-southeast-2 ap-northeast-1 eu-west-1 ';
zNode.innerHTML = profilesHTML + ' ' + dataplaneHTML + ' ' + componentsHTML +
auxHTML;
// array of active buttons
buttonArray = ["CE", "ca-central-1", "eu-central-1", "eu-west-2", "us-west-2", "us-east-1", "us-east-2", "ap-south-1",
"ap-southeast-2", "ap-northeast-1", "eu-west-1"];
//reset();
// regional listeners
document.getElementById("uswest1Button").addEventListener("click", uswest1ButtonClickAction, 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 loadControlplanes() {
console.log("Loading AWS controlplanes profile");
var controlplaneHTML = 'CE ca-central-1 eu-central-1 eu-west-2 us-west-2 us-east-1 us-east-2 ap-south-1 ap-southeast-2 ap-northeast-1 eu-west-1 ';
zNode.innerHTML = profilesHTML + ' ' + controlplaneHTML + ' ' + componentsHTML + auxHTML;
// 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);
// 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 loadStages() {
console.log("Loading AWS stages profile");
var stagesHTML = 'Stage-1 Stage-2 Stage-3 AM Stage-3 PM ';
zNode.innerHTML = profilesHTML + ' ' + stagesHTML + ' ' + componentsHTML + auxHTML;
// array of active buttons
buttonArray = ["stage1", "stage1point5", "stage2", "stage3am", "stage3pm", "stagegovcloud", "stagemooncake"];
// reset();
// regional listeners
//document.getElementById("stage1Button").addEventListener("click", stage1ButtonClickAction, 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() {
zNode.innerHTML = profilesHTML
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);
};
};
if (window.location.href.indexOf("60087ab5608daf0535dc8e23") > -1) {
// render initial HTML
var profilesHTML = 'Controlplanes ' +
'Stages ' +
'Dataplanes Shrink ';
zNode.innerHTML = profilesHTML;
};
// profile functions
function controlplanesButtonClickAction(zEvent) {
loadControlplanes();
};
function dataplanesButtonClickAction(zEvent) {
loadDataplanes();
};
function stagesButtonClickAction(zEvent) {
loadStages();
};
function shrinkButtonClickAction(zEvent) {
shrink();
};
// 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);
console.log(selectedComponents);
};
function deselectComponent(component) {
selectedComponents.set(component, false);
console.log(selectedComponents);
};
function toggleRegion(region) {
if (checkRegion(region) == false) {
selectRegion(region);
} else {
deselectRegion(region);
}
};
function selectRegion(region) {
selectedRegions.set(region, true);
console.log(selectedRegions);
};
function deselectRegion(region) {
selectedRegions.set(region, false);
console.log(selectedRegions);
};
function setButtonColor(buttonName) {
document.getElementById(buttonName).style.background = '#00FF00';
};
function clearButtonColor(buttonName) {
document.getElementById(buttonName).style.background = '';
};
function selectCheckbox(box) {
box.setAttribute("class", "checked");
};
function deselectCheckbox(box) {
box.setAttribute("class", "");
};
function 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().filter("A")[0]`;
var checkbox = eval(checkboxStr);
if (checkRegion(region) == true && checkComponent(component) == 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);
};
apply();
};