From ac4c091c9eacf107e8e36bf975c5aed2084009c9 Mon Sep 17 00:00:00 2001 From: Daniel Barbero Martin Date: Tue, 21 Jan 2020 17:43:41 +0100 Subject: [PATCH] Fixed errors VC --- .../javascript/pandora_visual_console.js | 887 +++--------------- pandora_console/include/rest-api/index.php | 262 ++---- .../models/VisualConsole/Items/ColorCloud.php | 221 ++++- .../rest-api/models/VisualConsole/View.php | 20 +- pandora_console/include/styles/pandora.css | 17 +- .../include/visual-console-client/vc.main.css | 12 + .../visual-console-client/vc.main.css.map | 2 +- visual_console_client/src/main.css | 12 + 8 files changed, 437 insertions(+), 996 deletions(-) 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;