// ==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
// @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 = '
';
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;
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 = '