diff --git a/statusio-selector.js b/statusio-selector.js
index 25df393..6381d19 100644
--- a/statusio-selector.js
+++ b/statusio-selector.js
@@ -10,116 +10,179 @@
// @version 0.0.1
// ==/UserScript==
+// setup some variables
+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')");
-//console.log($("div.clearfix.prettycheckbox.labelright.blue").filter(":contains('West US 2')")
-//
-//
-
-function getAllMethods(obj = this) {
- return Object.keys(obj)
- .filter((key) => typeof obj[key] === 'function')
- .map((key) => obj[key]);
+var componentArray = ["api", "auth", "compute", "jobs", "odbc", "webapp"];
+var selectedComponents = new Map();
+var i;
+for (i = 0; i < componentArray.length; i++) {
+ selectedComponents.set(componentArray[i], 0);
}
-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 componentArray = []
-
-var testObj = apiGroup.find('*').filter(":contains('canadacentral')").filter("div.clearfix.prettycheckbox.labelright.blue").children().filter("A")[0]
-console.log(Object.keys(testObj))
-console.log(testObj)
-
-
- var zNode = document.createElement ('div');
- zNode.innerHTML = ''
- + ''
- + ' '
- ;
- zNode.setAttribute ('id', 'myContainer');
- document.body.appendChild (zNode);
-
-document.getElementById ("apiButton").addEventListener("click", apiButtonClickAction, false);
- //--- Activate the newly added button.
- document.getElementById ("canadaCentralButton").addEventListener (
- "click", canadaCentralButtonClickAction, false
- );
- document.getElementById ("jarvisButton").addEventListener (
- "click", jarvisButtonClickAction, false
- );
- document.getElementById ("ascButton").addEventListener (
- "click", ascButtonClickAction, false
- );
- document.getElementById ("kustoButton").addEventListener (
- "click", kustoButtonClickAction, false
- );
- document.getElementById ("printArrayButton").addEventListener (
- "click", printArrayClickAction, false
- );
-
-
-function checkBoxToggle(box) {
- if (box.getAttribute("class") == "checked") {
- box.setAttribute("class", "")
- } else {
- box.setAttribute("class", "checked")
+for (i = 0; i < componentArray.length; i++) {
+ var component = componentArray[i];
+ if (selectedComponents.get(component) == 0){
+ var groupName = component + "Group";
+ console.log(groupName);
+ var group = window[groupName];
+ console.log(group);
}
}
-function apiButtonClickAction (zEvent) {
- componentArray.push(apiGroup)
+
+// load actions
+var testObj = apiGroup.find('*').filter(":contains('canadacentral')").filter("div.clearfix.prettycheckbox.labelright.blue").children().filter("A")[0];
+console.log(Object.keys(testObj));
+console.log(testObj);
+
+// draw frame
+var zNode = document.createElement('div');
+zNode.innerHTML = '' +
+ '' +
+ '' +
+ ' ';
+zNode.setAttribute('id', 'myContainer');
+document.body.appendChild(zNode);
+
+// component buttons
+document.getElementById("apiButton").addEventListener(
+ "click", apiButtonClickAction, false
+);
+
+function apiButtonClickAction(zEvent) {
+ toggleComponent("api", "apiButton");
+ console.log(selectedComponents);
}
- function canadaCentralButtonClickAction (zEvent) {
-
- checkBoxToggle(testObj);
- }
- function jarvisButtonClickAction (zEvent) {
- window.open(jarvisURL, "_blank");
- }
- function ascButtonClickAction (zEvent) {
- window.open(ascURL, "_blank");
- }
- function kustoButtonClickAction (zEvent) {
- GM_setClipboard(template, "kusto queries");
- alert(`Kusto queries for ${cluster} have been copied to clipboard!`);
- }
- function printArrayClickAction (zEvent) {
- console.log(componentArray)
- }
+document.getElementById("authButton").addEventListener(
+ "click", authButtonClickAction, false
+);
- //--- Style our newly added elements using CSS.
- GM_addStyle ( multilineStr ( function () {/*!
- #myContainer {
- position: fixed;
- bottom: 0;
- 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 authButtonClickAction(zEvent) {
+ toggleComponent("auth", "authButton");
+ console.log(selectedComponents);
+}
+document.getElementById("computeButton").addEventListener(
+ "click", computeButtonClickAction, false
+);
- 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;
- }
+function computeButtonClickAction(zEvent) {
+ toggleComponent("compute", "computeButton");
+ console.log(selectedComponents);
+}
+document.getElementById("jobsButton").addEventListener(
+ "click", jobsButtonClickAction, false
+);
+
+function jobsButtonClickAction(zEvent) {
+ toggleComponent("jobs", "jobsButton");
+ console.log(selectedComponents);
+}
+document.getElementById("odbcButton").addEventListener(
+ "click", odbcButtonClickAction, false
+);
+
+function odbcButtonClickAction(zEvent) {
+ toggleComponent("odbc", "odbcButton");
+ console.log(selectedComponents);
+}
+document.getElementById("webappButton").addEventListener(
+ "click", webappButtonClickAction, false
+);
+
+function webappButtonClickAction(zEvent) {
+ toggleComponent("webapp", "webappButton");
+ console.log(selectedComponents);
+}
+document.getElementById("allComponentsButton").addEventListener(
+ "click", allComponentsButtonClickAction, false
+);
+
+function allComponentsButtonClickAction(zEvent) {
+ for (i = 0; i < componentArray.length; i++) {
+ var component = componentArray[i];
+ var buttonName = component + "Button";
+ toggleComponent(component, buttonName);
+ console.log(buttonName);
+ }
+}
+
+// regional buttons
+document.getElementById("canadaCentralButton").addEventListener(
+ "click", canadaCentralButtonClickAction, false
+);
+
+function canadaCentralButtonClickAction(zEvent) {
+
+ checkBoxToggle(testObj, "canadaCentralButton");
+}
+// aux buttons
+document.getElementById("printArrayButton").addEventListener(
+ "click", printArrayClickAction, false
+);
+
+function printArrayClickAction(zEvent) {
+ console.log(componentArray);
+}
+
+// aux functions
+function toggleComponent(component, buttonName) {
+ if (selectedComponents.get(component) == 0) {
+ selectedComponents.set(component, 1);
+ document.getElementById(buttonName).style.background = '#00FF00';
+ } else {
+ selectedComponents.set(component, 0);
+ document.getElementById(buttonName).style.background = '#FFFFFF';
+ }
+}
+
+function checkBoxToggle(box, buttonName) {
+ if (box.getAttribute("class") == "checked") {
+ box.setAttribute("class", "");
+ document.getElementById(buttonName).style.background = '#FFFFFF';
+ } else {
+ box.setAttribute("class", "checked");
+ document.getElementById(buttonName).style.background = '#00FF00';
+
+ }
+}
+
+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;
+}
+
+
+// frame CSS style
+GM_addStyle(multilineStr(function() {
+ /*!
+ #myContainer {
+ position: fixed;
+ bottom: 0;
+ 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;
+ }
+ */
+}));