diff options
Diffstat (limited to 'client/client-monitoring/src/main/resources/webapp/js/ApexUtils.js')
-rw-r--r-- | client/client-monitoring/src/main/resources/webapp/js/ApexUtils.js | 479 |
1 files changed, 236 insertions, 243 deletions
diff --git a/client/client-monitoring/src/main/resources/webapp/js/ApexUtils.js b/client/client-monitoring/src/main/resources/webapp/js/ApexUtils.js index 732fbfd25..b48c8cbd1 100644 --- a/client/client-monitoring/src/main/resources/webapp/js/ApexUtils.js +++ b/client/client-monitoring/src/main/resources/webapp/js/ApexUtils.js @@ -22,311 +22,304 @@ * Crate a dialog with input, attach it to a given parent and show an optional message */ function apexDialogForm_activate(formParent, message) { - apexUtils_removeElement("apexDialogDiv"); + apexUtils_removeElement("apexDialogDiv"); - var contentelement = document.createElement("apexDialogDiv"); - var formDiv = document.createElement("div"); - var backgroundDiv = document.createElement("div"); - backgroundDiv.setAttribute("id", "apexDialogDivBackground"); - backgroundDiv.setAttribute("class", "apexDialogDivBackground"); + var contentelement = document.createElement("apexDialogDiv"); + var formDiv = document.createElement("div"); + var backgroundDiv = document.createElement("div"); + backgroundDiv.setAttribute("id", "apexDialogDivBackground"); + backgroundDiv.setAttribute("class", "apexDialogDivBackground"); - backgroundDiv.appendChild(formDiv); - contentelement.appendChild(backgroundDiv); - formParent.appendChild(contentelement); + backgroundDiv.appendChild(formDiv); + contentelement.appendChild(backgroundDiv); + formParent.appendChild(contentelement); - formDiv.setAttribute("id", "apexDialogDiv"); - formDiv.setAttribute("class", "apexDialogDiv"); + formDiv.setAttribute("id", "apexDialogDiv"); + formDiv.setAttribute("class", "apexDialogDiv"); - var headingSpan = document.createElement("span"); - formDiv.appendChild(headingSpan); + var headingSpan = document.createElement("span"); + formDiv.appendChild(headingSpan); - headingSpan.setAttribute("class", "headingSpan"); - headingSpan.innerHTML = "Apex Engine Configuration"; + headingSpan.setAttribute("class", "headingSpan"); + headingSpan.innerHTML = "Apex Engine Configuration"; - var form = document.createElement("apexDialog"); - formDiv.appendChild(form); + var form = document.createElement("apexDialog"); + formDiv.appendChild(form); - form.setAttribute("id", "apexDialog"); - form.setAttribute("class", "form-style-1"); - form.setAttribute("method", "post"); + form.setAttribute("id", "apexDialog"); + form.setAttribute("class", "form-style-1"); + form.setAttribute("method", "post"); - if (message) { - var messageLI = document.createElement("li"); - messageLI.setAttribute("class", "dialogMessage"); - messageLI.innerHTML = message; - form.appendChild(messageLI); - } + if (message) { + var messageLI = document.createElement("li"); + messageLI.setAttribute("class", "dialogMessage"); + messageLI.innerHTML = message; + form.appendChild(messageLI); + } - var urlLI = document.createElement("li"); - form.appendChild(urlLI); + var urlLI = document.createElement("li"); + form.appendChild(urlLI); - var urlLabel = document.createElement("label"); - urlLI.appendChild(urlLabel); + var urlLabel = document.createElement("label"); + urlLI.appendChild(urlLabel); - urlLabel.setAttribute("for", "apexDialogUrlInput"); - urlLabel.innerHTML = "Apex Engine rest URL:"; + urlLabel.setAttribute("for", "apexDialogUrlInput"); + urlLabel.innerHTML = "Apex Engine rest URL:"; - var urlLabelSpan = document.createElement("span"); - urlLabel.appendChild(urlLabelSpan); + var urlLabelSpan = document.createElement("span"); + urlLabel.appendChild(urlLabelSpan); - urlLabelSpan.setAttribute("class", "required"); - urlLabelSpan.innerHTML = "*"; + urlLabelSpan.setAttribute("class", "required"); + urlLabelSpan.innerHTML = "*"; - var engineUrl = localStorage.getItem("apex-monitor-services_old"); + var engineUrl = localStorage.getItem("apex-monitor-services_old"); - var urlInput = document.createElement("input"); - urlInput.setAttribute("id", "services_url_input"); - urlInput.setAttribute("placeholder", "localhost:12345"); - urlInput.value = (engineUrl && engineUrl !== "null") ? JSON - .parse(engineUrl).hostname - + ":" + JSON.parse(engineUrl).port : ""; - urlLI.appendChild(urlInput); + var urlInput = document.createElement("input"); + urlInput.setAttribute("id", "services_url_input"); + urlInput.setAttribute("placeholder", "localhost:12345"); + urlInput.value = (engineUrl && engineUrl !== "null") ? JSON.parse(engineUrl).hostname + ":" + + JSON.parse(engineUrl).port : ""; + urlLI.appendChild(urlInput); - var inputLI = document.createElement("li"); - form.appendChild(inputLI); + var inputLI = document.createElement("li"); + form.appendChild(inputLI); - var submitInput = document.createElement("input"); - submitInput.setAttribute("id", "submit"); - submitInput.setAttribute("class", "button ebBtn"); - submitInput.setAttribute("type", "submit"); - submitInput.setAttribute("value", "Submit"); - submitInput.onclick = apexDialogForm_submitPressed; - inputLI.appendChild(submitInput); + var submitInput = document.createElement("input"); + submitInput.setAttribute("id", "submit"); + submitInput.setAttribute("class", "button ebBtn"); + submitInput.setAttribute("type", "submit"); + submitInput.setAttribute("value", "Submit"); + submitInput.onclick = apexDialogForm_submitPressed; + inputLI.appendChild(submitInput); - // Enter key press triggers submit - $(urlInput).keyup(function(event) { - if (event.keyCode == 13) { - $(submitInput).click(); - } - }); + // Enter key press triggers submit + $(urlInput).keyup(function(event) { + if (event.keyCode == 13) { + $(submitInput).click(); + } + }); - urlInput.focus(); + urlInput.focus(); } /* * Create a dialog for displaying text */ function apexTextDialog_activate(formParent, message, title) { - apexUtils_removeElement("apexDialogDiv"); - - var contentelement = document.createElement("div"); - contentelement.setAttribute("id", "apexDialogDiv") - var formDiv = document.createElement("div"); - var backgroundDiv = document.createElement("div"); - backgroundDiv.setAttribute("id", "apexDialogDivBackground"); - backgroundDiv.setAttribute("class", "apexDialogDivBackground"); - - backgroundDiv.appendChild(formDiv); - contentelement.appendChild(backgroundDiv); - formParent.appendChild(contentelement); - - formDiv.setAttribute("id", "apexErrorDialogDiv"); - formDiv.setAttribute("class", "apexDialogDiv apexErrorDialogDiv"); - - var headingSpan = document.createElement("span"); - formDiv.appendChild(headingSpan); - - headingSpan.setAttribute("class", "headingSpan"); - headingSpan.innerHTML = title; - - var form = document.createElement("div"); - formDiv.appendChild(form); - - form.setAttribute("id", "apexDialog"); - form.setAttribute("class", "form-style-1"); - form.setAttribute("method", "post"); - - if (message) { - var messageLI = document.createElement("li"); - messageLI.setAttribute("class", "dialogMessage"); - messageLI.innerHTML = message; - form.appendChild(messageLI); - } - - var inputLI = document.createElement("li"); - form.appendChild(inputLI); - - var cancelInput = document.createElement("input"); - cancelInput.setAttribute("class", "button ebBtn"); - cancelInput.setAttribute("type", "submit"); - cancelInput.setAttribute("value", "Close"); - cancelInput.onclick = newModelForm_cancelPressed; - form.appendChild(cancelInput); + apexUtils_removeElement("apexDialogDiv"); + + var contentelement = document.createElement("div"); + contentelement.setAttribute("id", "apexDialogDiv") + var formDiv = document.createElement("div"); + var backgroundDiv = document.createElement("div"); + backgroundDiv.setAttribute("id", "apexDialogDivBackground"); + backgroundDiv.setAttribute("class", "apexDialogDivBackground"); + + backgroundDiv.appendChild(formDiv); + contentelement.appendChild(backgroundDiv); + formParent.appendChild(contentelement); + + formDiv.setAttribute("id", "apexErrorDialogDiv"); + formDiv.setAttribute("class", "apexDialogDiv apexErrorDialogDiv"); + + var headingSpan = document.createElement("span"); + formDiv.appendChild(headingSpan); + + headingSpan.setAttribute("class", "headingSpan"); + headingSpan.innerHTML = title; + + var form = document.createElement("div"); + formDiv.appendChild(form); + + form.setAttribute("id", "apexDialog"); + form.setAttribute("class", "form-style-1"); + form.setAttribute("method", "post"); + + if (message) { + var messageLI = document.createElement("li"); + messageLI.setAttribute("class", "dialogMessage"); + messageLI.innerHTML = message; + form.appendChild(messageLI); + } + + var inputLI = document.createElement("li"); + form.appendChild(inputLI); + + var cancelInput = document.createElement("input"); + cancelInput.setAttribute("class", "button ebBtn"); + cancelInput.setAttribute("type", "submit"); + cancelInput.setAttribute("value", "Close"); + cancelInput.onclick = newModelForm_cancelPressed; + form.appendChild(cancelInput); } /* * Create a Success dialog */ function apexSuccessDialog_activate(formParent, message) { - apexTextDialog_activate(formParent, message, "Success"); + apexTextDialog_activate(formParent, message, "Success"); } /* * Create an Error dialog */ function apexErrorDialog_activate(formParent, message) { - apexTextDialog_activate(formParent, message, "Error"); + apexTextDialog_activate(formParent, message, "Error"); } /* * Dialog cancel callback */ function newModelForm_cancelPressed() { - apexUtils_removeElement("apexDialogDivBackground"); + apexUtils_removeElement("apexDialogDivBackground"); } /* * Dialog submit callback */ function apexDialogForm_submitPressed() { - var url = $('#services_url_input').val(); - if (url && url.length > 0) { - var engineConfig = { - hostname : url.split(":")[0], - port : url.split(":")[1] - }; - localStorage.setItem("apex-monitor-services_old", JSON - .stringify(engineConfig)); - localStorage.setItem("apex-monitor-services", JSON - .stringify(engineConfig)); - apexUtils_removeElement("apexDialogDivBackground"); - getEngineURL(); - } + var url = $('#services_url_input').val(); + if (url && url.length > 0) { + var engineConfig = { + hostname : url.split(":")[0], + port : url.split(":")[1] + }; + localStorage.setItem("apex-monitor-services_old", JSON.stringify(engineConfig)); + localStorage.setItem("apex-monitor-services", JSON.stringify(engineConfig)); + apexUtils_removeElement("apexDialogDivBackground"); + getEngineURL(); + } } /* * Remove an element from the page */ function apexUtils_removeElement(elementname) { - var element = document.getElementById(elementname); - if (element != null) { - element.parentNode.removeChild(element); - } + var element = document.getElementById(elementname); + if (element != null) { + element.parentNode.removeChild(element); + } } /* * Compare two objects */ function deepCompare() { - var i, l, leftChain, rightChain; - - function compare2Objects(x, y) { - var p; - - // remember that NaN === NaN returns false - // and isNaN(undefined) returns true - if (isNaN(x) && isNaN(y) && typeof x === 'number' - && typeof y === 'number') { - return true; - } - - // Compare primitives and functions. - // Check if both arguments link to the same object. - // Especially useful on the step where we compare prototypes - if (x === y) { - return true; - } - - // Works in case when functions are created in constructor. - // Comparing dates is a common scenario. Another built-ins? - // We can even handle functions passed across iframes - if ((typeof x === 'function' && typeof y === 'function') - || (x instanceof Date && y instanceof Date) - || (x instanceof RegExp && y instanceof RegExp) - || (x instanceof String && y instanceof String) - || (x instanceof Number && y instanceof Number)) { - return x.toString() === y.toString(); - } - - // At last checking prototypes as good as we can - if (!(x instanceof Object && y instanceof Object)) { - return false; - } - - if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) { - return false; - } - - if (x.constructor !== y.constructor) { - return false; - } - - if (x.prototype !== y.prototype) { - return false; - } - - // Check for infinitive linking loops - if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1) { - return false; - } - - // Quick checking of one object being a subset of another. - // todo: cache the structure of arguments[0] for performance - for (p in y) { - if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) { - return false; - } else if (typeof y[p] !== typeof x[p]) { - return false; - } - } - - for (p in x) { - if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) { - return false; - } else if (typeof y[p] !== typeof x[p]) { - return false; - } - - switch (typeof (x[p])) { - case 'object': - case 'function': - - leftChain.push(x); - rightChain.push(y); - - if (!compare2Objects(x[p], y[p])) { - return false; - } - - leftChain.pop(); - rightChain.pop(); - break; - - default: - if (x[p] !== y[p]) { - return false; - } - break; - } - } - - return true; - } - - if (arguments.length < 1) { - return true; - } - - for (i = 1, l = arguments.length; i < l; i++) { - - leftChain = []; // Todo: this can be cached - rightChain = []; - - if (!compare2Objects(arguments[0], arguments[i])) { - return false; - } - } - - return true; + var i, l, leftChain, rightChain; + + function compare2Objects(x, y) { + var p; + + // remember that NaN === NaN returns false + // and isNaN(undefined) returns true + if (isNaN(x) && isNaN(y) && typeof x === 'number' && typeof y === 'number') { + return true; + } + + // Compare primitives and functions. + // Check if both arguments link to the same object. + // Especially useful on the step where we compare prototypes + if (x === y) { + return true; + } + + // Works in case when functions are created in constructor. + // Comparing dates is a common scenario. Another built-ins? + // We can even handle functions passed across iframes + if ((typeof x === 'function' && typeof y === 'function') || (x instanceof Date && y instanceof Date) + || (x instanceof RegExp && y instanceof RegExp) || (x instanceof String && y instanceof String) + || (x instanceof Number && y instanceof Number)) { + return x.toString() === y.toString(); + } + + // At last checking prototypes as good as we can + if (!(x instanceof Object && y instanceof Object)) { + return false; + } + + if (x.isPrototypeOf(y) || y.isPrototypeOf(x)) { + return false; + } + + if (x.constructor !== y.constructor) { + return false; + } + + if (x.prototype !== y.prototype) { + return false; + } + + // Check for infinitive linking loops + if (leftChain.indexOf(x) > -1 || rightChain.indexOf(y) > -1) { + return false; + } + + // Quick checking of one object being a subset of another. + // todo: cache the structure of arguments[0] for performance + for (p in y) { + if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) { + return false; + } else if (typeof y[p] !== typeof x[p]) { + return false; + } + } + + for (p in x) { + if (y.hasOwnProperty(p) !== x.hasOwnProperty(p)) { + return false; + } else if (typeof y[p] !== typeof x[p]) { + return false; + } + + switch (typeof (x[p])) { + case 'object': + case 'function': + + leftChain.push(x); + rightChain.push(y); + + if (!compare2Objects(x[p], y[p])) { + return false; + } + + leftChain.pop(); + rightChain.pop(); + break; + + default: + if (x[p] !== y[p]) { + return false; + } + break; + } + } + + return true; + } + + if (arguments.length < 1) { + return true; + } + + for (i = 1, l = arguments.length; i < l; i++) { + + leftChain = []; // Todo: this can be cached + rightChain = []; + + if (!compare2Objects(arguments[0], arguments[i])) { + return false; + } + } + + return true; } function getHomepageURL() { - var homepageURL = location.protocol - + "//" - + window.location.hostname - + (location.port ? ':' + location.port : '') - + (location.pathname.endsWith("/monitoring/") ? location.pathname - .substring(0, location.pathname.indexOf("monitoring/")) - : location.pathname); - location.href = homepageURL; + var homepageURL = location.protocol + + "//" + + window.location.hostname + + (location.port ? ':' + location.port : '') + + (location.pathname.endsWith("/monitoring/") ? location.pathname.substring(0, location.pathname + .indexOf("monitoring/")) : location.pathname); + location.href = homepageURL; }
\ No newline at end of file |