diff --git a/pandora_console/include/javascript/pandora_visual_console.js b/pandora_console/include/javascript/pandora_visual_console.js
index d5346b8eeb..d6d421048d 100755
--- a/pandora_console/include/javascript/pandora_visual_console.js
+++ b/pandora_console/include/javascript/pandora_visual_console.js
@@ -814,140 +814,6 @@ function createVisualConsoleItem(baseUrl, vcId, data, callback) {
};
}
-/**
- * Fetch a Visual Console's structure and its items.
- * @param {string} baseUrl Base URL to build the API path.
- * @param {number} vcId Identifier of the Visual Console.
- * @param {number} vcItemId Identifier of the Visual Console's item.
- * @param {Object} data Data we want to save.
- * @param {function} callback Function to be executed on request success or fail.
- * @return {Object} Cancellable. Object which include and .abort([statusText]) function.
- */
-// eslint-disable-next-line no-unused-vars
-function autocompleteAgentsVisualConsole(baseUrl, vcId, data, callback) {
- // var apiPath = baseUrl + "/include/rest-api";
- var apiPath = baseUrl + "/ajax.php";
- var jqXHR = null;
-
- // Cancel the ajax requests.
- var abort = function(textStatus) {
- if (textStatus == null) textStatus = "abort";
-
- // -- XMLHttpRequest.readyState --
- // Value State Description
- // 0 UNSENT Client has been created. open() not called yet.
- // 4 DONE The operation is complete.
-
- if (jqXHR.readyState !== 0 && jqXHR.readyState !== 4)
- jqXHR.abort(textStatus);
- };
-
- // Failed request handler.
- var handleFail = function(jqXHR, textStatus, errorThrown) {
- abort();
- // Manually aborted or not.
- if (textStatus === "abort") {
- callback();
- } else {
- var error = new Error(errorThrown);
- error.request = jqXHR;
- callback(error);
- }
- };
-
- // Function which handle success case.
- var handleSuccess = function(data) {
- callback(null, data);
- };
-
- // Visual Console container request.
- jqXHR = jQuery
- .post(
- apiPath,
- {
- page: "include/rest-api/index",
- autocompleteAgentsVisualConsole: 1,
- visualConsoleId: vcId,
- data: data
- },
- "json"
- )
- .done(handleSuccess)
- .fail(handleFail);
-
- // Abortable.
- return {
- abort: abort
- };
-}
-
-/**
- * Fetch a Visual Console's structure and its items.
- * @param {string} baseUrl Base URL to build the API path.
- * @param {number} vcId Identifier of the Visual Console.
- * @param {number} vcItemId Identifier of the Visual Console's item.
- * @param {Object} data Data we want to save.
- * @param {function} callback Function to be executed on request success or fail.
- * @return {Object} Cancellable. Object which include and .abort([statusText]) function.
- */
-// eslint-disable-next-line no-unused-vars
-function autocompleteModuleVisualConsole(baseUrl, vcId, data, callback) {
- // var apiPath = baseUrl + "/include/rest-api";
- var apiPath = baseUrl + "/ajax.php";
- var jqXHR = null;
-
- // Cancel the ajax requests.
- var abort = function(textStatus) {
- if (textStatus == null) textStatus = "abort";
-
- // -- XMLHttpRequest.readyState --
- // Value State Description
- // 0 UNSENT Client has been created. open() not called yet.
- // 4 DONE The operation is complete.
-
- if (jqXHR.readyState !== 0 && jqXHR.readyState !== 4)
- jqXHR.abort(textStatus);
- };
-
- // Failed request handler.
- var handleFail = function(jqXHR, textStatus, errorThrown) {
- abort();
- // Manually aborted or not.
- if (textStatus === "abort") {
- callback();
- } else {
- var error = new Error(errorThrown);
- error.request = jqXHR;
- callback(error);
- }
- };
-
- // Function which handle success case.
- var handleSuccess = function(data) {
- callback(null, data);
- };
-
- // Visual Console container request.
- jqXHR = jQuery
- .post(
- apiPath,
- {
- page: "include/rest-api/index",
- autocompleteModuleVisualConsole: 1,
- visualConsoleId: vcId,
- data: data
- },
- "json"
- )
- .done(handleSuccess)
- .fail(handleFail);
-
- // Abortable.
- return {
- abort: abort
- };
-}
-
/**
* Fetch a Visual Console's structure and its items.
* @param {string} baseUrl Base URL to build the API path.
@@ -1148,195 +1014,6 @@ function removeVisualConsoleItem(baseUrl, vcId, vcItemId, callback) {
};
}
-/**
- * Fetch groups access user.
- * @param {string} baseUrl Base URL to build the API path.
- * @param {number} vcId Identifier of the Visual Console.
- * @param {function} callback Function to be executed on request success or fail.
- * @return {Object} Cancellable. Object which include and .abort([statusText]) function.
- */
-// eslint-disable-next-line no-unused-vars
-function getGroupsVisualConsoleItem(baseUrl, vcId, callback) {
- var apiPath = baseUrl + "/ajax.php";
- var jqXHR = null;
-
- // Cancel the ajax requests.
- var abort = function(textStatus) {
- if (textStatus == null) textStatus = "abort";
-
- // -- XMLHttpRequest.readyState --
- // Value State Description
- // 0 UNSENT Client has been created. open() not called yet.
- // 4 DONE The operation is complete.
-
- if (jqXHR.readyState !== 0 && jqXHR.readyState !== 4)
- jqXHR.abort(textStatus);
- };
-
- // Failed request handler.
- var handleFail = function(jqXHR, textStatus, errorThrown) {
- abort();
- // Manually aborted or not.
- if (textStatus === "abort") {
- callback();
- } else {
- var error = new Error(errorThrown);
- error.request = jqXHR;
- callback(error);
- }
- };
-
- // Function which handle success case.
- var handleSuccess = function(data) {
- callback(null, data);
- };
-
- // Visual Console container request.
- jqXHR = jQuery
- .get(
- apiPath,
- {
- page: "include/rest-api/index",
- getGroupsVisualConsoleItem: 1,
- visualConsoleId: vcId
- },
- "json"
- )
- .done(handleSuccess)
- .fail(handleFail);
-
- // Abortable.
- return {
- abort: abort
- };
-}
-
-/**
- * Fetch groups access user.
- * @param {string} baseUrl Base URL to build the API path.
- * @param {number} vcId Identifier of the Visual Console.
- * @param {function} callback Function to be executed on request success or fail.
- * @return {Object} Cancellable. Object which include and .abort([statusText]) function.
- */
-// eslint-disable-next-line no-unused-vars
-function getCustomGraphVisualConsoleItem(baseUrl, vcId, callback) {
- var apiPath = baseUrl + "/ajax.php";
- var jqXHR = null;
-
- // Cancel the ajax requests.
- var abort = function(textStatus) {
- if (textStatus == null) textStatus = "abort";
-
- // -- XMLHttpRequest.readyState --
- // Value State Description
- // 0 UNSENT Client has been created. open() not called yet.
- // 4 DONE The operation is complete.
-
- if (jqXHR.readyState !== 0 && jqXHR.readyState !== 4)
- jqXHR.abort(textStatus);
- };
-
- // Failed request handler.
- var handleFail = function(jqXHR, textStatus, errorThrown) {
- abort();
- // Manually aborted or not.
- if (textStatus === "abort") {
- callback();
- } else {
- var error = new Error(errorThrown);
- error.request = jqXHR;
- callback(error);
- }
- };
-
- // Function which handle success case.
- var handleSuccess = function(data) {
- callback(null, data);
- };
-
- // Visual Console container request.
- jqXHR = jQuery
- .get(
- apiPath,
- {
- page: "include/rest-api/index",
- getCustomGraphVisualConsoleItem: 1,
- visualConsoleId: vcId
- },
- "json"
- )
- .done(handleSuccess)
- .fail(handleFail);
-
- // Abortable.
- return {
- abort: abort
- };
-}
-
-/**
- * Fetch groups access user.
- * @param {string} baseUrl Base URL to build the API path.
- * @param {number} vcId Identifier of the Visual Console.
- * @param {function} callback Function to be executed on request success or fail.
- * @return {Object} Cancellable. Object which include and .abort([statusText]) function.
- */
-// eslint-disable-next-line no-unused-vars
-function getAllVisualConsole(baseUrl, vcId, callback) {
- var apiPath = baseUrl + "/ajax.php";
- var jqXHR = null;
-
- // Cancel the ajax requests.
- var abort = function(textStatus) {
- if (textStatus == null) textStatus = "abort";
-
- // -- XMLHttpRequest.readyState --
- // Value State Description
- // 0 UNSENT Client has been created. open() not called yet.
- // 4 DONE The operation is complete.
-
- if (jqXHR.readyState !== 0 && jqXHR.readyState !== 4)
- jqXHR.abort(textStatus);
- };
-
- // Failed request handler.
- var handleFail = function(jqXHR, textStatus, errorThrown) {
- abort();
- // Manually aborted or not.
- if (textStatus === "abort") {
- callback();
- } else {
- var error = new Error(errorThrown);
- error.request = jqXHR;
- callback(error);
- }
- };
-
- // Function which handle success case.
- var handleSuccess = function(data) {
- callback(null, data);
- };
-
- // Visual Console container request.
- jqXHR = jQuery
- .get(
- apiPath,
- {
- page: "include/rest-api/index",
- getAllVisualConsole: 1,
- visualConsoleId: vcId
- },
- "json"
- )
- .done(handleSuccess)
- .fail(handleFail);
-
- // Abortable.
- return {
- abort: abort
- };
-}
-
/**
* Copy an item.
* @param {string} baseUrl Base URL to build the API path.
@@ -1580,326 +1257,6 @@ function createOrUpdateVisualConsoleItem(
var done = e.done;
switch (identifier) {
- case "parent":
- var data = visualConsole.elements
- .filter(function(item) {
- return item.props.id !== params.id;
- })
- .map(function(item) {
- return {
- value: item.props.id,
- text: VisualConsole.itemDescriptiveName(item)
- };
- });
-
- done(null, data);
- break;
- case "acl-group":
- asyncTaskManager
- .add(identifier + "-" + params.id, function(doneAsyncTask) {
- var abortable = getGroupsVisualConsoleItem(
- baseUrl,
- visualConsole.props.id,
- function(error, data) {
- if (error || !data) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return;
- }
-
- if (typeof data === "string") {
- try {
- data = JSON.parse(data);
- } catch (error) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return; // Stop task execution.
- }
- }
-
- done(null, data);
- doneAsyncTask();
- }
- );
-
- return {
- cancel: function() {
- abortable.abort();
- }
- };
- })
- .init();
- break;
- case "custom-graph-list":
- asyncTaskManager
- .add(identifier + "-" + params.id, function(doneAsyncTask) {
- var abortable = getCustomGraphVisualConsoleItem(
- baseUrl,
- visualConsole.props.id,
- function(error, data) {
- if (error || !data) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return;
- }
-
- if (typeof data === "string") {
- try {
- data = JSON.parse(data);
- } catch (error) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return; // Stop task execution.
- }
- }
-
- done(null, data);
- doneAsyncTask();
- }
- );
-
- return {
- cancel: function() {
- abortable.abort();
- }
- };
- })
- .init();
- break;
- case "link-console":
- asyncTaskManager
- .add(identifier + "-" + params.id, function(doneAsyncTask) {
- var abortable = getAllVisualConsole(
- baseUrl,
- visualConsole.props.id,
- function(error, data) {
- if (error || !data) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return;
- }
-
- if (typeof data === "string") {
- try {
- data = JSON.parse(data);
- } catch (error) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return; // Stop task execution.
- }
- }
-
- done(null, data);
- doneAsyncTask();
- }
- );
-
- return {
- cancel: function() {
- abortable.abort();
- }
- };
- })
- .init();
- break;
- case "image-console":
- asyncTaskManager
- .add(identifier + "-" + params.id, function(doneAsyncTask) {
- var abortable = getImagesVisualConsole(
- baseUrl,
- visualConsole.props.id,
- function(error, data) {
- if (error || !data) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return;
- }
-
- if (typeof data === "string") {
- try {
- data = JSON.parse(data);
- } catch (error) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return; // Stop task execution.
- }
- }
-
- done(null, data);
- doneAsyncTask();
- }
- );
-
- return {
- cancel: function() {
- abortable.abort();
- }
- };
- })
- .init();
- break;
- case "autocomplete-agent":
- asyncTaskManager
- .add(identifier + "-" + params.id, function(doneAsyncTask) {
- var dataObject = {
- value: params.value,
- type: params.type
- };
- var abortable = autocompleteAgentsVisualConsole(
- baseUrl,
- visualConsole.props.id,
- dataObject,
- function(error, data) {
- if (error || !data) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return;
- }
-
- if (typeof data === "string") {
- try {
- data = JSON.parse(data);
- } catch (error) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return; // Stop task execution.
- }
- }
-
- done(null, data);
- doneAsyncTask();
- }
- );
-
- return {
- cancel: function() {
- abortable.abort();
- }
- };
- })
- .init();
- break;
- case "autocomplete-module":
- asyncTaskManager
- .add(identifier + "-" + params.id, function(doneAsyncTask) {
- var abortable = autocompleteModuleVisualConsole(
- baseUrl,
- visualConsole.props.id,
- params,
- function(error, data) {
- if (error || !data) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return;
- }
-
- if (typeof data === "string") {
- try {
- data = JSON.parse(data);
- } catch (error) {
- console.log(
- "[ERROR]",
- "[VISUAL-CONSOLE-CLIENT]",
- "[API]",
- error ? error.message : "Invalid response"
- );
-
- done(error);
- doneAsyncTask();
- return; // Stop task execution.
- }
- }
-
- done(null, data);
- doneAsyncTask();
- }
- );
-
- return {
- cancel: function() {
- abortable.abort();
- }
- };
- })
- .init();
- break;
case "service-list":
asyncTaskManager
.add(identifier + "-" + params.id, function(doneAsyncTask) {
@@ -2098,139 +1455,6 @@ function createOrUpdateVisualConsoleItem(
console.log("Form submit", e.data);
$formElement.dialog("close");
});
-
- $formElement.dialog({
- title: formContainer.title,
- modal: true,
- resizable: false,
- draggable: true,
- height: 600,
- width: 700,
- open: function() {
- tinymce.init({
- selector: "#tinyMCE_editor",
- theme: "advanced",
- content_css: baseUrl + "include/styles/pandora.css",
- theme_advanced_font_sizes:
- "4pt=.visual_font_size_4pt, " +
- "6pt=.visual_font_size_6pt, " +
- "8pt=.visual_font_size_8pt, " +
- "10pt=.visual_font_size_10pt, " +
- "12pt=.visual_font_size_12pt, " +
- "14pt=.visual_font_size_14pt, " +
- "18pt=.visual_font_size_18pt, " +
- "24pt=.visual_font_size_24pt, " +
- "28pt=.visual_font_size_28pt, " +
- "36pt=.visual_font_size_36pt, " +
- "48pt=.visual_font_size_48pt, " +
- "60pt=.visual_font_size_60pt, " +
- "72pt=.visual_font_size_72pt, " +
- "84pt=.visual_font_size_84pt, " +
- "96pt=.visual_font_size_96pt, " +
- "116pt=.visual_font_size_116pt, " +
- "128pt=.visual_font_size_128pt, " +
- "140pt=.visual_font_size_140pt, " +
- "154pt=.visual_font_size_154pt, " +
- "196pt=.visual_font_size_196pt",
- theme_advanced_toolbar_location: "top",
- theme_advanced_toolbar_align: "left",
- theme_advanced_buttons1:
- "bold,italic, |, justifyleft, justifycenter, justifyright, |, undo, redo, |, image, link, |, fontselect, forecolor, fontsizeselect, |,code",
- theme_advanced_buttons2: "",
- theme_advanced_buttons3: "",
- theme_advanced_statusbar_location: "none"
- });
- },
- beforeClose: function() {
- //Remove tinyMCE.
- tinymce.remove("#tinyMCE_editor");
-
- //Danguerous empty form if necessary for cleaned IDs.
- $formElement.empty();
- },
- buttons: [
- {
- text: "Cancel",
- class:
- "ui-widget ui-state-default ui-corner-all ui-button-text-only sub upd submit-cancel",
- click: function() {
- $formElement.dialog("close");
- }
- },
- {
- text: "Reset",
- class:
- "ui-widget ui-state-default ui-corner-all ui-button-text-only sub upd submit-cancel",
- click: function() {
- console.log("entra");
- formContainer.reset();
- }
- },
- {
- text: props.id ? "Update" : "Create",
- class:
- "ui-widget ui-state-default ui-corner-all ui-button-text-only sub ok submit-next",
- click: function() {
- // Remove input class error.
- var errorInputValidate = this.getElementsByClassName(
- "error-input-validate"
- );
- if (errorInputValidate.length) {
- for (var i = 0; i < errorInputValidate.length; i++) {
- errorInputValidate
- .item(i)
- .classList.remove("error-input-validate");
- }
- }
-
- // Remove element P error in form.
- var errorPValidate = this.getElementsByClassName("error-p-validate");
- if (errorPValidate.length) {
- for (var index = 0; index < errorPValidate.length; index++) {
- errorPValidate.item(index).remove();
- }
- }
-
- // Check validate form.
- if (this.checkValidity()) {
- // Trigered simulate button submit.
- this.dispatchEvent(new Event("submit"));
- } else {
- // First Element form invalid.
- var elementFormInvalid = this.querySelectorAll(":invalid")[0];
-
- // Focus invalid element.
- elementFormInvalid.focus();
-
- // Add class list error invalid element.
- elementFormInvalid.classList.add("error-input-validate");
-
- // Create Element message error.
- var pErrorValidate = document.createElement("p");
- pErrorValidate.classList.add("error-p-validate");
- // Message error element invalid.
- pErrorValidate.textContent = elementFormInvalid.validationMessage;
-
- // Append parent element.
- if (
- elementFormInvalid.parentElement.classList.contains(
- "div-input-group"
- )
- ) {
- elementFormInvalid.parentElement.appendChild(pErrorValidate);
- } else {
- // TODO: Very ugly
- elementFormInvalid.parentNode.parentNode.parentNode.parentNode.appendChild(
- pErrorValidate
- );
- }
- }
- }
- }
- ]
- });
- // TODO: Add submit and reset button.
-
*/
}
@@ -2425,6 +1649,117 @@ function getImagesVisualConsole(baseUrl, vcId, nameImg, only, callback) {
};
}
+/**
+ * Create Color range.
+ * @param {string} baseUrl Base URL to build the API path.
+ * @param {int} vcId Identifier of the Visual Console.
+ * @return {Void}
+ */
+// eslint-disable-next-line no-unused-vars
+function createColorRange(baseUrl, vcId) {
+ var from = document.getElementById("rangeDefaultFrom").value;
+ var to = document.getElementById("rangeDefaultTo").value;
+ var color = document.getElementById("color-rangeDefaultColor").value;
+
+ if (from == 0 && to == 0) {
+ return;
+ }
+
+ var fncallback = function(error, data) {
+ if (error || !data) {
+ console.log(
+ "[ERROR]",
+ "[VISUAL-CONSOLE-CLIENT]",
+ "[API]",
+ error ? error.message : "Invalid response"
+ );
+
+ return;
+ }
+
+ $("#itemForm-specific ul.wizard:first").append(data);
+ return;
+ };
+
+ createColorRangeVisualConsole(baseUrl, vcId, from, to, color, fncallback);
+}
+
+/**
+ * Add color ranges.
+ * @param {string} baseUrl Base URL to build the API path.
+ * @param {int} vcId Identifier of the Visual Console.
+ * @param {int} from From range.
+ * @param {int} to To range.
+ * @param {string} color Color range.
+ * @param {function} callback Function to be executed on request success or fail.
+ * @return {Object} Cancellable. Object which include and .abort([statusText]) function.
+ */
+// eslint-disable-next-line no-unused-vars
+function createColorRangeVisualConsole(
+ baseUrl,
+ vcId,
+ from,
+ to,
+ color,
+ callback
+) {
+ var apiPath = baseUrl + "/ajax.php";
+ var jqXHR = null;
+
+ // Cancel the ajax requests.
+ var abort = function(textStatus) {
+ if (textStatus == null) textStatus = "abort";
+
+ // -- XMLHttpRequest.readyState --
+ // Value State Description
+ // 0 UNSENT Client has been created. open() not called yet.
+ // 4 DONE The operation is complete.
+
+ if (jqXHR.readyState !== 0 && jqXHR.readyState !== 4)
+ jqXHR.abort(textStatus);
+ };
+
+ // Failed request handler.
+ var handleFail = function(jqXHR, textStatus, errorThrown) {
+ abort();
+ // Manually aborted or not.
+ if (textStatus === "abort") {
+ callback();
+ } else {
+ var error = new Error(errorThrown);
+ error.request = jqXHR;
+ callback(error);
+ }
+ };
+
+ // Function which handle success case.
+ var handleSuccess = function(data) {
+ callback(null, data);
+ };
+
+ // Visual Console container request.
+ jqXHR = jQuery
+ .get(
+ apiPath,
+ {
+ page: "include/rest-api/index",
+ createColorRangeVisualConsole: 1,
+ visualConsoleId: vcId,
+ from: from,
+ to: to,
+ color: color
+ },
+ "html"
+ )
+ .done(handleSuccess)
+ .fail(handleFail);
+
+ // Abortable.
+ return {
+ abort: abort
+ };
+}
+
/**
* Onchange time-zone.
* @return {void}
diff --git a/pandora_console/include/rest-api/index.php b/pandora_console/include/rest-api/index.php
index 9d7e9f2538..188d8c4fbf 100644
--- a/pandora_console/include/rest-api/index.php
+++ b/pandora_console/include/rest-api/index.php
@@ -36,23 +36,11 @@ $createVisualConsoleItem = (bool) get_parameter('createVisualConsoleItem');
$getVisualConsoleItem = (bool) get_parameter('getVisualConsoleItem');
$removeVisualConsoleItem = (bool) get_parameter('removeVisualConsoleItem');
$copyVisualConsoleItem = (bool) get_parameter('copyVisualConsoleItem');
-$getGroupsVisualConsoleItem = (bool) get_parameter(
- 'getGroupsVisualConsoleItem'
-);
-$getAllVisualConsole = (bool) get_parameter('getAllVisualConsole');
$getImagesVisualConsole = (bool) get_parameter('getImagesVisualConsole');
+$createColorRangeVisualConsole = (bool) get_parameter(
+ 'createColorRangeVisualConsole'
+);
$getTimeZoneVisualConsole = (bool) get_parameter('getTimeZoneVisualConsole');
-$autocompleteAgentsVisualConsole = (bool) get_parameter(
- 'autocompleteAgentsVisualConsole'
-);
-$autocompleteModuleVisualConsole = (bool) get_parameter(
- 'autocompleteModuleVisualConsole'
-);
-
-$getCustomGraphVisualConsoleItem = (bool) get_parameter(
- 'getCustomGraphVisualConsoleItem'
-);
-
$serviceListVisualConsole = (bool) get_parameter(
'serviceListVisualConsole'
);
@@ -253,209 +241,69 @@ if ($getVisualConsole === true) {
echo $result;
return;
-} else if ($getGroupsVisualConsoleItem === true) {
- $data = users_get_groups_for_select(
- $config['id_user'],
- 'AR',
- true,
- true
- );
-
- $result = array_map(
- function ($id) use ($data) {
- return [
- 'value' => $id,
- 'text' => $data[$id],
- ];
- },
- array_keys($data)
- );
-
- echo json_encode($result);
- return;
-} else if ($getAllVisualConsole === true) {
- // TODO: Remove.
} else if ($getImagesVisualConsole) {
$img = get_parameter('nameImg', 'appliance');
$only = (bool) get_parameter('only', 0);
$count = Item::imagesElementsVC($img, $only);
echo json_encode($count);
return;
+} else if ($createColorRangeVisualConsole) {
+ $baseUrl = ui_get_full_url('/', false, false, false);
+ $from = get_parameter('from', 0);
+ $to = get_parameter('to', 0);
+ $color = get_parameter('color', 0);
+
+ $rangeFrom = [
+ 'name' => 'rangeFrom[]',
+ 'type' => 'number',
+ 'value' => $from,
+ 'return' => true,
+ ];
+
+ $rangeTo = [
+ 'name' => 'rangeTo[]',
+ 'type' => 'number',
+ 'value' => $to,
+ 'return' => true,
+ ];
+
+ $rangeColor = [
+ 'wrapper' => 'div',
+ 'name' => 'rangeColor[]',
+ 'type' => 'color',
+ 'value' => $color,
+ 'return' => true,
+ ];
+
+ $removeBtn = [
+ 'name' => 'Remove',
+ 'label' => '',
+ 'type' => 'button',
+ 'attributes' => 'class="remove-item-img"',
+ 'return' => true,
+ 'script' => 'removeColorRange(\''.$baseUrl.'\',\''.$visualConsoleId.'\')',
+ ];
+
+ $liRangeColor = '
';
+ $liRangeColor .= '';
+ $liRangeColor .= html_print_input($rangeFrom);
+ $liRangeColor .= '';
+ $liRangeColor .= html_print_input($rangeTo);
+ $liRangeColor .= '';
+ $liRangeColor .= '';
+ $liRangeColor .= html_print_input($rangeColor);
+ $liRangeColor .= '
';
+ $liRangeColor .= '';
+ $liRangeColor .= html_print_input($removeBtn);
+ $liRangeColor .= '';
+
+ echo $liRangeColor;
+ return;
} else if ($getTimeZoneVisualConsole) {
$zone = get_parameter('zone', 'Europe');
$zones = Item::zonesVC($zone);
echo json_encode($zones);
return;
-} else if ($autocompleteAgentsVisualConsole) {
- $params = (array) get_parameter('data', []);
-
- $string = $params['value'];
-
- // TODO: ACL.
- $id_group = (int) get_parameter('id_group', -1);
-
- if ($id_group != -1) {
- if ($id_group == 0) {
- $user_groups = users_get_groups(
- $config['id_user'],
- 'AR',
- true
- );
- $filter['id_grupo'] = array_keys($user_groups);
- } else {
- $filter['id_grupo'] = $id_group;
- }
- }
-
- $filter = [];
- $filter['disabled'] = 0;
-
- $filter[] = sprintf(
- '(alias LIKE "%%%s%%")
- OR (alias NOT LIKE "%%%s%%"
- AND nombre COLLATE utf8_general_ci LIKE "%%%s%%")
- OR (alias NOT LIKE "%%%s%%"
- AND nombre COLLATE utf8_general_ci NOT LIKE "%%%s%%"
- AND direccion LIKE "%%%s%%")
- OR (alias NOT LIKE "%%%s%%"
- AND nombre COLLATE utf8_general_ci NOT LIKE "%%%s%%"
- AND direccion NOT LIKE "%%%s%%"
- AND comentarios LIKE "%%%s%%"
- )',
- $string,
- $string,
- $string,
- $string,
- $string,
- $string,
- $string,
- $string,
- $string,
- $string
- );
-
- $data = [];
- if (is_metaconsole() === true) {
- enterprise_include_once('include/functions_metaconsole.php');
- $metaconsole_connections = metaconsole_get_connection_names();
- // For all nodes.
- if (isset($metaconsole_connections) === true
- && is_array($metaconsole_connections) === true
- ) {
- foreach ($metaconsole_connections as $metaconsole) {
- // Get server connection data.
- $server_data = metaconsole_get_connection($metaconsole);
-
- // Establishes connection.
- if (metaconsole_load_external_db($server_data) !== NOERR) {
- continue;
- }
-
- $agents = agents_get_agents(
- $filter,
- [
- 'id_agente',
- 'nombre',
- 'direccion',
- 'alias',
- ]
- );
-
- if (isset($agents) === true && is_array($agents) === true) {
- foreach ($agents as $agent) {
- $data[] = [
- 'id' => $agent['id_agente'],
- 'name' => io_safe_output(
- $agent['nombre']
- ),
- 'alias' => io_safe_output(
- $agent['alias']
- ),
- 'ip' => io_safe_output(
- $agent['direccion']
- ),
- 'filter' => 'alias',
- 'metaconsoleId' => $server_data['id'],
- 'metaconsoleName' => $metaconsole,
- ];
- }
- }
-
- metaconsole_restore_db();
- }
- }
- } else {
- $agents = agents_get_agents(
- $filter,
- [
- 'id_agente',
- 'nombre',
- 'direccion',
- 'alias',
- ]
- );
- if (isset($agents) === true && is_array($agents) === true) {
- foreach ($agents as $agent) {
- $data[] = [
- 'id' => $agent['id_agente'],
- 'name' => io_safe_output($agent['nombre']),
- 'alias' => io_safe_output($agent['alias']),
- 'ip' => io_safe_output($agent['direccion']),
- 'filter' => 'alias',
- ];
- }
- }
- }
-
- echo json_encode($data);
- return;
-} else if ($autocompleteModuleVisualConsole) {
- $data = (array) get_parameter('data', []);
-
- $result = [];
- if (is_metaconsole()) {
- enterprise_include_once('include/functions_metaconsole.php');
- $connection = metaconsole_get_connection_by_id($data['metaconsoleId']);
- if (metaconsole_connect($connection) !== NOERR) {
- echo json_encode($result);
- return;
- }
- }
-
- if ($data['type'] == DONUT_GRAPH) {
- // Only type sting.
- $filter = sprintf(
- 'id_tipo_modulo IN (17,23,3,10,33)'
- );
- }
-
- $agent_modules = agents_get_modules(
- $data['agentId'],
- false,
- $filter
- );
-
- if (is_metaconsole()) {
- // Restore db connection.
- metaconsole_restore_db();
- }
-
- if (isset($agent_modules) === true && is_array($agent_modules) === true) {
- $result = array_map(
- function ($id) use ($agent_modules) {
- return [
- 'moduleId' => $id,
- 'moduleName' => io_safe_output($agent_modules[$id]),
- ];
- },
- array_keys($agent_modules)
- );
- }
-
- echo json_encode($result);
- return;
-} else if ($getCustomGraphVisualConsoleItem) {
- // Remove.
} else if ($serviceListVisualConsole) {
if (!enterprise_installed()) {
echo json_encode(false);
diff --git a/pandora_console/include/rest-api/models/VisualConsole/Items/ColorCloud.php b/pandora_console/include/rest-api/models/VisualConsole/Items/ColorCloud.php
index be521deae2..1eee684d59 100644
--- a/pandora_console/include/rest-api/models/VisualConsole/Items/ColorCloud.php
+++ b/pandora_console/include/rest-api/models/VisualConsole/Items/ColorCloud.php
@@ -73,6 +73,7 @@ final class ColorCloud extends Item
protected function encode(array $data): array
{
$return = parent::encode($data);
+
$colorRanges = null;
$defaultColor = null;
@@ -228,10 +229,6 @@ final class ColorCloud extends Item
{
$dynamicDataEncoded = static::notEmptyStringOr($data['label'], null);
- if ($dynamicDataEncoded === null) {
- throw new \InvalidArgumentException('dynamic data not found');
- }
-
$result = [];
try {
@@ -297,10 +294,6 @@ final class ColorCloud extends Item
$moduleId = $linkedModule['moduleId'];
$metaconsoleId = $linkedModule['metaconsoleId'];
- if ($moduleId === null) {
- throw new \InvalidArgumentException('missing module Id');
- }
-
$dynamicData = static::extractDynamicData($data);
// Set the initial color.
$data['color'] = $dynamicData['defaultColor'];
@@ -363,4 +356,216 @@ final class ColorCloud extends Item
}
+ /**
+ * Generates inputs for form (specific).
+ *
+ * @param array $values Default values.
+ *
+ * @return array Of inputs.
+ *
+ * @throws Exception On error.
+ */
+ public static function getFormInputs(array $values): array
+ {
+ // Default values.
+ $values = static::getDefaultGeneralValues($values);
+
+ // Retrieve global - common inputs.
+ $inputs = Item::getFormInputs($values);
+
+ if (is_array($inputs) !== true) {
+ throw new Exception(
+ '[ColorCloud]::getFormInputs parent class return is not an array'
+ );
+ }
+
+ if ($values['tabSelected'] === 'specific') {
+ // Autocomplete agents.
+ $inputs[] = [
+ 'label' => __('Agent'),
+ 'arguments' => [
+ 'type' => 'autocomplete_agent',
+ 'name' => 'agentAlias',
+ 'id_agent_hidden' => $values['agentId'],
+ 'name_agent_hidden' => 'agentId',
+ 'server_id_hidden' => $values['metaconsoleId'],
+ 'name_server_hidden' => 'metaconsoleId',
+ 'return' => true,
+ 'module_input' => true,
+ 'module_name' => 'moduleId',
+ 'module_none' => 'false',
+ ],
+ ];
+
+ // Autocomplete module.
+ $inputs[] = [
+ 'label' => __('Module'),
+ 'arguments' => [
+ 'type' => 'autocomplete_module',
+ 'fields' => $fields,
+ 'name' => 'moduleId',
+ 'selected' => $values['moduleId'],
+ 'return' => true,
+ 'sort' => false,
+ 'agent_id' => $values['agentId'],
+ 'metaconsole_id' => $values['metaconsoleId'],
+ ],
+ ];
+
+ // Default color.
+ $inputs[] = [
+ 'label' => __('Default color'),
+ 'arguments' => [
+ 'wrapper' => 'div',
+ 'name' => 'defaultColor',
+ 'type' => 'color',
+ 'value' => $values['defaultColor'],
+ 'return' => true,
+ ],
+ ];
+
+ // Label.
+ $inputs[] = [
+ 'label' => __('Default').':',
+ ];
+
+ $baseUrl = ui_get_full_url('/', false, false, false);
+ // Default ranges.
+ $inputs[] = [
+ 'block_id' => 'default-ranges',
+ 'class' => 'flex-row flex-start w100p',
+ 'direct' => 1,
+ 'block_content' => [
+ [
+ 'label' => __('From'),
+ 'arguments' => [
+ 'id' => 'rangeDefaultFrom',
+ 'name' => 'rangeDefaultFrom',
+ 'type' => 'number',
+ 'value' => 0,
+ 'return' => true,
+ ],
+ ],
+ [
+ 'label' => __('To'),
+ 'arguments' => [
+ 'id' => 'rangeDefaultTo',
+ 'name' => 'rangeDefaultTo',
+ 'type' => 'number',
+ 'value' => 0,
+ 'return' => true,
+ ],
+ ],
+ [
+ 'label' => __('Color'),
+ 'arguments' => [
+ 'wrapper' => 'div',
+ 'name' => 'rangeDefaultColor',
+ 'type' => 'color',
+ 'value' => '#000000',
+ 'return' => true,
+ ],
+ ],
+ [
+ 'arguments' => [
+ 'name' => 'add',
+ 'label' => '',
+ 'type' => 'button',
+ 'attributes' => 'class="add-item-img"',
+ 'return' => true,
+ 'script' => 'createColorRange(\''.$baseUrl.'\',\''.$values['vCId'].'\')',
+ ],
+ ],
+ ],
+ ];
+
+ // Label.
+ $inputs[] = [
+ 'label' => __('Ranges').':',
+ ];
+
+ if (isset($values['colorRanges']) === true
+ && is_array($values['colorRanges']) === true
+ && empty($values['colorRanges']) === false
+ ) {
+ foreach ($values['colorRanges'] as $k => $v) {
+ $inputs[] = [
+ 'class' => 'interval-color-ranges flex-row flex-start w100p',
+ 'direct' => 1,
+ 'block_content' => [
+ [
+ 'label' => __('From'),
+ 'arguments' => [
+ 'name' => 'rangeFrom[]',
+ 'type' => 'number',
+ 'value' => $v['fromValue'],
+ 'return' => true,
+ ],
+ ],
+ [
+ 'label' => __('To'),
+ 'arguments' => [
+ 'name' => 'rangeTo[]',
+ 'type' => 'number',
+ 'value' => $v['toValue'],
+ 'return' => true,
+ ],
+ ],
+ [
+ 'label' => __('Color'),
+ 'arguments' => [
+ 'wrapper' => 'div',
+ 'name' => 'rangeColor[]',
+ 'type' => 'color',
+ 'value' => $v['color'],
+ 'return' => true,
+ ],
+ ],
+ [
+ 'arguments' => [
+ 'name' => 'Remove',
+ 'label' => '',
+ 'type' => 'button',
+ 'attributes' => 'class="remove-item-img"',
+ 'return' => true,
+ 'script' => 'removeColorRange(\''.$baseUrl.'\',\''.$values['vCId'].'\')',
+ ],
+ ],
+ ],
+ ];
+ }
+ }
+ }
+
+ return $inputs;
+ }
+
+
+ /**
+ * Default values.
+ *
+ * @param array $values Array values.
+ *
+ * @return array Array with default values.
+ *
+ * @overrides Item->getDefaultGeneralValues.
+ */
+ public function getDefaultGeneralValues(array $values): array
+ {
+ // Retrieve global - common inputs.
+ $values = parent::getDefaultGeneralValues($values);
+
+ // Default values.
+ if (isset($values['width']) === false) {
+ $values['width'] = 300;
+ }
+
+ if (isset($values['height']) === false) {
+ $values['height'] = 180;
+ }
+
+ return $values;
+ }
+
+
}
diff --git a/pandora_console/include/rest-api/models/VisualConsole/View.php b/pandora_console/include/rest-api/models/VisualConsole/View.php
index c53628e708..de20f68a76 100644
--- a/pandora_console/include/rest-api/models/VisualConsole/View.php
+++ b/pandora_console/include/rest-api/models/VisualConsole/View.php
@@ -467,7 +467,25 @@ class View extends \HTML
break;
case COLOR_CLOUD:
- // TODO:XXX.
+ $data['agentId'] = \get_parameter('agentId');
+ $data['metaconsoleId'] = \get_parameter('metaconsoleId');
+ $data['moduleId'] = \get_parameter('moduleId');
+ $data['defaultColor'] = \get_parameter('defaultColor');
+
+ $rangeFrom = \get_parameter('rangeFrom');
+ $rangeTo = \get_parameter('rangeTo');
+ $rangeColor = \get_parameter('rangeColor');
+
+ $arrayRangeColor = [];
+ foreach ($rangeFrom as $key => $value) {
+ $arrayRangeColor[$key] = [
+ 'color' => $rangeColor[$key],
+ 'fromValue' => $value,
+ 'toValue' => $rangeTo[$key],
+ ];
+ }
+
+ $data['colorRanges'] = $arrayRangeColor;
break;
case SERVICE:
diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css
index 9f559afa2d..4c48f12e80 100644
--- a/pandora_console/include/styles/pandora.css
+++ b/pandora_console/include/styles/pandora.css
@@ -1761,9 +1761,20 @@ button.deploy,
input.deploy {
background-image: url(../../images/input_deploy.png);
}
-/*#table-add-item select, #table-add-sla select {
- width: 180px;
-}*/
+
+button.add-item-img,
+input.add-item-img {
+ background-image: url(../../images/add.png);
+ background-repeat: no-repeat;
+ background-position: center;
+}
+
+button.remove-item-img,
+input.remove-item-img {
+ background-image: url(../../images/delete.png);
+ background-repeat: no-repeat;
+ background-position: center;
+}
/* end of classes for event priorities */
div#main_pure {
diff --git a/pandora_console/include/visual-console-client/vc.main.css b/pandora_console/include/visual-console-client/vc.main.css
index 7cda1cad68..4f6b729e0d 100644
--- a/pandora_console/include/visual-console-client/vc.main.css
+++ b/pandora_console/include/visual-console-client/vc.main.css
@@ -505,6 +505,18 @@ label span.p-slider {
width: 30px;
}
+li.interval-color-ranges > label,
+li#li-default-ranges > label {
+ margin-right: 15px;
+}
+
+li.interval-color-ranges > input[type="number"],
+li#li-default-ranges > input[type="number"] {
+ width: 80px;
+}
+
+li.interval-color-ranges > label:not(:first-child),
+li#li-default-ranges > label:not(:first-child),
li#li-size-item > label:not(:first-child),
li#li-position-item > label:not(:first-child) {
width: initial;
diff --git a/pandora_console/include/visual-console-client/vc.main.css.map b/pandora_console/include/visual-console-client/vc.main.css.map
index 2ac38f495c..b279d394e6 100644
--- a/pandora_console/include/visual-console-client/vc.main.css.map
+++ b/pandora_console/include/visual-console-client/vc.main.css.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///main.css","webpack:///FontAwesomeIcon.styles.css","webpack:///autocomplete.css","webpack:///styles.css"],"names":[],"mappings":"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","file":"vc.main.css","sourcesContent":["#visual-console-container {\n margin: 0px auto;\n position: relative;\n background-repeat: no-repeat;\n background-size: 100% 100%;\n background-position: center;\n}\n\n.visual-console-item {\n position: absolute;\n display: flex;\n flex-direction: initial;\n justify-items: center;\n align-items: center;\n user-select: text;\n z-index: 1;\n}\n\n.visual-console-item.is-on-top {\n z-index: 2;\n}\n\n.visual-console-item.is-editing {\n border: 2px dashed #b2b2b2;\n transform: translateX(-2px) translateY(-2px);\n user-select: none;\n}\n\n.visual-console-item.is-editing.is-selected {\n border: 2px dashed #2b2b2b;\n cursor: move;\n}\n.visual-console-item.is-editing > .resize-draggable {\n float: right;\n position: absolute;\n right: 0;\n bottom: 0;\n width: 15px;\n height: 15px;\n background: url(./resize-handle.svg);\n cursor: se-resize;\n}\n\n.visual-console-item.is-editing :first-child {\n pointer-events: none;\n}\n\n@keyframes spinner-loading {\n 0% {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(1turn);\n }\n}\n\n.visual-console-spinner {\n background-color: transparent;\n margin: 0px auto;\n border-top: 5px solid rgb(82, 85, 87);\n border-right: 5px solid rgb(82, 85, 87);\n border-bottom: 5px solid rgb(82, 85, 87);\n border-left: 5px solid rgba(82, 85, 87, 0.2);\n\n animation-name: spinner-loading;\n animation-duration: 0.8s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n}\n\n.visual-console-spinner,\n.visual-console-spinner :after {\n display: block;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n}\n\n.visual-console-spinner.small,\n.visual-console-spinner.small :after {\n width: 12px;\n height: 12px;\n}\n\n.div-visual-console-spinner {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n opacity: 0.7;\n background: rgb(212, 215, 218);\n}\n\n.show-elements {\n display: inline-block;\n}\n\n.hide-elements {\n display: none;\n}\n\n/*Forms*/\n.div-input-group label {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n font-size: 12pt;\n font-family: \"lato-bolder\", \"Open Sans\", sans-serif;\n font-weight: 600;\n color: #343434;\n margin-right: 10px;\n}\n.div-input-group label img {\n margin-left: 4px;\n}\n\n.div-input-group input[type=\"text\"],\n.div-input-group input[type=\"number\"] {\n height: 25px;\n font-size: 10pt;\n background-color: transparent;\n border: none;\n border-radius: 0;\n border-bottom: 1px solid #ccc;\n font-family: \"lato-bolder\", \"Open Sans\", sans-serif;\n font-weight: lighter;\n padding: 0px 0px 2px 0px;\n box-sizing: border-box;\n margin-right: 10px;\n padding-left: 2px;\n}\n\n.div-input-group input[type=\"radio\"] {\n margin-right: 10px;\n width: 17px;\n height: 17px;\n}\n\n.div-input-group select {\n font-family: \"lato-bolder\", \"Open Sans\", sans-serif;\n font-weight: lighter;\n font-size: 10pt;\n}\n\n.input-groups {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n}\n\n.input-group {\n width: 100%;\n margin-bottom: 25px;\n padding-left: 20px;\n}\n\n.div-ranges-input-group {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.div-ranges-input-group > div {\n padding-left: 20px;\n margin-top: 10px;\n}\n\n.div-input-group,\n.div-input-group div div {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.div-input-group h3 {\n text-transform: initial;\n font-family: \"lato-bolder\", \"Open Sans\", sans-serif;\n text-align: center;\n font-style: italic;\n text-decoration: underline;\n margin: 0 auto;\n}\n\n.div-input-group div div a {\n margin-left: 10px;\n}\n\n.div-input-group-autocomplete-agent {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: space-between;\n height: 70px;\n}\n\n.div-input-group-inside {\n padding-left: 20px;\n}\n\n.input-group-link-console {\n height: 70px;\n}\n\n.show-elements > div.div-input-group-autocomplete-agent {\n margin-left: 20px;\n}\n\n.img-vc-elements {\n margin-left: 10px;\n}\n\ninput.error-input-validate[type=\"number\"],\ninput.error-input-validate[type=\"text\"],\nselect.error-input-validate {\n border: 1px solid #c00;\n}\n\nselect.error-input-validate:focus {\n outline-color: #c00;\n}\n\np.error-p-validate {\n width: 100%;\n color: #c00;\n}\n\n/* Styles for the solid icons */\n\n.fa {\n display: inline-block;\n margin: 0;\n}\n\n.fa,\n.fa > svg,\n.fa.medium,\n.fa.medium > svg {\n width: 28px;\n height: 28px;\n}\n\n.fa.fa-small,\n.fa.fa-small > svg {\n width: 14px;\n height: 14px;\n}\n\n.fa.fa-large,\n.fa.fa-large > svg {\n width: 44px;\n height: 44px;\n}\n\n.fa-spin {\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n animation: fa-spin 1s infinite steps(8);\n}\n\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.autocomplete {\n /*the container must be positioned relative:*/\n position: relative;\n display: inline-block;\n}\n.autocomplete input {\n /*background: pink;*/\n}\n.autocomplete-items {\n border: 1px solid #d4d4d4;\n border-bottom: none;\n border-top: none;\n /*position the autocomplete items to be the same width as the container:*/\n position: absolute;\n z-index: 1;\n overflow: auto;\n max-height: 150px;\n max-width: 250px;\n}\n.autocomplete-items div {\n width: 100%;\n padding: 10px;\n cursor: pointer;\n background-color: #fff;\n border-bottom: 1px solid #d4d4d4;\n border-top: 1px solid #d4d4d4;\n}\n.autocomplete-items div:hover {\n width: 100%;\n background-color: #e9e9e9;\n}\n.autocomplete-active {\n /*when navigating through the items using the arrow keys:*/\n background-color: DodgerBlue !important;\n color: #ffffff;\n}\n\n/*\n@font-face {\n font-family: Alarm Clock;\n src: url(alarm-clock.ttf);\n}\n*/\n\n/* Digital clock */\n\n.visual-console-item .digital-clock {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: column;\n justify-content: center;\n justify-items: center;\n align-content: center;\n align-items: center;\n}\n\n.visual-console-item .digital-clock > span {\n /* To improve legibility */\n text-rendering: optimizeLegibility;\n text-shadow: rgba(0, 0, 0, 0.01) 0 0 1px;\n}\n\n.visual-console-item .digital-clock > span.time {\n font-family: \"Alarm Clock\", \"Courier New\", Courier, monospace;\n font-size: 50px;\n}\n\n.visual-console-item .digital-clock > span.date {\n font-family: \"Alarm Clock\", \"Courier New\", Courier, monospace;\n font-size: 25px;\n}\n\n.visual-console-item .digital-clock > span.timezone {\n font-size: 25px;\n}\n\n/* Analog clock */\n\n.visual-console-item .analogic-clock {\n text-align: center;\n}\n\n.visual-console-item .analogic-clock .hour-hand {\n animation: rotate-hour 43200s infinite linear;\n}\n\n.visual-console-item .analogic-clock .minute-hand {\n animation: rotate-minute 3600s infinite linear;\n}\n\n.visual-console-item .analogic-clock .second-hand {\n animation: rotate-second 60s infinite linear;\n}\n\n#html-tabs .ui-widget-header {\n background-color: #ffffff;\n border: 0px;\n}\n\n#html-tabs .ui-tabs-anchor {\n float: none;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n}\n\n#html-tabs .ui-tabs-anchor img {\n margin-right: 10px;\n}\n\n#html-tabs .ui-tabs-nav li {\n border-radius: 5px 5px 0px 0px;\n}\n\nlabel span.p-slider {\n width: 30px;\n}\n\nli#li-size-item > label:not(:first-child),\nli#li-position-item > label:not(:first-child) {\n width: initial;\n margin-left: 15px;\n}\n\nli#li-image-item label {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n}\n\nli#li-image-item label img {\n flex: initial;\n}\n\n.discovery.modal * {\n font-weight: normal;\n color: #343434;\n font-family: \"lato\", \"Open Sans\", sans-serif;\n}\n\n.discovery.modal select {\n width: 100px;\n}\n\n.discovery.modal div#cacheExpiration_manual select,\n.discovery.modal div#cacheExpiration_manual input,\n.discovery.modal div#cacheExpiration_default select {\n font-size: inherit !important;\n}\n\n.discovery.modal div#cacheExpiration_default select#cacheExpiration_select {\n max-width: 230px;\n width: inherit;\n}\n\nli#li-timeZone-item > label:not(:first-child),\n.discovery.modal li#div-textarea-label > label {\n flex: inherit;\n}\n\nli#li-timeZone-item > select:not(:first-child) {\n margin-left: 10px;\n}\n\n.discovery.modal li#div-textarea-label table tbody td.mceIframeContainer {\n background-color: #ededed;\n}\n\n/*style item group show statistic*/\n.group-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n.group-container .group-item-title {\n width: 100%;\n height: 30%;\n background-color: #9d9ea0;\n color: black;\n font-weight: bold;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n.group-container .group-item-info {\n width: 100%;\n height: 70%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n padding: 2%;\n align-items: center;\n}\n\n.group-container .group-item-info .group-item-info-container {\n flex: 1 1 80px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n height: 100%;\n max-height: 50px;\n margin: 5px;\n}\n\n.group-container .group-item-info .group-item-info-container .value-style {\n flex: 1;\n color: #fff;\n font-size: 100%;\n padding: 5px;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n\n.group-container .group-item-info .group-item-info-container .name-style {\n flex: 1;\n background-color: white;\n color: black;\n font-size: 100%;\n padding: 5px;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n\ndiv.label,\ndiv.simple-value {\n display: inline-table;\n min-width: fit-content;\n min-height: fit-content;\n}\n","/* Styles for the solid icons */\n\n.fa {\n display: inline-block;\n margin: 0;\n}\n\n.fa,\n.fa > svg,\n.fa.medium,\n.fa.medium > svg {\n width: 28px;\n height: 28px;\n}\n\n.fa.fa-small,\n.fa.fa-small > svg {\n width: 14px;\n height: 14px;\n}\n\n.fa.fa-large,\n.fa.fa-large > svg {\n width: 44px;\n height: 44px;\n}\n\n.fa-spin {\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n animation: fa-spin 1s infinite steps(8);\n}\n\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n",".autocomplete {\n /*the container must be positioned relative:*/\n position: relative;\n display: inline-block;\n}\n.autocomplete input {\n /*background: pink;*/\n}\n.autocomplete-items {\n border: 1px solid #d4d4d4;\n border-bottom: none;\n border-top: none;\n /*position the autocomplete items to be the same width as the container:*/\n position: absolute;\n z-index: 1;\n overflow: auto;\n max-height: 150px;\n max-width: 250px;\n}\n.autocomplete-items div {\n width: 100%;\n padding: 10px;\n cursor: pointer;\n background-color: #fff;\n border-bottom: 1px solid #d4d4d4;\n border-top: 1px solid #d4d4d4;\n}\n.autocomplete-items div:hover {\n width: 100%;\n background-color: #e9e9e9;\n}\n.autocomplete-active {\n /*when navigating through the items using the arrow keys:*/\n background-color: DodgerBlue !important;\n color: #ffffff;\n}\n","@font-face {\n font-family: Alarm Clock;\n src: url(./alarm-clock.ttf);\n}\n\n/* Digital clock */\n\n.visual-console-item .digital-clock {\n display: flex;\n flex-direction: column;\n justify-content: center;\n justify-items: center;\n align-content: center;\n align-items: center;\n}\n\n.visual-console-item .digital-clock > span {\n /* To improve legibility */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n text-shadow: rgba(0, 0, 0, 0.01) 0 0 1px;\n}\n\n.visual-console-item .digital-clock > span.time {\n font-family: \"Alarm Clock\", \"Courier New\", Courier, monospace;\n font-size: 50px;\n}\n\n.visual-console-item .digital-clock > span.date {\n font-size: 25px;\n}\n\n.visual-console-item .digital-clock > span.timezone {\n font-size: 25px;\n}\n\n/* Analog clock */\n\n.visual-console-item .analogic-clock {\n text-align: center;\n}\n\n.visual-console-item .analogic-clock .hour-hand {\n animation: rotate-hour 43200s infinite linear;\n}\n\n.visual-console-item .analogic-clock .minute-hand {\n animation: rotate-minute 3600s infinite linear;\n}\n\n.visual-console-item .analogic-clock .second-hand {\n animation: rotate-second 60s infinite linear;\n}\n"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///main.css","webpack:///FontAwesomeIcon.styles.css","webpack:///autocomplete.css","webpack:///styles.css"],"names":[],"mappings":"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","file":"vc.main.css","sourcesContent":["#visual-console-container {\n margin: 0px auto;\n position: relative;\n background-repeat: no-repeat;\n background-size: 100% 100%;\n background-position: center;\n}\n\n.visual-console-item {\n position: absolute;\n display: flex;\n flex-direction: initial;\n justify-items: center;\n align-items: center;\n user-select: text;\n z-index: 1;\n}\n\n.visual-console-item.is-on-top {\n z-index: 2;\n}\n\n.visual-console-item.is-editing {\n border: 2px dashed #b2b2b2;\n transform: translateX(-2px) translateY(-2px);\n user-select: none;\n}\n\n.visual-console-item.is-editing.is-selected {\n border: 2px dashed #2b2b2b;\n cursor: move;\n}\n.visual-console-item.is-editing > .resize-draggable {\n float: right;\n position: absolute;\n right: 0;\n bottom: 0;\n width: 15px;\n height: 15px;\n background: url(./resize-handle.svg);\n cursor: se-resize;\n}\n\n.visual-console-item.is-editing :first-child {\n pointer-events: none;\n}\n\n@keyframes spinner-loading {\n 0% {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(1turn);\n }\n}\n\n.visual-console-spinner {\n background-color: transparent;\n margin: 0px auto;\n border-top: 5px solid rgb(82, 85, 87);\n border-right: 5px solid rgb(82, 85, 87);\n border-bottom: 5px solid rgb(82, 85, 87);\n border-left: 5px solid rgba(82, 85, 87, 0.2);\n\n animation-name: spinner-loading;\n animation-duration: 0.8s;\n animation-iteration-count: infinite;\n animation-timing-function: linear;\n}\n\n.visual-console-spinner,\n.visual-console-spinner :after {\n display: block;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n}\n\n.visual-console-spinner.small,\n.visual-console-spinner.small :after {\n width: 12px;\n height: 12px;\n}\n\n.div-visual-console-spinner {\n position: absolute;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n opacity: 0.7;\n background: rgb(212, 215, 218);\n}\n\n.show-elements {\n display: inline-block;\n}\n\n.hide-elements {\n display: none;\n}\n\n/*Forms*/\n.div-input-group label {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n font-size: 12pt;\n font-family: \"lato-bolder\", \"Open Sans\", sans-serif;\n font-weight: 600;\n color: #343434;\n margin-right: 10px;\n}\n.div-input-group label img {\n margin-left: 4px;\n}\n\n.div-input-group input[type=\"text\"],\n.div-input-group input[type=\"number\"] {\n height: 25px;\n font-size: 10pt;\n background-color: transparent;\n border: none;\n border-radius: 0;\n border-bottom: 1px solid #ccc;\n font-family: \"lato-bolder\", \"Open Sans\", sans-serif;\n font-weight: lighter;\n padding: 0px 0px 2px 0px;\n box-sizing: border-box;\n margin-right: 10px;\n padding-left: 2px;\n}\n\n.div-input-group input[type=\"radio\"] {\n margin-right: 10px;\n width: 17px;\n height: 17px;\n}\n\n.div-input-group select {\n font-family: \"lato-bolder\", \"Open Sans\", sans-serif;\n font-weight: lighter;\n font-size: 10pt;\n}\n\n.input-groups {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n}\n\n.input-group {\n width: 100%;\n margin-bottom: 25px;\n padding-left: 20px;\n}\n\n.div-ranges-input-group {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n align-items: flex-start;\n}\n\n.div-ranges-input-group > div {\n padding-left: 20px;\n margin-top: 10px;\n}\n\n.div-input-group,\n.div-input-group div div {\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n}\n\n.div-input-group h3 {\n text-transform: initial;\n font-family: \"lato-bolder\", \"Open Sans\", sans-serif;\n text-align: center;\n font-style: italic;\n text-decoration: underline;\n margin: 0 auto;\n}\n\n.div-input-group div div a {\n margin-left: 10px;\n}\n\n.div-input-group-autocomplete-agent {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n align-items: flex-start;\n justify-content: space-between;\n height: 70px;\n}\n\n.div-input-group-inside {\n padding-left: 20px;\n}\n\n.input-group-link-console {\n height: 70px;\n}\n\n.show-elements > div.div-input-group-autocomplete-agent {\n margin-left: 20px;\n}\n\n.img-vc-elements {\n margin-left: 10px;\n}\n\ninput.error-input-validate[type=\"number\"],\ninput.error-input-validate[type=\"text\"],\nselect.error-input-validate {\n border: 1px solid #c00;\n}\n\nselect.error-input-validate:focus {\n outline-color: #c00;\n}\n\np.error-p-validate {\n width: 100%;\n color: #c00;\n}\n\n/* Styles for the solid icons */\n\n.fa {\n display: inline-block;\n margin: 0;\n}\n\n.fa,\n.fa > svg,\n.fa.medium,\n.fa.medium > svg {\n width: 28px;\n height: 28px;\n}\n\n.fa.fa-small,\n.fa.fa-small > svg {\n width: 14px;\n height: 14px;\n}\n\n.fa.fa-large,\n.fa.fa-large > svg {\n width: 44px;\n height: 44px;\n}\n\n.fa-spin {\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n animation: fa-spin 1s infinite steps(8);\n}\n\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n.autocomplete {\n /*the container must be positioned relative:*/\n position: relative;\n display: inline-block;\n}\n.autocomplete input {\n /*background: pink;*/\n}\n.autocomplete-items {\n border: 1px solid #d4d4d4;\n border-bottom: none;\n border-top: none;\n /*position the autocomplete items to be the same width as the container:*/\n position: absolute;\n z-index: 1;\n overflow: auto;\n max-height: 150px;\n max-width: 250px;\n}\n.autocomplete-items div {\n width: 100%;\n padding: 10px;\n cursor: pointer;\n background-color: #fff;\n border-bottom: 1px solid #d4d4d4;\n border-top: 1px solid #d4d4d4;\n}\n.autocomplete-items div:hover {\n width: 100%;\n background-color: #e9e9e9;\n}\n.autocomplete-active {\n /*when navigating through the items using the arrow keys:*/\n background-color: DodgerBlue !important;\n color: #ffffff;\n}\n\n/*\n@font-face {\n font-family: Alarm Clock;\n src: url(alarm-clock.ttf);\n}\n*/\n\n/* Digital clock */\n\n.visual-console-item .digital-clock {\n display: -webkit-box;\n display: -ms-flexbox;\n display: flex;\n flex-direction: column;\n justify-content: center;\n justify-items: center;\n align-content: center;\n align-items: center;\n}\n\n.visual-console-item .digital-clock > span {\n /* To improve legibility */\n text-rendering: optimizeLegibility;\n text-shadow: rgba(0, 0, 0, 0.01) 0 0 1px;\n}\n\n.visual-console-item .digital-clock > span.time {\n font-family: \"Alarm Clock\", \"Courier New\", Courier, monospace;\n font-size: 50px;\n}\n\n.visual-console-item .digital-clock > span.date {\n font-family: \"Alarm Clock\", \"Courier New\", Courier, monospace;\n font-size: 25px;\n}\n\n.visual-console-item .digital-clock > span.timezone {\n font-size: 25px;\n}\n\n/* Analog clock */\n\n.visual-console-item .analogic-clock {\n text-align: center;\n}\n\n.visual-console-item .analogic-clock .hour-hand {\n animation: rotate-hour 43200s infinite linear;\n}\n\n.visual-console-item .analogic-clock .minute-hand {\n animation: rotate-minute 3600s infinite linear;\n}\n\n.visual-console-item .analogic-clock .second-hand {\n animation: rotate-second 60s infinite linear;\n}\n\n#html-tabs .ui-widget-header {\n background-color: #ffffff;\n border: 0px;\n}\n\n#html-tabs .ui-tabs-anchor {\n float: none;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n}\n\n#html-tabs .ui-tabs-anchor img {\n margin-right: 10px;\n}\n\n#html-tabs .ui-tabs-nav li {\n border-radius: 5px 5px 0px 0px;\n}\n\nlabel span.p-slider {\n width: 30px;\n}\n\nli.interval-color-ranges > label,\nli#li-default-ranges > label {\n margin-right: 15px;\n}\n\nli.interval-color-ranges > input[type=\"number\"],\nli#li-default-ranges > input[type=\"number\"] {\n width: 80px;\n}\n\nli.interval-color-ranges > label:not(:first-child),\nli#li-default-ranges > label:not(:first-child),\nli#li-size-item > label:not(:first-child),\nli#li-position-item > label:not(:first-child) {\n width: initial;\n margin-left: 15px;\n}\n\nli#li-image-item label {\n display: flex;\n flex-direction: row;\n justify-content: flex-end;\n}\n\nli#li-image-item label img {\n flex: initial;\n}\n\n.discovery.modal * {\n font-weight: normal;\n color: #343434;\n font-family: \"lato\", \"Open Sans\", sans-serif;\n}\n\n.discovery.modal select {\n width: 100px;\n}\n\n.discovery.modal div#cacheExpiration_manual select,\n.discovery.modal div#cacheExpiration_manual input,\n.discovery.modal div#cacheExpiration_default select {\n font-size: inherit !important;\n}\n\n.discovery.modal div#cacheExpiration_default select#cacheExpiration_select {\n max-width: 230px;\n width: inherit;\n}\n\nli#li-timeZone-item > label:not(:first-child),\n.discovery.modal li#div-textarea-label > label {\n flex: inherit;\n}\n\nli#li-timeZone-item > select:not(:first-child) {\n margin-left: 10px;\n}\n\n.discovery.modal li#div-textarea-label table tbody td.mceIframeContainer {\n background-color: #ededed;\n}\n\n/*style item group show statistic*/\n.group-container {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n}\n.group-container .group-item-title {\n width: 100%;\n height: 30%;\n background-color: #9d9ea0;\n color: black;\n font-weight: bold;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n.group-container .group-item-info {\n width: 100%;\n height: 70%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n padding: 2%;\n align-items: center;\n}\n\n.group-container .group-item-info .group-item-info-container {\n flex: 1 1 80px;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n height: 100%;\n max-height: 50px;\n margin: 5px;\n}\n\n.group-container .group-item-info .group-item-info-container .value-style {\n flex: 1;\n color: #fff;\n font-size: 100%;\n padding: 5px;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n\n.group-container .group-item-info .group-item-info-container .name-style {\n flex: 1;\n background-color: white;\n color: black;\n font-size: 100%;\n padding: 5px;\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n\ndiv.label,\ndiv.simple-value {\n display: inline-table;\n min-width: fit-content;\n min-height: fit-content;\n}\n","/* Styles for the solid icons */\n\n.fa {\n display: inline-block;\n margin: 0;\n}\n\n.fa,\n.fa > svg,\n.fa.medium,\n.fa.medium > svg {\n width: 28px;\n height: 28px;\n}\n\n.fa.fa-small,\n.fa.fa-small > svg {\n width: 14px;\n height: 14px;\n}\n\n.fa.fa-large,\n.fa.fa-large > svg {\n width: 44px;\n height: 44px;\n}\n\n.fa-spin {\n animation: fa-spin 2s infinite linear;\n}\n\n.fa-pulse {\n animation: fa-spin 1s infinite steps(8);\n}\n\n@keyframes fa-spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n",".autocomplete {\n /*the container must be positioned relative:*/\n position: relative;\n display: inline-block;\n}\n.autocomplete input {\n /*background: pink;*/\n}\n.autocomplete-items {\n border: 1px solid #d4d4d4;\n border-bottom: none;\n border-top: none;\n /*position the autocomplete items to be the same width as the container:*/\n position: absolute;\n z-index: 1;\n overflow: auto;\n max-height: 150px;\n max-width: 250px;\n}\n.autocomplete-items div {\n width: 100%;\n padding: 10px;\n cursor: pointer;\n background-color: #fff;\n border-bottom: 1px solid #d4d4d4;\n border-top: 1px solid #d4d4d4;\n}\n.autocomplete-items div:hover {\n width: 100%;\n background-color: #e9e9e9;\n}\n.autocomplete-active {\n /*when navigating through the items using the arrow keys:*/\n background-color: DodgerBlue !important;\n color: #ffffff;\n}\n","@font-face {\n font-family: Alarm Clock;\n src: url(./alarm-clock.ttf);\n}\n\n/* Digital clock */\n\n.visual-console-item .digital-clock {\n display: flex;\n flex-direction: column;\n justify-content: center;\n justify-items: center;\n align-content: center;\n align-items: center;\n}\n\n.visual-console-item .digital-clock > span {\n /* To improve legibility */\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\n text-shadow: rgba(0, 0, 0, 0.01) 0 0 1px;\n}\n\n.visual-console-item .digital-clock > span.time {\n font-family: \"Alarm Clock\", \"Courier New\", Courier, monospace;\n font-size: 50px;\n}\n\n.visual-console-item .digital-clock > span.date {\n font-size: 25px;\n}\n\n.visual-console-item .digital-clock > span.timezone {\n font-size: 25px;\n}\n\n/* Analog clock */\n\n.visual-console-item .analogic-clock {\n text-align: center;\n}\n\n.visual-console-item .analogic-clock .hour-hand {\n animation: rotate-hour 43200s infinite linear;\n}\n\n.visual-console-item .analogic-clock .minute-hand {\n animation: rotate-minute 3600s infinite linear;\n}\n\n.visual-console-item .analogic-clock .second-hand {\n animation: rotate-second 60s infinite linear;\n}\n"],"sourceRoot":""}
\ No newline at end of file
diff --git a/visual_console_client/src/main.css b/visual_console_client/src/main.css
index c9500f16f2..736fb1facf 100644
--- a/visual_console_client/src/main.css
+++ b/visual_console_client/src/main.css
@@ -393,6 +393,18 @@ label span.p-slider {
width: 30px;
}
+li.interval-color-ranges > label,
+li#li-default-ranges > label {
+ margin-right: 15px;
+}
+
+li.interval-color-ranges > input[type="number"],
+li#li-default-ranges > input[type="number"] {
+ width: 80px;
+}
+
+li.interval-color-ranges > label:not(:first-child),
+li#li-default-ranges > label:not(:first-child),
li#li-size-item > label:not(:first-child),
li#li-position-item > label:not(:first-child) {
width: initial;