diff --git a/pandora_agents/pc/Win32/pandora_agent.conf b/pandora_agents/pc/Win32/pandora_agent.conf index b064eba730..27f0326da0 100644 --- a/pandora_agents/pc/Win32/pandora_agent.conf +++ b/pandora_agents/pc/Win32/pandora_agent.conf @@ -1,6 +1,6 @@ # Base config file for Pandora FMS Windows Agent # (c) 2006-2023 Pandora FMS -# Version 7.0NG.774 +# Version 7.0NG.774 # This program is Free Software, you can redistribute it and/or modify it # under the terms of the GNU General Public Licence as published by the Free Software # Foundation; either version 2 of the Licence or any later version diff --git a/pandora_agents/pc/pandora_agent b/pandora_agents/pc/pandora_agent index 67e603b225..88f78e31ac 100644 --- a/pandora_agents/pc/pandora_agent +++ b/pandora_agents/pc/pandora_agent @@ -2179,16 +2179,7 @@ sub configure ($) { #Launch tentacle server in proxy mode if configured if ($Conf{'proxy_mode'}) { - - #Check if user is root - if ($> != 0) { - if (launch_tentacle_proxy() != 0) { - return 1; - } - } else { - error ('Proxy mode can not be launched as root'); - return 1; - } + return 1 if (launch_tentacle_proxy() != 0); } # Add the plugins directory to the PATH diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index 4e0ddda275..f8b810d817 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.774-231211 +Version: 7.0NG.774-231213 Architecture: all Priority: optional Section: admin diff --git a/pandora_agents/unix/DEBIAN/make_deb_package.sh b/pandora_agents/unix/DEBIAN/make_deb_package.sh index b9ad79a017..fe934f5bb2 100644 --- a/pandora_agents/unix/DEBIAN/make_deb_package.sh +++ b/pandora_agents/unix/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.774-231211" +pandora_version="7.0NG.774-231213" echo "Test if you has the tools for to make the packages." whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null diff --git a/pandora_agents/unix/pandora_agent b/pandora_agents/unix/pandora_agent index dea8a1db61..263b12b006 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -1039,7 +1039,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.774'; -use constant AGENT_BUILD => '231211'; +use constant AGENT_BUILD => '231213'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; @@ -4436,14 +4436,7 @@ my $PID = $$; #Launch tentacle server in proxy mode if configured if ($Conf{'proxy_mode'}) { - - #Check if user is root - if ($> != 0) { - launch_tentacle_proxy(); - } else { - log_message ('error', 'Proxy mode can not be launched as root'); - exit 1; - } + launch_tentacle_proxy(); } # Advice if YAML::Tiny is allowed in this system diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index 00ca89e515..c8b79b5432 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.774 -%define release 231211 +%define release 231213 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.redhat_bin.el8.spec b/pandora_agents/unix/pandora_agent.redhat_bin.el8.spec index ca9029cba0..e15c66a2b0 100644 --- a/pandora_agents/unix/pandora_agent.redhat_bin.el8.spec +++ b/pandora_agents/unix/pandora_agent.redhat_bin.el8.spec @@ -5,7 +5,7 @@ %define name pandorafms_agent_linux_bin %define source_name pandorafms_agent_linux %define version 7.0NG.774 -%define release 231211 +%define release 231213 %define debug_package %{nil} Summary: Pandora FMS Linux agent, binary version diff --git a/pandora_agents/unix/pandora_agent.redhat_bin.el9.spec b/pandora_agents/unix/pandora_agent.redhat_bin.el9.spec index f47b8313f5..c8b9c5bab9 100644 --- a/pandora_agents/unix/pandora_agent.redhat_bin.el9.spec +++ b/pandora_agents/unix/pandora_agent.redhat_bin.el9.spec @@ -5,7 +5,7 @@ %define name pandorafms_agent_linux_bin %define source_name pandorafms_agent_linux %define version 7.0NG.774 -%define release 231211 +%define release 231213 %define debug_package %{nil} Summary: Pandora FMS Linux agent, binary version diff --git a/pandora_agents/unix/pandora_agent.redhat_bin.spec b/pandora_agents/unix/pandora_agent.redhat_bin.spec index 547fe315f0..54311de34a 100644 --- a/pandora_agents/unix/pandora_agent.redhat_bin.spec +++ b/pandora_agents/unix/pandora_agent.redhat_bin.spec @@ -5,7 +5,7 @@ %define name pandorafms_agent_linux_bin %define source_name pandorafms_agent_linux %define version 7.0NG.774 -%define release 231211 +%define release 231213 Summary: Pandora FMS Linux agent, binary version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index baec9b3b27..bfeb6b46be 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_agent_linux %define version 7.0NG.774 -%define release 231211 +%define release 231213 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent_installer b/pandora_agents/unix/pandora_agent_installer index 9f2d39b086..ccd8e1bbe9 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.774" -PI_BUILD="231211" +PI_BUILD="231213" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 26255617af..af055f92d2 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{231211} +{231213} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index b053ad9bda..0c717e94de 100644 --- a/pandora_agents/win32/pandora.cc +++ b/pandora_agents/win32/pandora.cc @@ -30,7 +30,7 @@ using namespace Pandora; using namespace Pandora_Strutils; #define PATH_SIZE _MAX_PATH+1 -#define PANDORA_VERSION ("7.0NG.774 Build 231211") +#define PANDORA_VERSION ("7.0NG.774 Build 231213") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index 0a75f5df7d..d0c4b12420 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Pandora FMS" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.774(Build 231211))" + VALUE "ProductVersion", "(7.0NG.774(Build 231213))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 3f268e2383..3db8b82868 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.774-231211 +Version: 7.0NG.774-231213 Architecture: all Priority: optional Section: admin diff --git a/pandora_console/DEBIAN/make_deb_package.sh b/pandora_console/DEBIAN/make_deb_package.sh index cbb2b91142..ed5bacf153 100644 --- a/pandora_console/DEBIAN/make_deb_package.sh +++ b/pandora_console/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.774-231211" +pandora_version="7.0NG.774-231213" package_pear=0 package_pandora=1 diff --git a/pandora_console/extensions/agents_modules_csv.php b/pandora_console/extensions/agents_modules_csv.php index e4a331338f..35893b4414 100644 --- a/pandora_console/extensions/agents_modules_csv.php +++ b/pandora_console/extensions/agents_modules_csv.php @@ -34,11 +34,11 @@ if ((bool) $config['metaconsole']) { include_once $config['homedir'].'/include/functions_modules.php'; include_once $config['homedir'].'/include/functions_users.php'; } else { - include_once '../include/config.php'; - include_once '../include/functions_agents.php'; - include_once '../include/functions_reporting.php'; - include_once '../include/functions_modules.php'; - include_once '../include/functions_users.php'; + include_once __DIR__.'/../include/config.php'; + include_once __DIR__.'/../include/functions_agents.php'; + include_once __DIR__.'/../include/functions_reporting.php'; + include_once __DIR__.'/../include/functions_modules.php'; + include_once __DIR__.'/../include/functions_users.php'; } diff --git a/pandora_console/extensions/pandora_logs.php b/pandora_console/extensions/pandora_logs.php index e63b719cfe..202000e0bf 100644 --- a/pandora_console/extensions/pandora_logs.php +++ b/pandora_console/extensions/pandora_logs.php @@ -31,7 +31,7 @@ function view_logfile($file_name, $toggle=false) } else { $file_size = filesize($file_name); - if ($memory_limit < $file_size) { + if ($memory_limit < $file_size && $memory_limit !== '-1') { $code .= '
'.$file_name.' ('.__('File is too large than PHP memory allocated in the system.').')
'; $code .= ''.__('The preview file is imposible.').'
'; } else if ($file_size > ($config['max_log_size'] * 1000)) { @@ -117,6 +117,7 @@ function pandoralogs_extension_main() view_logfile($config['homedir'].'/log/console.log', true); } + view_logfile('/var/log/php-fpm/www-error.log', true); view_logfile($logs_directory.'/pandora_server.log', true); view_logfile($logs_directory.'/pandora_server.error', true); diff --git a/pandora_console/extras/discovery/DiscoveryApplicationsMigrateCodes.ini b/pandora_console/extras/discovery/DiscoveryApplicationsMigrateCodes.ini index 6323aec140..c0cee7d03f 100644 --- a/pandora_console/extras/discovery/DiscoveryApplicationsMigrateCodes.ini +++ b/pandora_console/extras/discovery/DiscoveryApplicationsMigrateCodes.ini @@ -1,4 +1,4 @@ -pandorafms.vmware=9959cc3e5cc6bfcfadd6d05b56d4a11b +pandorafms.vmware=248788e0fb2cd4e11623e4a52ee7d05b pandorafms.mysql=fadb4750d18285c0eca34f47c6aa3cfe pandorafms.mssql=1cc215409741d19080269ffba112810e pandorafms.oracle=2d9320a514d1e48a0b2804e1653c31c6 diff --git a/pandora_console/extras/mr/67.sql b/pandora_console/extras/mr/67.sql index 2fc576d477..cf3177b158 100644 --- a/pandora_console/extras/mr/67.sql +++ b/pandora_console/extras/mr/67.sql @@ -1107,4 +1107,6 @@ UPDATE `tagente_modulo` INNER JOIN `tservice` ON `tagente_modulo`.`custom_intege UPDATE talert_actions SET field2='[PANDORA] Alert FIRED on _agent_ / _module_ / _timestamp_ / _data_' WHERE id=9; UPDATE talert_actions SET field2='[PANDORA] Alert FIRED on _agent_ / _module_ / _timestamp_ / _data_' WHERE id=11; +UPDATE `tdiscovery_apps` SET `version` = '1.2' WHERE `short_name` = 'pandorafms.vmware'; + COMMIT; diff --git a/pandora_console/general/header.php b/pandora_console/general/header.php index 28311371bf..102d8e3136 100644 --- a/pandora_console/general/header.php +++ b/pandora_console/general/header.php @@ -35,7 +35,7 @@ echo sprintf('', $menuTypeClass); $notifications_numbers['last_id'] ).''; $header_welcome = ''; - if (check_acl($config['id_user'], $group, 'AW')) { + if (check_acl($config['id_user'], 0, 'AW')) { $header_welcome .= ''; $header_welcome .= html_print_image( 'images/wizard@svg.svg', @@ -455,19 +455,28 @@ echo sprintf('', $menuTypeClass); ); $header_logout .= ''; + if (enterprise_installed()) { + $subtitle_header = $config['custom_subtitle_header']; + $class_header = ''; + } else { + $subtitle_header = __('the Flexible Monitoring System (OpenSource version)'); + echo ''; + $class_header = 'underline-hover modal_module_list'; + } + if (is_reporting_console_node() === true) { - echo ''; + echo ''; echo ''; echo $config['custom_title_header']; echo ''; echo ''; - echo $config['custom_subtitle_header']; + echo $subtitle_header; echo ''; echo ''; echo ''; echo ''.$modal_help, $header_user, $header_logout.''; } else { - echo ''.$config['custom_title_header'].''.$config['custom_subtitle_header'].'+ echo ''.$config['custom_title_header'].''.$subtitle_header.''.$header_searchbar.''.$header_autorefresh, $header_autorefresh_counter, $header_discovery, $header_welcome, $servers_list, $modal_help, $header_setup, $header_user, $header_logout.''; } @@ -916,6 +925,46 @@ echo sprintf('', $menuTypeClass); $(document).ready (function () { + + $('.header_left').on('click', function(){ + // Hidden tips modal. + $(".window").css("display", "none"); + jQuery.post( + "ajax.php", + { + page: "include/functions_menu", + 'why_enterprise': "true" + }, + function(data) { + if (data) { + $("#dialog_why_enterprise").html(data); + // Open dialog + $("#dialog_why_enterprise").dialog({ + resizable: false, + draggable: false, + modal: true, + show: { + effect: "fade", + duration: 200 + }, + hide: { + effect: "fade", + duration: 200 + }, + closeOnEscape: true, + width: 700, + height: 450, + close: function(){ + $('#dialog_why_enterprise').html(''); + } + }); + } + }, + "html" + ); + }); + + // Check new notifications on a periodic way setInterval(check_new_notifications, 60000); diff --git a/pandora_console/godmode/agentes/modificar_agente.php b/pandora_console/godmode/agentes/modificar_agente.php index 487fe54e07..5ea31914c6 100644 --- a/pandora_console/godmode/agentes/modificar_agente.php +++ b/pandora_console/godmode/agentes/modificar_agente.php @@ -566,10 +566,10 @@ if ($search != '') { if ($id != '') { $aux = $id[0]['id_agent']; $search_sql = sprintf( - ' AND ( nombre LIKE "%%%s%%" - OR alias LIKE "%%%s%%" - OR comentarios LIKE "%%%s%%" - OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND description LIKE "%%%s%%") + ' AND ( REPLACE(nombre, " ", " ") LIKE "%%%s%%" + OR REPLACE(alias, " ", " ") LIKE "%%%s%%" + OR REPLACE(comentarios, " ", " ") LIKE "%%%s%%" + OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND REPLACE(description, " ", " ") LIKE "%%%s%%") OR tagente.id_agente = %d', $search, $search, @@ -591,10 +591,10 @@ if ($search != '') { $search_sql .= ')'; } else { $search_sql = sprintf( - ' AND ( nombre - LIKE "%%%s%%" OR alias - LIKE "%%%s%%" OR comentarios LIKE "%%%s%%" - OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND description LIKE "%%%s%%"))', + ' AND ( REPLACE(nombre, " ", " ") + LIKE "%%%s%%" OR REPLACE(alias, " ", " ") + LIKE "%%%s%%" OR REPLACE(comentarios, " ", " ") LIKE "%%%s%%" + OR EXISTS (SELECT * FROM tagent_custom_data WHERE id_agent = id_agente AND REPLACE(description, " ", " ") LIKE "%%%s%%"))', $search, $search, $search, diff --git a/pandora_console/godmode/agentes/module_manager.php b/pandora_console/godmode/agentes/module_manager.php index c3772c00d3..b4cd0e2351 100644 --- a/pandora_console/godmode/agentes/module_manager.php +++ b/pandora_console/godmode/agentes/module_manager.php @@ -575,7 +575,7 @@ $where = sprintf('delete_pending = 0 AND id_agente = %s', $id_agente); $search_string_entities = io_safe_input($search_string); $basic_where = sprintf( - "(nombre LIKE '%%%s%%' OR nombre LIKE '%%%s%%' OR descripcion LIKE '%%%s%%' OR descripcion LIKE '%%%s%%') AND", + "(REPLACE(nombre, ' ', ' ') LIKE '%%%s%%' OR REPLACE(nombre, ' ', ' ') LIKE '%%%s%%' OR REPLACE(descripcion, ' ', ' ') LIKE '%%%s%%' OR REPLACE(descripcion, ' ', ' ') LIKE '%%%s%%') AND", $search_string, $search_string_entities, $search_string, diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php index 64710a0c58..ace5659ce7 100644 --- a/pandora_console/godmode/menu.php +++ b/pandora_console/godmode/menu.php @@ -575,12 +575,13 @@ if ($access_console_node === true) { continue; } + $extmenu = []; if ($extension['godmode_menu']['name'] !== __('DB Schema check') && $extension['godmode_menu']['name'] !== __('DB interface')) { $extmenu = $extension['godmode_menu']; } // Check the ACL for this user. - if ((bool) check_acl($config['id_user'], 0, $extmenu['acl']) === false) { + if ((bool) check_acl($config['id_user'], 0, ($extmenu['acl'] ?? '')) === false) { continue; } @@ -732,7 +733,7 @@ if ((bool) $config['pure'] === false) { echo ''; // Need to be here because the translate string. -if (check_acl($config['id_user'], $group, 'AW')) { +if (check_acl($config['id_user'], 0, 'AW')) { ?> diff --git a/pandora_console/godmode/reporting/visual_console_builder.php b/pandora_console/godmode/reporting/visual_console_builder.php index bcfb6f99c9..7c04892524 100755 --- a/pandora_console/godmode/reporting/visual_console_builder.php +++ b/pandora_console/godmode/reporting/visual_console_builder.php @@ -78,6 +78,7 @@ $action = get_parameterBetweenListValues( 'update', 'delete', 'multiple_delete', + 'update_json', ], 'new' ); @@ -526,6 +527,110 @@ switch ($activeTab) { } break; + case 'update_json': + // Update background. + $background = get_parameter('background'); + $width = get_parameter('background_width'); + $height = get_parameter('background_height'); + + if ($width == 0 && $height == 0) { + $sizeBackground = getimagesize( + $config['homedir'].'/images/console/background/'.$background + ); + $width = $sizeBackground[0]; + $height = $sizeBackground[1]; + } + + db_process_sql_update( + 'tlayout', + [ + 'background' => $background, + 'width' => $width, + 'height' => $height, + ], + ['id' => $idVisualConsole] + ); + + // Return the updated visual console. + $visualConsole = db_get_row_filter( + 'tlayout', + ['id' => $idVisualConsole] + ); + + // Update elements in visual map. + $idsElements = db_get_all_rows_filter( + 'tlayout_data', + ['id_layout' => $idVisualConsole], + [ + 'id', + 'type', + ] + ); + + $array_update = json_decode(io_safe_output(get_parameter('array_update')), true); + + if (count($array_update)) { + foreach ($array_update as $row) { + $id = $row['id']; + $values = []; + $values['label'] = $row['label']; + $values['image'] = $row['image']; + $values['width'] = $row['width']; + $values['height'] = $row['height']; + $values['pos_x'] = $row['pos_x']; + $values['pos_y'] = $row['pos_y']; + + switch ($row['rowtype']) { + case NETWORK_LINK: + case LINE_ITEM: + continue 2; + + break; + + case SIMPLE_VALUE_MAX: + case SIMPLE_VALUE_MIN: + case SIMPLE_VALUE_AVG: + $values['period'] = $row['period']; + break; + + case MODULE_GRAPH: + $values['period'] = $row['period']; + unset($values['image']); + break; + + case GROUP_ITEM: + $values['id_group'] = $row['group']; + break; + + case CIRCULAR_PROGRESS_BAR: + case CIRCULAR_INTERIOR_PROGRESS_BAR: + case PERCENTILE_BUBBLE: + case PERCENTILE_BAR: + unset($values['height']); + break; + } + + if (defined('METACONSOLE')) { + $values['id_metaconsole'] = $row['id_server']; + } + + $values['id_agent'] = $row['agent']; + $values['id_agente_modulo'] = $row['module']; + $values['id_custom_graph'] = $row['custom_graph']; + $values['parent_item'] = $row['parent']; + $values['id_layout_linked'] = $row['map_linked']; + + if (enterprise_installed()) { + enterprise_visual_map_update_action_from_list_elements($row['rowtype'], $values, $id); + } + + db_process_sql_update('tlayout_data', $values, ['id' => $id]); + } + + return true; + } + break; + case 'delete': $id_element = get_parameter('id_element'); $result = db_process_sql_delete('tlayout_data', ['id' => $id_element]); diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php index 90b2264793..c1057af585 100644 --- a/pandora_console/godmode/setup/setup_general.php +++ b/pandora_console/godmode/setup/setup_general.php @@ -1142,9 +1142,9 @@ $(document).ready (function () { id_imodule = $(value).attr('value'); $("select[name='inventory_changes_blacklist[]']") .append( - $("") + $("") .val(id_imodule) - .html('' + imodule_name + '') + .text(imodule_name) ); $("#inventory_changes_blacklist_out") .find("option[value='" + id_imodule + "']").remove(); @@ -1170,7 +1170,7 @@ $(document).ready (function () { .append( $("") .val(id_imodule) - .html('' + imodule_name + '') + .text(imodule_name) ); $("#inventory_changes_blacklist") .find("option[value='" + id_imodule + "']").remove(); @@ -1186,12 +1186,15 @@ $(document).ready (function () { } } }); + + $("#inventory_changes_blacklist > option").each(function(key, value) { + $(value).prop('selected',true).trigger('change'); + }); + }); - $("#submit-update_button").click(function () { - $('#inventory_changes_blacklist option').map(function(){ - $(this).prop('selected', true); - }); + $("#inventory_changes_blacklist > option").each(function(key, value) { + $(value).prop('selected',true).trigger('change'); }); }); diff --git a/pandora_console/include/ajax/alert_list.ajax.php b/pandora_console/include/ajax/alert_list.ajax.php index fd00f2eaee..6ed1d582cb 100644 --- a/pandora_console/include/ajax/alert_list.ajax.php +++ b/pandora_console/include/ajax/alert_list.ajax.php @@ -652,30 +652,30 @@ if ($get_agent_alerts_datatable === true) { if (is_metaconsole() === true) { include_once $config['homedir'].'/enterprise/meta/include/functions_alerts_meta.php'; if ($idAgent !== 0) { - $alerts['alerts_simple'] = alerts_meta_get_alerts($agents, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, false, $strict_user, $tag_filter, $action_filter); + $alerts['alerts_simple'] = alerts_meta_get_alerts($agents, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, false, false, $tag_filter, $action_filter); - $countAlertsSimple = alerts_meta_get_alerts($agents, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, $strict_user, $tag_filter, $action_filter); + $countAlertsSimple = alerts_meta_get_alerts($agents, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, false, $tag_filter, $action_filter); } else { $id_groups = array_keys( users_get_groups($config['id_user'], 'AR', false) ); - $alerts['alerts_simple'] = alerts_meta_get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, false, $strict_user, $tag_filter, $action_filter, $search_sg); + $alerts['alerts_simple'] = alerts_meta_get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, false, false, $tag_filter, $action_filter, $search_sg); - $countAlertsSimple = alerts_meta_get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, $strict_user, $tag_filter, $action_filter, $search_sg); + $countAlertsSimple = alerts_meta_get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, false, $tag_filter, $action_filter, $search_sg); } } else { if ($idAgent !== 0) { - $alerts['alerts_simple'] = agents_get_alerts_simple($idAgent, $filter_alert, $options_simple, $whereAlertSimple, false, false, $idGroup, false, $strict_user, $tag_filter); + $alerts['alerts_simple'] = agents_get_alerts_simple($idAgent, $filter_alert, $options_simple, $whereAlertSimple, false, false, $idGroup, false, false, $tag_filter); - $countAlertsSimple = agents_get_alerts_simple($idAgent, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, $strict_user, $tag_filter); + $countAlertsSimple = agents_get_alerts_simple($idAgent, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, false, $tag_filter); } else { $id_groups = array_keys( users_get_groups($config['id_user'], $access, false) ); - $alerts['alerts_simple'] = get_group_alerts($id_groups, $filter_alert, $options_simple, $whereAlertSimple, false, false, $idGroup, false, $strict_user, $tag_filter, $action_filter, false, $search_sg); + $alerts['alerts_simple'] = get_group_alerts($id_groups, $filter_alert, $options_simple, $whereAlertSimple, false, false, $idGroup, false, false, $tag_filter, $action_filter, false, $search_sg); - $countAlertsSimple = get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, $strict_user, $tag_filter, $action_filter, false, $search_sg); + $countAlertsSimple = get_group_alerts($id_groups, $filter_alert, false, $whereAlertSimple, false, false, $idGroup, true, false, $tag_filter, $action_filter, false, $search_sg); } } diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php index e4eba79858..67e9ad648f 100755 --- a/pandora_console/include/ajax/module.php +++ b/pandora_console/include/ajax/module.php @@ -756,6 +756,7 @@ if (check_login()) { $access = ($agent_a === true) ? 'AR' : (($agent_w === true) ? 'AW' : 'AR'); $id_agent = (int) get_parameter('id_agente'); $id_agente = $id_agent; + $id_grupo = agents_get_agent_group($id_agent); $show_notinit = (bool) get_parameter('show_notinit'); $cluster_list = (int) get_parameter('cluster_list'); $sortField = (string) get_parameter('sort_field'); diff --git a/pandora_console/include/class/ConfigPEN.class.php b/pandora_console/include/class/ConfigPEN.class.php index cea6123f08..6e2f7ec1f6 100644 --- a/pandora_console/include/class/ConfigPEN.class.php +++ b/pandora_console/include/class/ConfigPEN.class.php @@ -118,7 +118,7 @@ class ConfigPEN extends HTML if (is_array($filter)) { if (!empty($filter['free_search'])) { $sql_filters[] = vsprintf( - ' AND (lower(`manufacturer`) like lower("%%%s%%") + ' AND (lower(REPLACE(manufacturer, " ", " ")) like lower("%%%s%%") OR pen = "%s") ', array_fill(0, 2, $filter['free_search']) ); diff --git a/pandora_console/include/class/Diagnostics.class.php b/pandora_console/include/class/Diagnostics.class.php index ea3caaf276..9d4a3b2901 100644 --- a/pandora_console/include/class/Diagnostics.class.php +++ b/pandora_console/include/class/Diagnostics.class.php @@ -701,6 +701,10 @@ class Diagnostics extends Wizard { global $config; + // Get version comment DB. + $sql_version_comment = 'select @@version_comment as version_comment'; + $version_comment = db_get_sql($sql_version_comment); + $result = [ 'error' => false, 'data' => [ @@ -716,6 +720,14 @@ class Diagnostics extends Wizard 'name' => __('DB Schema Build'), 'value' => $config['db_scheme_build'], ], + 'dbVersion' => [ + 'name' => __('Engine version'), + 'value' => $config['dbconnection']->server_info, + ], + 'dbVersionComment' => [ + 'name' => __('Version comment'), + 'value' => $version_comment, + ], ], ]; diff --git a/pandora_console/include/class/TreeService.class.php b/pandora_console/include/class/TreeService.class.php index b30877a5b5..177a45a54f 100644 --- a/pandora_console/include/class/TreeService.class.php +++ b/pandora_console/include/class/TreeService.class.php @@ -333,6 +333,7 @@ class TreeService extends Tree $services[$service['id']]['id'] = $service['id']; $services[$service['id']]['description'] = $service['description']; $services[$service['id']]['serviceDetail'] = 'index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.(int) $service['id']; + $services[$service['id']]['title'] = services_get_parents_title((int) $service['id']); } return $services; @@ -627,6 +628,7 @@ class TreeService extends Tree $tmp['type'] = 'services'; $tmp['rootType'] = 'services'; $tmp['children'] = []; + $tmp['servicesChildren'] = services_get_services_children($item->service()->id()); $tmp['serviceDetail'] = ui_get_full_url( 'index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.$item->service()->id() ); @@ -731,7 +733,10 @@ class TreeService extends Tree if (isset($this->filter['searchService']) === true && empty($this->filter['searchService']) === false ) { - return " AND (ts.name LIKE '%".$this->filter['searchService']."%' OR ts.description LIKE '%".$this->filter['searchService']."%')"; + $whereAncestors = ' AND ts.name LIKE "%'.$this->filter['searchService'].'%" + OR ts.description LIKE "%'.$this->filter['searchService'].'%"'; + + return $whereAncestors; } return ''; diff --git a/pandora_console/include/class/WelcomeWindow.class.php b/pandora_console/include/class/WelcomeWindow.class.php index dec741c3f0..2e2e143a62 100644 --- a/pandora_console/include/class/WelcomeWindow.class.php +++ b/pandora_console/include/class/WelcomeWindow.class.php @@ -606,7 +606,7 @@ class WelcomeWindow extends Wizard ], [ 'arguments' => [ - 'label' => __("Let's do it!"), + 'label' => __('Let's do it!'), 'type' => 'button', 'attributes' => [ 'class' => 'secondary', diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index ccf7174e57..a06a174ade 100644 --- a/pandora_console/include/config_process.php +++ b/pandora_console/include/config_process.php @@ -20,7 +20,7 @@ /** * Pandora build version and version */ -$build_version = 'PC231211'; +$build_version = 'PC231213'; $pandora_version = 'v7.0NG.774'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/include/functions_api.php b/pandora_console/include/functions_api.php index 8f5fb66f54..bf1c1b3004 100644 --- a/pandora_console/include/functions_api.php +++ b/pandora_console/include/functions_api.php @@ -10301,8 +10301,7 @@ function api_set_module_data($id, $thrash2, $other, $trash1) modules_get_type_name($agentModule['id_tipo_modulo']), $data ); - - if (false === @file_put_contents($config['remote_config'].'/'.io_safe_output($agent['nombre']).'.'.$time.'.data', $xml)) { + if (false === @file_put_contents($config['remote_config'].'/'.io_safe_output($agent['nombre']).'.'.$idAgentModule.'.'.$time.'.data', $xml)) { returnError(sprintf('XML file could not be generated in path: %s', $config['remote_config'])); } else { echo __('XML file was generated successfully in path: ').$config['remote_config']; diff --git a/pandora_console/include/functions_custom_graphs.php b/pandora_console/include/functions_custom_graphs.php index 500b668a24..f76dc7c0f7 100644 --- a/pandora_console/include/functions_custom_graphs.php +++ b/pandora_console/include/functions_custom_graphs.php @@ -194,11 +194,11 @@ function custom_graphs_get_user($id_user=0, $only_names=false, $returnAllGroup=t function custom_graphs_search($id_group, $search) { if ($id_group != '' && $search != '') { - $all_graphs = db_get_all_rows_sql('select * from tgraph where id_group = '.$id_group.' AND (name LIKE "%'.$search.'%" OR description LIKE "'.$search.'")'); + $all_graphs = db_get_all_rows_sql('select * from tgraph where id_group = '.$id_group.' AND (REPLACE(name, " ", " ") LIKE "%'.$search.'%" OR REPLACE(description, " ", " ") LIKE "'.$search.'")'); } else if ($id_group != '') { $all_graphs = db_get_all_rows_sql('select * from tgraph where id_group = '.$id_group.''); } else { - $all_graphs = db_get_all_rows_sql('select * from tgraph where name LIKE "%'.$search.'%" OR description LIKE "'.$search.'"'); + $all_graphs = db_get_all_rows_sql('select * from tgraph where REPLACE(name, " ", " ") LIKE "%'.$search.'%" OR REPLACE(description, " ", " ") LIKE "'.$search.'"'); } if ($all_graphs === false) { diff --git a/pandora_console/include/functions_filemanager.php b/pandora_console/include/functions_filemanager.php index aee3d88730..a390ee2c1a 100644 --- a/pandora_console/include/functions_filemanager.php +++ b/pandora_console/include/functions_filemanager.php @@ -128,19 +128,18 @@ function upload_file($upload_file_or_zip, $default_real_directory, $destination_ $extension = pathinfo($filename, PATHINFO_EXTENSION); $umask = io_safe_output((string) get_parameter('umask')); - $parse_all_queries = explode('&', parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY)); - $parse_sec2_query = explode('=', $parse_all_queries[1]); - $check_extension = true; - if ($parse_sec2_query[1] === 'operation/snmpconsole/snmp_mib_uploader') { - if ((strtolower($extension) !== 'mib' && strtolower($extension) !== 'zip')) { - $check_extension = false; - } else { - $check_extension = true; - } - } - + // $parse_all_queries = explode('&', parse_url($_SERVER['HTTP_REFERER'], PHP_URL_QUERY)); + // $parse_sec2_query = explode('=', $parse_all_queries[1]); + // $check_extension = true; + // if ($parse_sec2_query[1] === 'operation/snmpconsole/snmp_mib_uploader') { + // if ((strtolower($extension) !== 'mib' && strtolower($extension) !== 'zip')) { + // $check_extension = false; + // } else { + // $check_extension = true; + // } + // } // (strtolower($extension) !== 'mib' && strtolower($extension) !== 'zip') - if (strpos($real_directory, $default_real_directory) !== 0 || $check_extension === false) { + if (strpos($real_directory, $default_real_directory) !== 0) { // Perform security check to determine whether received upload // directory is part of the default path for caller uploader and // user is not trying to access an external path (avoid @@ -152,12 +151,12 @@ function upload_file($upload_file_or_zip, $default_real_directory, $destination_ // Copy file to directory and change name. $nombre_archivo = sprintf('%s/%s', $real_directory, $filename); try { - $mimeContentType = mime_content_type($_FILES['file']['tmp_name']); - - if (empty($filterFilesType) === true || in_array($mimeContentType, $filterFilesType) === true) { + $ext = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION)); + if (empty($filterFilesType) === true || in_array($ext, $filterFilesType) === true) { $result = copy($_FILES['file']['tmp_name'], $nombre_archivo); } else { - $error_message = 'The uploaded file is not allowed. Only gif, png or jpg files can be uploaded.'; + $types_allowed = implode(', ', $filterFilesType); + $error_message = 'The uploaded file is not allowed. Only '.$types_allowed.' files can be uploaded.'; throw new Exception(__($error_message)); } } catch (Exception $ex) { @@ -199,19 +198,29 @@ function upload_file($upload_file_or_zip, $default_real_directory, $destination_ $filepath = $_FILES['file']['tmp_name']; $real_directory = filemanager_safe_directory($destination_directory); $secure = true; - if ($parse_sec2_query[1] === 'operation/snmpconsole/snmp_mib_uploader') { - // Security control structure. - $zip = new \ZipArchive; - if ($zip->open($filepath) === true) { - for ($i = 0; $i < $zip->numFiles; $i++) { - $unzip_filename = $zip->getNameIndex($i); - $extension = pathinfo($unzip_filename, PATHINFO_EXTENSION); - if (strtolower($extension) !== 'mib') { - $secure = false; - break; + try { + $ext = strtolower(pathinfo($_FILES['file']['name'], PATHINFO_EXTENSION)); + if (empty($filterFilesType) === true || in_array($ext, $filterFilesType) === true) { + // Security control structure. + $zip = new \ZipArchive; + if ($zip->open($filepath) === true) { + for ($i = 0; $i < $zip->numFiles; $i++) { + $unzip_filename = $zip->getNameIndex($i); + $extension = pathinfo($unzip_filename, PATHINFO_EXTENSION); + if (in_array(strtolower($extension), $filterFilesType) === false) { + $error_message = 'The uploaded file is not allowed. Only '.$types_allowed.' files can be uploaded.'; + $secure = false; + throw new Exception(__($error_message)); + } } } } + } catch (Exception $ex) { + db_pandora_audit( + AUDIT_LOG_FILE_MANAGER, + 'Error Uploading files: '.$ex->getMessage() + ); + $config['filemanager']['message'] = ui_print_error_message(__('Upload error').': '.$ex->getMessage()); } if (strpos($real_directory, $default_real_directory) !== 0 || $secure === false) { diff --git a/pandora_console/include/functions_inventory.php b/pandora_console/include/functions_inventory.php index 8e69da7445..afa61c3811 100644 --- a/pandora_console/include/functions_inventory.php +++ b/pandora_console/include/functions_inventory.php @@ -77,7 +77,7 @@ function inventory_get_data( } if ($inventory_search_string != '') { - array_push($where, "tagent_module_inventory.data LIKE '%".$inventory_search_string."%'"); + array_push($where, "REPLACE(tagent_module_inventory.data, ' ', ' ') LIKE '%".$inventory_search_string."%'"); } $offset = (int) get_parameter('offset'); @@ -746,7 +746,7 @@ function inventory_get_datatable( } if ($inventory_search_string != '') { - array_push($where, "tagent_module_inventory.data LIKE '%".$inventory_search_string."%'"); + array_push($where, "REPLACE(tagente_datos_inventory.data, ' ', ' ') LIKE '%".$inventory_search_string."%'"); } if ($utimestamp > 0) { @@ -786,7 +786,6 @@ function inventory_get_datatable( } $rows = db_get_all_rows_sql($sql); - if ($order_by_agent === false) { $modules = []; foreach ($rows as $row) { @@ -796,7 +795,13 @@ function inventory_get_datatable( $data_rows = explode(PHP_EOL, $row['data_inventory']); foreach ($data_rows as $data_key => $data_value) { - if (empty($data_value) === false) { + if (empty($inventory_search_string) !== true) { + $search_check = strpos(str_replace(' ', ' ', $data_value), $inventory_search_string); + } else { + $search_check = true; + } + + if (empty($data_value) === false && $search_check !== false) { $row['data'] = $data_value; $modules[$row['name']][$row['name_agent'].'-'.$data_key.'-'.$data_value] = $row; } @@ -889,7 +894,7 @@ function get_data_basic_info_sql($params, $count=false) if ($params['search'] > 0) { $where .= sprintf( - ' AND ( alias LIKE "%%%s%%" )', + ' AND ( REPLACE(alias, " ", " ") LIKE "%%%s%%" )', $params['search'] ); } diff --git a/pandora_console/include/functions_menu.php b/pandora_console/include/functions_menu.php index 66b14a2776..9e901f48e3 100644 --- a/pandora_console/include/functions_menu.php +++ b/pandora_console/include/functions_menu.php @@ -330,7 +330,7 @@ function menu_print_menu(&$menu) if (isset($sub['type']) && $sub['type'] == 'direct') { // This is an external link. - $submenu_output .= ''; + $submenu_output .= ' '; if (isset($sub['subtype']) && $sub['subtype'] == 'nolink') { $submenu_output .= ' '; @@ -875,6 +875,7 @@ function menu_pepare_acl_select_data($pages, $sec) if (is_ajax()) { $about = (bool) get_parameter('about'); $about_operation = (bool) get_parameter('about_operation'); + $why_enterprise = (bool) get_parameter('why_enterprise'); if ($about) { global $config; global $pandora_version; @@ -1107,10 +1108,10 @@ if (is_ajax()) {@@ -1370,4 +1371,50 @@ if (is_ajax()) { echo $dialog; } + + if ($why_enterprise) { + global $config; + global $pandora_version; + $product_name = io_safe_output(get_product_name()); + + $lts_name = ''; + if (empty($config['lts_name']) === false) { + $lts_name = ' '.$config['lts_name'].''; + } + + $image_about = ui_get_full_url('/images/custom_logo/logo-default-pandorafms-collapsed.svg', false, false, false); + $url_why_enterprise = 'https://pandorafms.com/en/why-enterprise/'; + $lang = users_get_user_by_id($config['id_user'])['language']; + if ($lang === 'es') { + $url_why_enterprise = 'https://pandorafms.com/es/por-que-pandora-fms-enterprise/'; + } + + $dialog = ' + - '.$db_info->data->dbSize->name.'
+'.$db_info->data->dbVersion->name.'
- '.$db_info->data->dbSize->value.'
+'.$db_info->data->dbVersion->value.'
++ '; + + echo $dialog; + } } diff --git a/pandora_console/include/functions_modules.php b/pandora_console/include/functions_modules.php index ea776d6fe3..6ec74b33de 100755 --- a/pandora_console/include/functions_modules.php +++ b/pandora_console/include/functions_modules.php @@ -2624,12 +2624,26 @@ function modules_get_agentmodule_data_for_humans($module) $salida = human_milliseconds_to_string($module['datos']); } } else { - $salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision'], $config['decimal_separator'], $config['thousand_separator'])); + $salida = remove_right_zeros( + number_format( + $module['datos'], + $config['graph_precision'], + $config['decimal_separator'], + ($config['thousand_separator'] ?? null) + ) + ); } break; default: - $salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision'], $config['decimal_separator'], $config['thousand_separator'])); + $salida = remove_right_zeros( + number_format( + $module['datos'], + $config['graph_precision'], + $config['decimal_separator'], + ($config['thousand_separator'] ?? null) + ) + ); break; } break; @@ -2648,12 +2662,26 @@ function modules_get_agentmodule_data_for_humans($module) $salida = human_milliseconds_to_string($module['datos']); } } else { - $salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision'], $config['decimal_separator'], $config['thousand_separator'])); + $salida = remove_right_zeros( + number_format( + $module['datos'], + $config['graph_precision'], + $config['decimal_separator'], + ($config['thousand_separator'] ?? null) + ) + ); } break; default: - $salida = remove_right_zeros(number_format($module['datos'], $config['graph_precision'], $config['decimal_separator'], $config['thousand_separator'])); + $salida = remove_right_zeros( + number_format( + $module['datos'], + $config['graph_precision'], + $config['decimal_separator'], + ($config['thousand_separator'] ?? null) + ) + ); break; } } @@ -2935,7 +2963,14 @@ function modules_get_status($id_agent_module, $db_status, $data, &$status, &$tit } if (is_numeric($data)) { - $title .= ': '.remove_right_zeros(number_format($data, $config['graph_precision'], $config['decimal_separator'], $config['thousand_separator'])); + $title .= ': '.remove_right_zeros( + number_format( + $data, + $config['graph_precision'], + $config['decimal_separator'], + ($config['thousand_separator'] ?? null) + ) + ); } else { $text = io_safe_output($data); diff --git a/pandora_console/include/functions_reporting_html.php b/pandora_console/include/functions_reporting_html.php index 1b91b0124e..c9bbe38b2f 100644 --- a/pandora_console/include/functions_reporting_html.php +++ b/pandora_console/include/functions_reporting_html.php @@ -1279,7 +1279,7 @@ function reporting_html_SLA($table, $item, $mini, $pdf=0) $table3->headstyle[5] = 'text-align: right'; foreach ($item['data'] as $sla) { - if (isset($sla) === true) { + if (isset($sla) === true && empty($sla['agent']) === false) { // First_table. $row = []; $row[] = $sla['agent']; diff --git a/pandora_console/include/javascript/tree/TreeController.js b/pandora_console/include/javascript/tree/TreeController.js index 9d28ec9641..06274600ed 100644 --- a/pandora_console/include/javascript/tree/TreeController.js +++ b/pandora_console/include/javascript/tree/TreeController.js @@ -1486,6 +1486,11 @@ var TreeController = { return 0; }); + //Search service criterion + const searchFilter = controller.filter.searchService; + if (searchFilter && controller.finded !== 1) { + rawTree = _filterItems(rawTree, searchFilter); + } _.each(rawTree, function(element) { element.jqObject = _processNode($group, element); }); @@ -1551,6 +1556,67 @@ var TreeController = { // Add again the hover event to the 'force_callback' elements forced_title_callback(); + + /** + * Filter the tree based on a search criterion + */ + function _filterItems(rawTree, searched) { + const ancestors = []; + const father = []; + const newTree = []; + const tmpTree = []; + rawTree.map((raw, index) => { + if (raw.type === "services") { + if (raw.servicesChildren.length !== 0) { + // search at parent level + let descr = raw.description.toLowerCase(); + let sear = searched.toLowerCase(); + let findedPadre = descr.indexOf(sear); + if (findedPadre === -1) { + father.push(raw.id); + } else if (findedPadre >= 0) { + ancestors.push(raw.id); + } else { + //we mark the father as found + controller.finded = 1; + } + } else { + let finded = raw.description.indexOf(searched); + if (finded === -1) { + delete rawTree[index]; + } + } + } + }); + + if (ancestors.length >= 1) { + ancestors.map(ancestor => { + newTree.push( + rawTree.filter(item => item.id === parseInt(ancestor)) + ); + }); + + return newTree[0]; + } + + if (father.length >= 1) { + let filterfather = [...new Set(father)]; + + filterfather.map(father => { + tmpTree.push(rawTree.filter(raw => raw.id == father)); + }); + + let tree = [...new Set(tmpTree)]; + tree.map(item => { + let tmpItem = item[0]; + newTree.push(tmpItem); + }); + + return newTree; + } + + return rawTree.filter(item => item); + } }, load: function() { this.reload(); diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 77d11fa309..2abb76f6ff 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -8764,6 +8764,10 @@ div.graph div.legend table { text-decoration: underline; } +.underline-hover:hover { + text-decoration: underline; +} + .w105px { width: 105px; } @@ -10256,6 +10260,14 @@ div#err_msg_centralised { align-items: flex-start; } +.div-col-4 { + width: 25%; + display: flex; + flex-direction: column; + align-items: flex-start; + margin-top: 10px; +} + .div-span { width: 100%; color: #161628; @@ -12870,6 +12882,14 @@ tr.shown td.details-control { color: black; } +.span_as_label { + font-size: 13px; + line-height: 16px; + color: #161628; + font-weight: bold; + margin-bottom: 10px; +} + .basic-options-disabled tr > td, .basic-options-disabled tr > td > div > label { color: gray; diff --git a/pandora_console/include/visual-console-client/vc.main.css b/pandora_console/include/visual-console-client/vc.main.css index 98d39f6cad..f146c0fc94 100644 --- a/pandora_console/include/visual-console-client/vc.main.css +++ b/pandora_console/include/visual-console-client/vc.main.css @@ -743,6 +743,9 @@ p { margin-block-end: 1em; } +strong { + font-size: inherit; +} /* Styles for the solid icons */ .fa { 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 b801994300..fcf332155e 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,"file":"vc.main.css","mappings":"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","sources":["webpack://pandora-fms-visual-console/./src/main.css","webpack://pandora-fms-visual-console/./src/lib/FontAwesomeIcon.styles.css","webpack://pandora-fms-visual-console/./src/lib/autocomplete.css","webpack://pandora-fms-visual-console/./src/items/Clock/styles.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 margin-top: 5px;\n}\n\n.is-maintenance {\n background-image: url(./lib/maintenanceMode.png) !important;\n}\n\n.is-maintenance :nth-child(1) {\n display: none;\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 * {\n overflow: visible;\n font-family: inherit;\n line-height: inherit;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\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:hover {\n border-color: #2b2b2b;\n}\n\n.visual-console-item.is-editing.is-selected {\n border: 2px dashed #82b92e;\n cursor: move;\n z-index: 10;\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 z-index: 10;\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-item.is-alert-triggered {\n border: 3px solid #f36201;\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 z-index: 10;\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-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-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-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 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#modalVCItemForm #textarea_label_ifr {\n background-color: #c9cfcd;\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/* 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-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\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\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}\n\n.discovery.modal select {\n width: 100px;\n}\n\n.discovery.modal div#period_manual select,\n.discovery.modal div#period_manual input,\n.discovery.modal div#period_default select,\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.discovery.modal div#period_default select#period_select,\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 20%;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n max-height: 50px;\n min-height: 35px;\n margin: 1%;\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: 0%;\n width: 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: 0%;\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 min-width: fit-content;\n min-height: fit-content;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\ndiv.simple-value > div {\n max-height: -webkit-fill-available;\n}\n\ndiv.module-graph .parent_graph p table tr {\n height: 25px;\n}\n\ndiv.module-graph {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n}\n\ndiv.basic-chart {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-end;\n justify-content: center;\n}\n\n.basic-chart-header {\n height: 40%;\n width: 100%;\n display: flex;\n}\n\n.basic-chart-header-name {\n margin: 0;\n padding: 0;\n height: 100%;\n width: 80%;\n display: flex;\n align-items: center;\n font-size: 2.5vmin;\n margin-left: 3%;\n}\n\n.basic-chart-header-value {\n margin: 0;\n padding: 0;\n height: 100%;\n width: 20%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 2.5vmin;\n}\n\ndiv.module-graph .gauge_d3_class {\n flex: 1 1 100px;\n float: none !important;\n overflow: inherit !important;\n text-align: center;\n}\n\n.textDecorationNone:hover {\n text-decoration: none;\n}\n\n.vc-item-nl-label {\n border-radius: 5px;\n background-color: #fff;\n padding: 5px;\n padding-left: 1em;\n font-size: 14px;\n}\n\n.odometer {\n overflow: hidden !important;\n}\n\n.odometer-container {\n width: 100%;\n height: 100%;\n overflow: hidden;\n text-align: center;\n display: flex;\n align-items: flex-end;\n}\n\n.odometer-a {\n z-index: 5;\n position: absolute;\n width: 65%;\n height: 65%;\n left: calc(17.5%);\n border-radius: 1000px 1000px 0px 0px;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex-direction: column;\n line-height: 0px;\n}\n\n.odometer-b {\n z-index: 4;\n position: relative;\n width: 95%;\n height: 95%;\n border-radius: 0px 0px 1000px 1000px;\n transform-origin: center top;\n transition: all 1.3s ease-in-out;\n top: calc(95%);\n left: calc(2.5%);\n}\n\n.odometer-c {\n z-index: 3;\n position: absolute;\n width: 96%;\n height: 96%;\n left: calc(2%);\n background-color: #202226;\n margin-left: auto;\n margin-right: auto;\n border-radius: 1000px 1000px 0px 0px;\n transform-origin: center top;\n transition: all 1.3s ease-in-out;\n}\n\n.odometer-d {\n z-index: 0;\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: #82b92e;\n margin-left: auto;\n margin-right: auto;\n border-radius: 1000px 1000px 0px 0px;\n transform-origin: center top;\n transition: all 1.3s ease-in-out;\n}\n\n.gauge-data {\n z-index: 4;\n color: #fff;\n font-size: 1.5em;\n width: 100%;\n height: 100%;\n transition: all 1s ease-out;\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: flex-end;\n}\n\n.svg_warning {\n fill: #f3b200;\n}\n\n.svg_warning_hide {\n fill: #fff !important;\n}\n\n.gauge-data #percent {\n color: #000;\n}\n\n.orange_background {\n background: #ffa631;\n}\n.red_background {\n background: #e63c52;\n}\n.yellow_background {\n background: #f3b200;\n}\n.grey_background {\n background: #b2b2b2;\n}\n.blue_background {\n background: #4a83f3;\n}\n.green_background {\n background: #82b92e;\n}\n\n#box-rectangle-selection {\n position: absolute;\n width: 0px;\n height: 0px;\n border: 2px solid #002f33;\n}\n\np {\n margin-block-start: 1em;\n margin-block-end: 1em;\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","/* Digital clock */\n\n.visual-console-item .digital-clock {\n display: flex;\n flex-direction: column;\n justify-content: space-evenly;\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-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"],"names":[],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"vc.main.css","mappings":"AAAA;EACE,gBAAgB;EAChB,kBAAkB;EAClB,4BAA4B;EAC5B,0BAA0B;EAC1B,2BAA2B;EAC3B,eAAe;AACjB;;AAEA;EACE,oEAA2D;AAC7D;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,qBAAqB;EACrB,mBAAmB;EACnB,iBAAiB;EACjB,UAAU;AACZ;;AAEA;EACE,UAAU;AACZ;;AAEA;EACE,iBAAiB;EACjB,oBAAoB;EACpB,oBAAoB;EACpB,mCAAmC;EACnC,kCAAkC;EAClC,kCAAkC;AACpC;;AAEA;EACE,0BAA0B;EAC1B,4CAA4C;EAC5C,iBAAiB;AACnB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,0BAA0B;EAC1B,YAAY;EACZ,WAAW;AACb;AACA;EACE,YAAY;EACZ,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,WAAW;EACX,YAAY;EACZ,mDAAoC;EACpC,iBAAiB;EACjB,WAAW;AACb;;AAEA;EACE,oBAAoB;AACtB;;AAEA;EACE;IACE,uBAAuB;EACzB;EACA;IACE,wBAAwB;EAC1B;AACF;;AAEA;EACE,yBAAyB;AAC3B;;AAEA;EACE,6BAA6B;EAC7B,gBAAgB;EAChB,qCAAqC;EACrC,uCAAuC;EACvC,wCAAwC;EACxC,4CAA4C;;EAE5C,+BAA+B;EAC/B,wBAAwB;EACxB,mCAAmC;EACnC,iCAAiC;AACnC;;AAEA;;EAEE,cAAc;EACd,WAAW;EACX,YAAY;EACZ,kBAAkB;AACpB;;AAEA;;EAEE,WAAW;EACX,YAAY;AACd;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,YAAY;EACZ,8BAA8B;EAC9B,WAAW;AACb;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,aAAa;AACf;;AAEA,QAAQ;AACR;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,mBAAmB;EACnB,eAAe;EACf,gBAAgB;EAChB,cAAc;EACd,kBAAkB;AACpB;AACA;EACE,gBAAgB;AAClB;;AAEA;;EAEE,YAAY;EACZ,eAAe;EACf,6BAA6B;EAC7B,YAAY;EACZ,gBAAgB;EAChB,6BAA6B;EAC7B,oBAAoB;EACpB,wBAAwB;EACxB,sBAAsB;EACtB,kBAAkB;EAClB,iBAAiB;AACnB;;AAEA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;;AAEA;EACE,oBAAoB;EACpB,eAAe;AACjB;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,eAAe;AACjB;;AAEA;EACE,WAAW;EACX,mBAAmB;EACnB,kBAAkB;AACpB;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,eAAe;EACf,uBAAuB;AACzB;;AAEA;EACE,kBAAkB;EAClB,gBAAgB;AAClB;;AAEA;;EAEE,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,mBAAmB;AACrB;;AAEA;EACE,uBAAuB;EACvB,kBAAkB;EAClB,kBAAkB;EAClB,0BAA0B;EAC1B,cAAc;AAChB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,sBAAsB;EACtB,eAAe;EACf,uBAAuB;EACvB,8BAA8B;EAC9B,YAAY;AACd;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,iBAAiB;AACnB;;AAEA;;;EAGE,sBAAsB;AACxB;;AAEA;EACE,mBAAmB;AACrB;;AAEA;EACE,WAAW;EACX,WAAW;AACb;;AAEA;EACE,yBAAyB;AAC3B;;AAEA,+BAA+B;;AAE/B;EACE,qBAAqB;EACrB,SAAS;AACX;;AAEA;;;;EAIE,WAAW;EACX,YAAY;AACd;;AAEA;;EAEE,WAAW;EACX,YAAY;AACd;;AAEA;;EAEE,WAAW;EACX,YAAY;AACd;;AAEA;EACE,qCAAqC;AACvC;;AAEA;EACE,uCAAuC;AACzC;;AAEA;EACE;IACE,uBAAuB;EACzB;EACA;IACE,yBAAyB;EAC3B;AACF;;AAEA;EACE,6CAA6C;EAC7C,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,yBAAyB;EACzB,mBAAmB;EACnB,gBAAgB;EAChB,yEAAyE;EACzE,kBAAkB;EAClB,UAAU;EACV,cAAc;EACd,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,aAAa;EACb,eAAe;EACf,sBAAsB;EACtB,gCAAgC;EAChC,6BAA6B;AAC/B;AACA;EACE,WAAW;EACX,yBAAyB;AAC3B;AACA;EACE,0DAA0D;EAC1D,uCAAuC;EACvC,cAAc;AAChB;;AAEA,kBAAkB;;AAElB;EACE,oBAAoB;EACpB,oBAAoB;EACpB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,qBAAqB;EACrB,qBAAqB;EACrB,mBAAmB;AACrB;;AAEA;EACE,0BAA0B;EAC1B,kCAAkC;EAClC,wCAAwC;AAC1C;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,eAAe;AACjB;;AAEA,iBAAiB;;AAEjB;EACE,kBAAkB;AACpB;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,8CAA8C;AAChD;;AAEA;EACE,4CAA4C;AAC9C;;AAEA;EACE,yBAAyB;EACzB,WAAW;AACb;;AAEA;EACE,WAAW;EACX,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,8BAA8B;AAChC;;AAEA;EACE,kBAAkB;AACpB;;AAEA;EACE,8BAA8B;AAChC;;AAEA;;EAEE,kBAAkB;AACpB;;AAEA;;EAEE,WAAW;AACb;;AAEA;;;;EAIE,cAAc;EACd,iBAAiB;AACnB;;AAEA;EACE,aAAa;EACb,mBAAmB;EACnB,yBAAyB;AAC3B;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,mBAAmB;EACnB,cAAc;AAChB;;AAEA;EACE,YAAY;AACd;;AAEA;;;;;;EAME,6BAA6B;AAC/B;AACA;;EAEE,gBAAgB;EAChB,cAAc;AAChB;;AAEA;;EAEE,aAAa;AACf;;AAEA;EACE,iBAAiB;AACnB;;AAEA;EACE,yBAAyB;AAC3B;;AAEA,kCAAkC;AAClC;EACE,aAAa;EACb,sBAAsB;EACtB,WAAW;EACX,YAAY;AACd;AACA;EACE,WAAW;EACX,WAAW;EACX,yBAAyB;EACzB,YAAY;EACZ,iBAAiB;EACjB,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,WAAW;EACX,WAAW;EACX,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,WAAW;EACX,mBAAmB;AACrB;;AAEA;EACE,aAAa;EACb,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,gBAAgB;EAChB,gBAAgB;EAChB,UAAU;AACZ;;AAEA;EACE,OAAO;EACP,WAAW;EACX,eAAe;EACf,WAAW;EACX,WAAW;EACX,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,OAAO;EACP,uBAAuB;EACvB,YAAY;EACZ,eAAe;EACf,WAAW;EACX,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;;EAEE,sBAAsB;EACtB,uBAAuB;EACvB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;AACzB;;AAEA;EACE,kCAAkC;AACpC;;AAEA;EACE,YAAY;AACd;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,mBAAmB;EACnB,uBAAuB;AACzB;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,eAAe;EACf,qBAAqB;EACrB,uBAAuB;AACzB;;AAEA;EACE,WAAW;EACX,WAAW;EACX,aAAa;AACf;;AAEA;EACE,SAAS;EACT,UAAU;EACV,YAAY;EACZ,UAAU;EACV,aAAa;EACb,mBAAmB;EACnB,kBAAkB;EAClB,eAAe;AACjB;;AAEA;EACE,SAAS;EACT,UAAU;EACV,YAAY;EACZ,UAAU;EACV,aAAa;EACb,mBAAmB;EACnB,uBAAuB;EACvB,kBAAkB;AACpB;;AAEA;EACE,eAAe;EACf,sBAAsB;EACtB,4BAA4B;EAC5B,kBAAkB;AACpB;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,kBAAkB;EAClB,sBAAsB;EACtB,YAAY;EACZ,iBAAiB;EACjB,eAAe;AACjB;;AAEA;EACE,2BAA2B;AAC7B;;AAEA;EACE,WAAW;EACX,YAAY;EACZ,gBAAgB;EAChB,kBAAkB;EAClB,aAAa;EACb,qBAAqB;AACvB;;AAEA;EACE,UAAU;EACV,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,iBAAiB;EACjB,oCAAoC;EACpC,aAAa;EACb,mBAAmB;EACnB,yBAAyB;EACzB,sBAAsB;EACtB,gBAAgB;AAClB;;AAEA;EACE,UAAU;EACV,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,oCAAoC;EACpC,4BAA4B;EAC5B,gCAAgC;EAChC,cAAc;EACd,gBAAgB;AAClB;;AAEA;EACE,UAAU;EACV,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,cAAc;EACd,yBAAyB;EACzB,iBAAiB;EACjB,kBAAkB;EAClB,oCAAoC;EACpC,4BAA4B;EAC5B,gCAAgC;AAClC;;AAEA;EACE,UAAU;EACV,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,yBAAyB;EACzB,iBAAiB;EACjB,kBAAkB;EAClB,oCAAoC;EACpC,4BAA4B;EAC5B,gCAAgC;AAClC;;AAEA;EACE,UAAU;EACV,WAAW;EACX,gBAAgB;EAChB,WAAW;EACX,YAAY;EACZ,2BAA2B;EAC3B,kBAAkB;EAClB,aAAa;EACb,uBAAuB;EACvB,qBAAqB;AACvB;;AAEA;EACE,aAAa;AACf;;AAEA;EACE,qBAAqB;AACvB;;AAEA;EACE,WAAW;AACb;;AAEA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;AACA;EACE,mBAAmB;AACrB;;AAEA;EACE,kBAAkB;EAClB,UAAU;EACV,WAAW;EACX,yBAAyB;AAC3B;;AAEA;EACE,uBAAuB;EACvB,qBAAqB;AACvB;;AAEA;EACE,kBAAkB;AACpB,C;AC3uBA,+BAA+B;;AAE/B;EACE,qBAAqB;EACrB,SAAS;AACX;;AAEA;;;;EAIE,WAAW;EACX,YAAY;AACd;;AAEA;;EAEE,WAAW;EACX,YAAY;AACd;;AAEA;;EAEE,WAAW;EACX,YAAY;AACd;;AAEA;EACE,qCAAqC;AACvC;;AAEA;EACE,uCAAuC;AACzC;;AAEA;EACE;IACE,uBAAuB;EACzB;EACA;IACE,yBAAyB;EAC3B;AACF;;AC1CA;EACE,6CAA6C;EAC7C,kBAAkB;EAClB,qBAAqB;AACvB;AACA;EACE,oBAAoB;AACtB;AACA;EACE,yBAAyB;EACzB,mBAAmB;EACnB,gBAAgB;EAChB,yEAAyE;EACzE,kBAAkB;EAClB,UAAU;EACV,cAAc;EACd,iBAAiB;EACjB,gBAAgB;AAClB;AACA;EACE,WAAW;EACX,aAAa;EACb,eAAe;EACf,sBAAsB;EACtB,gCAAgC;EAChC,6BAA6B;AAC/B;AACA;EACE,WAAW;EACX,yBAAyB;AAC3B;AACA;EACE,0DAA0D;EAC1D,uCAAuC;EACvC,cAAc;AAChB;;ACnCA,kBAAkB;;AAElB;EACE,aAAa;EACb,sBAAsB;EACtB,6BAA6B;EAC7B,qBAAqB;EACrB,qBAAqB;EACrB,mBAAmB;AACrB;;AAEA;EACE,0BAA0B;EAC1B,mCAAmC;EACnC,kCAAkC;EAClC,kCAAkC;EAClC,wCAAwC;AAC1C;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,eAAe;AACjB;;AAEA;EACE,eAAe;AACjB;;AAEA,iBAAiB;;AAEjB;EACE,kBAAkB;AACpB;;AAEA;EACE,6CAA6C;AAC/C;;AAEA;EACE,8CAA8C;AAChD;;AAEA;EACE,4CAA4C;AAC9C","sources":["webpack://pandora-fms-visual-console/./src/main.css","webpack://pandora-fms-visual-console/./src/lib/FontAwesomeIcon.styles.css","webpack://pandora-fms-visual-console/./src/lib/autocomplete.css","webpack://pandora-fms-visual-console/./src/items/Clock/styles.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 margin-top: 5px;\n}\n\n.is-maintenance {\n background-image: url(./lib/maintenanceMode.png) !important;\n}\n\n.is-maintenance :nth-child(1) {\n display: none;\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 * {\n overflow: visible;\n font-family: inherit;\n line-height: inherit;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n text-rendering: optimizeLegibility;\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:hover {\n border-color: #2b2b2b;\n}\n\n.visual-console-item.is-editing.is-selected {\n border: 2px dashed #82b92e;\n cursor: move;\n z-index: 10;\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 z-index: 10;\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-item.is-alert-triggered {\n border: 3px solid #f36201;\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 z-index: 10;\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-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-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-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 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#modalVCItemForm #textarea_label_ifr {\n background-color: #c9cfcd;\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/* 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-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\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\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}\n\n.discovery.modal select {\n width: 100px;\n}\n\n.discovery.modal div#period_manual select,\n.discovery.modal div#period_manual input,\n.discovery.modal div#period_default select,\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.discovery.modal div#period_default select#period_select,\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 20%;\n display: flex;\n flex-direction: row;\n border-radius: 2px;\n max-height: 50px;\n min-height: 35px;\n margin: 1%;\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: 0%;\n width: 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: 0%;\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 min-width: fit-content;\n min-height: fit-content;\n display: flex;\n flex-direction: column;\n justify-content: center;\n}\n\ndiv.simple-value > div {\n max-height: -webkit-fill-available;\n}\n\ndiv.module-graph .parent_graph p table tr {\n height: 25px;\n}\n\ndiv.module-graph {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: center;\n justify-content: center;\n}\n\ndiv.basic-chart {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n align-items: flex-end;\n justify-content: center;\n}\n\n.basic-chart-header {\n height: 40%;\n width: 100%;\n display: flex;\n}\n\n.basic-chart-header-name {\n margin: 0;\n padding: 0;\n height: 100%;\n width: 80%;\n display: flex;\n align-items: center;\n font-size: 2.5vmin;\n margin-left: 3%;\n}\n\n.basic-chart-header-value {\n margin: 0;\n padding: 0;\n height: 100%;\n width: 20%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 2.5vmin;\n}\n\ndiv.module-graph .gauge_d3_class {\n flex: 1 1 100px;\n float: none !important;\n overflow: inherit !important;\n text-align: center;\n}\n\n.textDecorationNone:hover {\n text-decoration: none;\n}\n\n.vc-item-nl-label {\n border-radius: 5px;\n background-color: #fff;\n padding: 5px;\n padding-left: 1em;\n font-size: 14px;\n}\n\n.odometer {\n overflow: hidden !important;\n}\n\n.odometer-container {\n width: 100%;\n height: 100%;\n overflow: hidden;\n text-align: center;\n display: flex;\n align-items: flex-end;\n}\n\n.odometer-a {\n z-index: 5;\n position: absolute;\n width: 65%;\n height: 65%;\n left: calc(17.5%);\n border-radius: 1000px 1000px 0px 0px;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n flex-direction: column;\n line-height: 0px;\n}\n\n.odometer-b {\n z-index: 4;\n position: relative;\n width: 95%;\n height: 95%;\n border-radius: 0px 0px 1000px 1000px;\n transform-origin: center top;\n transition: all 1.3s ease-in-out;\n top: calc(95%);\n left: calc(2.5%);\n}\n\n.odometer-c {\n z-index: 3;\n position: absolute;\n width: 96%;\n height: 96%;\n left: calc(2%);\n background-color: #202226;\n margin-left: auto;\n margin-right: auto;\n border-radius: 1000px 1000px 0px 0px;\n transform-origin: center top;\n transition: all 1.3s ease-in-out;\n}\n\n.odometer-d {\n z-index: 0;\n position: absolute;\n width: 100%;\n height: 100%;\n background-color: #82b92e;\n margin-left: auto;\n margin-right: auto;\n border-radius: 1000px 1000px 0px 0px;\n transform-origin: center top;\n transition: all 1.3s ease-in-out;\n}\n\n.gauge-data {\n z-index: 4;\n color: #fff;\n font-size: 1.5em;\n width: 100%;\n height: 100%;\n transition: all 1s ease-out;\n position: absolute;\n display: flex;\n justify-content: center;\n align-items: flex-end;\n}\n\n.svg_warning {\n fill: #f3b200;\n}\n\n.svg_warning_hide {\n fill: #fff !important;\n}\n\n.gauge-data #percent {\n color: #000;\n}\n\n.orange_background {\n background: #ffa631;\n}\n.red_background {\n background: #e63c52;\n}\n.yellow_background {\n background: #f3b200;\n}\n.grey_background {\n background: #b2b2b2;\n}\n.blue_background {\n background: #4a83f3;\n}\n.green_background {\n background: #82b92e;\n}\n\n#box-rectangle-selection {\n position: absolute;\n width: 0px;\n height: 0px;\n border: 2px solid #002f33;\n}\n\np {\n margin-block-start: 1em;\n margin-block-end: 1em;\n}\n\nstrong {\n font-size: inherit;\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","/* Digital clock */\n\n.visual-console-item .digital-clock {\n display: flex;\n flex-direction: column;\n justify-content: space-evenly;\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-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"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/pandora_console/install.php b/pandora_console/install.php index b9ac34794c..91de00f8a8 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -131,7 +131,7 @@+++ +
++ + ++ + ++ +
+ +'.$product_name.'
+'.__('Version').' '.$pandora_version.$lts_name.' - '.(enterprise_installed() ? 'Enterprise' : 'Community').'
+'.__('You are using the free, OpenSource version of Pandora FMS.').'
+'.__('This version has no official support or warranty, you can purchase the Enterprise version, which offers support, warranty and additional features to the Opensource version.').'
+ +Trademark and copyright 2004 - '.date('Y').' Pandora FMS. All rights reserved
+size[0] = '50%'; $table->size[1] = '50%'; $table->class = 'filter-table-adv'; +$table->cellstyle['group'][0] = 'display: flex;width: 95% !important;'; $table->data['group'][0] = html_print_label_input_block( __('Group'), html_print_select_groups( @@ -336,7 +337,8 @@ $table->data['group'][0] = html_print_label_input_block( true, '', false - ) + ), + ['div_class' => 'w100p'] ); $table->data['group'][0] .= html_print_label_input_block( @@ -346,11 +348,7 @@ $table->data['group'][0] .= html_print_label_input_block( 1, $recursion, true - ), - [ - 'div_class' => 'add-input-reverse', - 'label_class' => 'label-thin', - ] + ) ); $table->data['group'][1] = html_print_label_input_block( @@ -405,7 +403,7 @@ foreach ($pre_fields as $key => $value) { $table->data[1][0] = html_print_label_input_block( __('Operating System'), - html_print_select($fields, 'os', $os, '', 'All', 0, true) + html_print_select($fields, 'os', $os, '', 'All', 0, true, false, true, 'w100p', false, 'width:100%') ); $table->data[1][1] = html_print_label_input_block( @@ -428,9 +426,22 @@ if (function_exists('policies_get_policies') === true) { } } -$table->data[2][0] = html_print_label_input_block( +$table->data[2][1] = html_print_label_input_block( __('Policies'), - html_print_select($fields, 'policies[]', $policies, '', 'All', 0, true, true) + html_print_select( + $fields, + 'policies', + $policies, + 'this.form.submit()', + __('All'), + 0, + true, + false, + true, + 'w100p', + false, + 'width: 100%' + ) ); $custom_fields = db_get_all_fields_in_table('tagent_custom_fields'); @@ -438,7 +449,7 @@ if ($custom_fields === false) { $custom_fields = []; } -$div_custom_fields = ''; +$div_custom_fields = ''; foreach ($custom_fields as $custom_field) { $custom_field_value = ''; if (empty($ag_custom_fields) === false) { @@ -448,10 +459,10 @@ foreach ($custom_fields as $custom_field) { } } - $div_custom_fields .= ''; + $div_custom_fields .= ''; $div_custom_fields .= ''; - $div_custom_fields .= ''.$custom_field['name'].''; + $div_custom_fields .= ''.$custom_field['name'].''; $div_custom_fields .= ''; $div_custom_fields .= ''; @@ -890,7 +901,11 @@ if ($group_id > 0) { $groups = array_keys($user_groups); } -$all_policies = in_array(0, ($policies ?? [])); +if (is_array($policies)) { + $all_policies = in_array(0, ($policies ?? [])); +} else { + $all_policies = []; +} $id_os_sql = ''; $policies_sql = ''; diff --git a/pandora_console/operation/agentes/estado_generalagente.php b/pandora_console/operation/agentes/estado_generalagente.php index dd4effe693..c5dc765680 100755 --- a/pandora_console/operation/agentes/estado_generalagente.php +++ b/pandora_console/operation/agentes/estado_generalagente.php @@ -121,8 +121,11 @@ if (empty($agent['os_version']) !== true) { $os_agent_text = $os_version.' ('.$os_version_name[1].')'; } else { $os_name = preg_split('/[0-9]/', $agent['os_version'])[0]; - $os_version = explode($os_name, explode('(', $agent['os_version'])[0])[1]; - $os_agent_text = $os_version; + $os_agent_text = $agent['os_version']; + if (empty($os_name) === false) { + $os_version = explode($os_name, explode('(', $agent['os_version'])[0])[1]; + $os_agent_text = $os_version; + } } } diff --git a/pandora_console/operation/inventory/inventory.php b/pandora_console/operation/inventory/inventory.php index 7355662366..0a7754e46d 100755 --- a/pandora_console/operation/inventory/inventory.php +++ b/pandora_console/operation/inventory/inventory.php @@ -1289,6 +1289,10 @@ if ($inventory_module !== 'basic') { $style = 'width: 100%'; $ordering = true; $searching = false; + $search = []; + if (strlen($inventory_search_string) > 0) { + $search['value'] = $inventory_search_string; + } $columns = [ 'alias', @@ -1338,6 +1342,7 @@ if ($inventory_module !== 'basic') { 'get_data_basic_info' => 1, 'id_agent' => $id_agente, 'id_group' => $inventory_id_group, + 'search' => $search, ], 'zeroRecords' => __('Agent info not found'), 'emptyTable' => __('Agent info not found'), diff --git a/pandora_console/operation/search_agents.getdata.php b/pandora_console/operation/search_agents.getdata.php index d8182385b2..0284f8e738 100644 --- a/pandora_console/operation/search_agents.getdata.php +++ b/pandora_console/operation/search_agents.getdata.php @@ -76,15 +76,15 @@ if ($searchAgents) { $sql = "SELECT DISTINCT taddress_agent.id_agent FROM taddress INNER JOIN taddress_agent ON taddress.id_a = taddress_agent.id_a - WHERE taddress.ip LIKE '$stringSearchSQL'"; + WHERE LOWER(REPLACE(taddress.ip, ' ', ' ')) LIKE LOWER('$stringSearchSQL')"; $id = db_get_all_rows_sql($sql); if ($id != '') { $aux = $id[0]['id_agent']; - $search_sql = " t1.nombre LIKE '".$stringSearchSQL."' OR - t2.nombre LIKE '".$stringSearchSQL."' OR - t1.alias LIKE '".$stringSearchSQL."' OR - t1.comentarios LIKE '".$stringSearchSQL."' OR + $search_sql = " LOWER(REPLACE(t1.nombre, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR + LOWER(REPLACE(t2.nombre, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR + LOWER(REPLACE(t1.alias, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR + LOWER(REPLACE(t1.comentarios, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR t1.id_agente =".$aux; $idCount = count($id); @@ -96,16 +96,16 @@ if ($searchAgents) { } } } else { - $search_sql = " t1.nombre LIKE '".$stringSearchSQL."' OR - t2.nombre LIKE '".$stringSearchSQL."' OR - t1.direccion LIKE '".$stringSearchSQL."' OR - t1.comentarios LIKE '".$stringSearchSQL."' OR - t1.alias LIKE '".$stringSearchSQL."'"; + $search_sql = " LOWER(REPLACE(t1.nombre, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR + LOWER(REPLACE(t2.nombre, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR + LOWER(REPLACE(t1.direccion, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR + LOWER(REPLACE(t1.comentarios, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."') OR + LOWER(REPLACE(t1.alias, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."')"; } if ($has_secondary === true) { $search_sql .= " OR (tasg.id_group IS NOT NULL AND - tasg.id_group IN (SELECT id_grupo FROM tgrupo WHERE nombre LIKE '".$stringSearchSQL."'))"; + tasg.id_group IN (SELECT id_grupo FROM tgrupo WHERE LOWER(REPLACE(nombre, ' ', ' ')) LIKE LOWER('".$stringSearchSQL."')))"; } $sql = " diff --git a/pandora_console/operation/search_alerts.getdata.php b/pandora_console/operation/search_alerts.getdata.php index cebb13919c..eea9f70324 100644 --- a/pandora_console/operation/search_alerts.getdata.php +++ b/pandora_console/operation/search_alerts.getdata.php @@ -139,64 +139,64 @@ if ($searchAlerts) { switch ($config['dbtype']) { case 'mysql': $whereAlerts = 'AND ( - id_alert_template IN (SELECT id FROM talert_templates WHERE name LIKE "%'.$stringSearchSQL.'%") OR + id_alert_template IN (SELECT id FROM talert_templates WHERE REPLACE(name, " ", " ") LIKE "%'.$stringSearchSQL.'%") OR id_alert_template IN ( SELECT id FROM talert_templates WHERE id_alert_action IN ( SELECT id FROM talert_actions - WHERE name LIKE "%'.$stringSearchSQL.'%")) OR + WHERE REPLACE(name, " ", " ") LIKE "%'.$stringSearchSQL.'%")) OR talert_template_modules.id IN ( SELECT id_alert_template_module FROM talert_template_module_actions WHERE id_alert_action IN ( SELECT id FROM talert_actions - WHERE name LIKE "%'.$stringSearchSQL.'%")) OR + WHERE REPLACE(name, " ", " ") LIKE "%'.$stringSearchSQL.'%")) OR id_agent_module IN ( SELECT id_agente_modulo FROM tagente_modulo - WHERE nombre LIKE "%'.$stringSearchSQL.'%") OR + WHERE REPLACE(nombre, " ", " ") LIKE "%'.$stringSearchSQL.'%") OR id_agent_module IN ( SELECT id_agente_modulo FROM tagente_modulo WHERE id_agente IN ( SELECT id_agente FROM tagente - WHERE nombre LIKE "%'.$stringSearchSQL.'%" '.$extra_sql.')) + WHERE REPLACE(nombre, " ", " ") LIKE "%'.$stringSearchSQL.'%" '.$extra_sql.')) )'; break; case 'postgresql': case 'oracle': $whereAlerts = 'AND ( - id_alert_template IN (SELECT id FROM talert_templates WHERE upper(name) LIKE \'%'.strtolower($stringSearchSQL).'%\') OR + id_alert_template IN (SELECT id FROM talert_templates WHERE upper(REPLACE(name, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\') OR id_alert_template IN ( SELECT id FROM talert_templates WHERE id_alert_action IN ( SELECT id FROM talert_actions - WHERE upper(name) LIKE \'%'.strtolower($stringSearchSQL).'%\')) OR + WHERE upper(REPLACE(name, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\')) OR talert_template_modules.id IN ( SELECT id_alert_template_module FROM talert_template_module_actions WHERE id_alert_action IN ( SELECT id FROM talert_actions - WHERE upper(name) LIKE \'%'.strtolower($stringSearchSQL).'%\')) OR + WHERE upper(REPLACE(name, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\')) OR id_agent_module IN ( SELECT id_agente_modulo FROM tagente_modulo - WHERE upper(nombre) LIKE \'%'.strtolower($stringSearchSQL).'%\') OR + WHERE upper(REPLACE(nombre, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\') OR id_agent_module IN ( SELECT id_agente_modulo FROM tagente_modulo WHERE id_agente IN ( SELECT id_agente FROM tagente - WHERE upper(nombre) LIKE \'%'.strtolower($stringSearchSQL).'%\' '.$extra_sql.')) + WHERE upper(REPLACE(nombre, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\' '.$extra_sql.')) )'; $agents = false; break; diff --git a/pandora_console/operation/search_graphs.getdata.php b/pandora_console/operation/search_graphs.getdata.php index f4b5fdf171..7037274b08 100644 --- a/pandora_console/operation/search_graphs.getdata.php +++ b/pandora_console/operation/search_graphs.getdata.php @@ -31,7 +31,7 @@ if ($searchGraphs) { } $filter = []; - $filter[] = "(upper(name) LIKE '%".strtolower($stringSearchSQL)."%' OR upper(description) LIKE '%$".strtolower($stringSearchSQL)."%')"; + $filter[] = "(upper(REPLACE(name, ' ', ' ')) LIKE '%".strtolower($stringSearchSQL)."%' OR upper(REPLACE(description, ' ', ' ')) LIKE '%$".strtolower($stringSearchSQL)."%')"; $filter['id_graph'] = $usergraphs_id; $columns = [ diff --git a/pandora_console/operation/search_main.php b/pandora_console/operation/search_main.php index e5f136f457..ac841fa703 100644 --- a/pandora_console/operation/search_main.php +++ b/pandora_console/operation/search_main.php @@ -62,10 +62,10 @@ $sql = "SELECT DISTINCT taddress_agent.id_agent FROM taddress $id = db_get_all_rows_sql($sql); if ($id != '') { $aux = $id[0]['id_agent']; - $search_sql = " t1.nombre LIKE '".$stringSearchSQL."' OR - t2.nombre LIKE '".$stringSearchSQL."' OR - t1.alias LIKE '".$stringSearchSQL."' OR - t1.comentarios LIKE '".$stringSearchSQL."' OR + $search_sql = " REPLACE(t1.nombre, ' ', ' ') LIKE '".$stringSearchSQL."' OR + REPLACE(t2.nombre, ' ', ' ') LIKE '".$stringSearchSQL."' OR + REPLACE(t1.alias, ' ', ' ') LIKE '".$stringSearchSQL."' OR + REPLACE(t1.comentarios, ' ', ' ') LIKE '".$stringSearchSQL."' OR t1.id_agente =".$aux; $idCount = count($id); @@ -77,16 +77,16 @@ if ($id != '') { } } } else { - $search_sql = " t1.nombre LIKE '".$stringSearchSQL."' OR - t2.nombre LIKE '".$stringSearchSQL."' OR - t1.direccion LIKE '".$stringSearchSQL."' OR - t1.comentarios LIKE '".$stringSearchSQL."' OR - t1.alias LIKE '".$stringSearchSQL."'"; + $search_sql = " REPLACE(t1.nombre, ' ', ' ') LIKE '".$stringSearchSQL."' OR + REPLACE(t2.nombre, ' ', ' ') LIKE '".$stringSearchSQL."' OR + REPLACE(t1.direccion, ' ', ' ') LIKE '".$stringSearchSQL."' OR + REPLACE(t1.comentarios, ' ', ' ') LIKE '".$stringSearchSQL."' OR + REPLACE(t1.alias, ' ', ' ') LIKE '".$stringSearchSQL."'"; } if ($has_secondary === true) { $search_sql .= " OR (tasg.id_group IS NOT NULL AND - tasg.id_group IN (SELECT id_grupo FROM tgrupo WHERE nombre LIKE '".$stringSearchSQL."'))"; + tasg.id_group IN (SELECT id_grupo FROM tgrupo WHERE REPLACE(nombre, ' ', ' ') LIKE '".$stringSearchSQL."'))"; } $sql = " diff --git a/pandora_console/operation/search_maps.getdata.php b/pandora_console/operation/search_maps.getdata.php index 6f3456ef5b..60cd83f556 100644 --- a/pandora_console/operation/search_maps.getdata.php +++ b/pandora_console/operation/search_maps.getdata.php @@ -32,7 +32,7 @@ if ((bool) $searchMaps === true) { FROM tlayout tl LEFT JOIN tlayout_data tld ON tl.id = tld.id_layout - WHERE tl.name LIKE "%%%s%%" + WHERE REPLACE(tl.name, " ", " ") LIKE "%%%s%%" AND tl.id_group IN (%s) GROUP BY tl.id, tl.name, tl.id_group', $stringSearchSQL, diff --git a/pandora_console/operation/search_modules.getdata.php b/pandora_console/operation/search_modules.getdata.php index a278ca8cd0..405212fb19 100644 --- a/pandora_console/operation/search_modules.getdata.php +++ b/pandora_console/operation/search_modules.getdata.php @@ -142,8 +142,8 @@ if ($searchModules) { ) ) AND - (t1.nombre LIKE "%'.$stringSearchSQL.'%" OR - t3.nombre LIKE "%'.$stringSearchSQL.'%") + (REPLACE(t1.nombre, " ", " ") LIKE "%'.$stringSearchSQL.'%" OR + REPLACE(t3.nombre, " ", " ") LIKE "%'.$stringSearchSQL.'%") AND t1.disabled = 0'; break; @@ -172,8 +172,8 @@ if ($searchModules) { ) ) ) AND - (t1.nombre LIKE \'%'.$stringSearchSQL.'%\' OR - t3.nombre LIKE \'%'.$stringSearchSQL.'%\')'; + (REPLACE(t1.nombre, " ", " ") LIKE \'%'.$stringSearchSQL.'%\' OR + REPLACE(t3.nombre, " ", " ") LIKE \'%'.$stringSearchSQL.'%\')'; break; case 'oracle': @@ -201,8 +201,8 @@ if ($searchModules) { ) ) ) AND - (LOWER(t1.nombre) LIKE \'%'.strtolower($stringSearchSQL).'%\' OR - LOWER(t3.nombre) LIKE \'%'.strtolower($stringSearchSQL).'%\')'; + (LOWER(REPLACE(t1.nombre, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\' OR + LOWER(REPLACE(t3.nombre, " ", " ")) LIKE \'%'.strtolower($stringSearchSQL).'%\')'; break; } diff --git a/pandora_console/operation/search_policies.getdata.php b/pandora_console/operation/search_policies.getdata.php index cc6f0dca45..cc4c844ea0 100644 --- a/pandora_console/operation/search_policies.getdata.php +++ b/pandora_console/operation/search_policies.getdata.php @@ -207,7 +207,7 @@ if ($searchpolicies === true) { $sql = "SELECT id, name, description, id_group, status FROM tpolicies - WHERE name LIKE '$stringSearchSQL' + WHERE REPLACE(name, ' ', ' ') LIKE '$stringSearchSQL' AND id_group IN ($id_user_groups_str) "; } diff --git a/pandora_console/operation/search_reports.getdata.php b/pandora_console/operation/search_reports.getdata.php index 082d9914cc..3cf83bacbc 100644 --- a/pandora_console/operation/search_reports.getdata.php +++ b/pandora_console/operation/search_reports.getdata.php @@ -46,13 +46,13 @@ if ($searchReports) { case 'postgresql': $sql = "SELECT id_report, name, description FROM treport - WHERE (name LIKE '%".$stringSearchSQL."%' OR description LIKE '%".$stringSearchSQL."%')".$reports_condition; + WHERE (REPLACE(name, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR REPLACE(description, ' ', ' ') LIKE '%".$stringSearchSQL."%')".$reports_condition; break; case 'oracle': $sql = "SELECT id_report, name, description FROM treport - WHERE (upper(name) LIKE '%".strtolower($stringSearchSQL)."%' OR description LIKE '%".strtolower($stringSearchSQL)."%')".$reports_condition; + WHERE (upper(REPLACE(name, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR REPLACE(description, ' ', ' ') LIKE '%".strtolower($stringSearchSQL)."%')".$reports_condition; break; } @@ -77,13 +77,13 @@ if ($searchReports) { case 'postgresql': $sql_count = "SELECT COUNT(id_report) AS count FROM treport - WHERE (name LIKE '%".$stringSearchSQL."%' OR description LIKE '%".$stringSearchSQL."%')".$reports_condition; + WHERE (REPLACE(name, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR REPLACE(description, ' ', ' ') LIKE '%".$stringSearchSQL."%')".$reports_condition; break; case 'oracle': $sql_count = "SELECT COUNT(id_report) AS count FROM treport - WHERE (upper(name) LIKE '%".strtolower($stringSearchSQL)."%' OR upper(description) LIKE '%".strtolower($stringSearchSQL)."%')".$reports_condition; + WHERE (upper(REPLACE(name, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR upper(REPLACE(description, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%')".$reports_condition; break; } diff --git a/pandora_console/operation/search_users.getdata.php b/pandora_console/operation/search_users.getdata.php index 212eb8a493..1e8932c4bc 100644 --- a/pandora_console/operation/search_users.getdata.php +++ b/pandora_console/operation/search_users.getdata.php @@ -179,23 +179,23 @@ if ($searchUsers) { case 'mysql': case 'postgresql': $sql = "SELECT id_user, fullname, firstname, lastname, middlename, email, last_connect, is_admin, comments FROM tusuario - WHERE fullname LIKE '%".$stringSearchSQL."%' OR - id_user LIKE '%".$stringSearchSQL."%' OR - firstname LIKE '%".$stringSearchSQL."%' OR - lastname LIKE '%".$stringSearchSQL."%' OR - middlename LIKE '%".$stringSearchSQL."%' OR - email LIKE '%".$stringSearchSQL."%' + WHERE REPLACE(fullname, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR + REPLACE(id_user, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR + REPLACE(firstname, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR + REPLACE(lastname, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR + REPLACE(middlename, ' ', ' ') LIKE '%".$stringSearchSQL."%' OR + REPLACE(email, ' ', ' ') LIKE '%".$stringSearchSQL."%' ORDER BY ".$order['field'].' '.$order['order']; break; case 'oracle': $sql = "SELECT id_user, fullname, firstname, lastname, middlename, email, last_connect, is_admin, comments FROM tusuario - WHERE upper(fullname) LIKE '%".strtolower($stringSearchSQL)."%' OR - upper(id_user) LIKE '%".strtolower($stringSearchSQL)."%' OR - upper(firstname) LIKE '%".strtolower($stringSearchSQL)."%' OR - upper(lastname) LIKE '%".strtolower($stringSearchSQL)."%' OR - upper(middlename) LIKE '%".strtolower($stringSearchSQL)."%' OR - upper(email) LIKE '%".strtolower($stringSearchSQL)."%' + WHERE upper(REPLACE(fullname, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR + upper(REPLACE(id_user, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR + upper(REPLACE(firstname, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR + upper(REPLACE(lastname, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR + upper(REPLACE(middlename, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' OR + upper(REPLACE(email, ' ', ' ') ) LIKE '%".strtolower($stringSearchSQL)."%' ORDER BY ".$order['field'].' '.$order['order']; break; } diff --git a/pandora_console/operation/snmpconsole/snmp_mib_uploader.php b/pandora_console/operation/snmpconsole/snmp_mib_uploader.php index 32db1d6b1b..2523e32b13 100644 --- a/pandora_console/operation/snmpconsole/snmp_mib_uploader.php +++ b/pandora_console/operation/snmpconsole/snmp_mib_uploader.php @@ -91,7 +91,7 @@ $create_text_file = (bool) get_parameter('create_text_file'); $default_real_directory = realpath($config['homedir'].'/'.$fallback_directory); if ($upload_file_or_zip === true) { - upload_file($upload_file_or_zip, $default_real_directory, $real_directory); + upload_file($upload_file_or_zip, $default_real_directory, $real_directory, ['mib', 'zip']); } if ($create_text_file === true) { diff --git a/pandora_console/pandora_console.redhat.spec b/pandora_console/pandora_console.redhat.spec index b20ddfd914..b9ed066d68 100644 --- a/pandora_console/pandora_console.redhat.spec +++ b/pandora_console/pandora_console.redhat.spec @@ -6,7 +6,7 @@ %define debug_package %{nil} %define name pandorafms_console %define version 7.0NG.774 -%define release 231211 +%define release 231213 # User and Group under which Apache is running %define httpd_name httpd diff --git a/pandora_console/pandora_console.rhel7.spec b/pandora_console/pandora_console.rhel7.spec index 23057d2456..defda9ef4d 100644 --- a/pandora_console/pandora_console.rhel7.spec +++ b/pandora_console/pandora_console.rhel7.spec @@ -6,7 +6,7 @@ %define debug_package %{nil} %define name pandorafms_console %define version 7.0NG.774 -%define release 231211 +%define release 231213 # User and Group under which Apache is running %define httpd_name httpd diff --git a/pandora_console/pandora_console.spec b/pandora_console/pandora_console.spec index a4d3b8bcbf..7729b27053 100644 --- a/pandora_console/pandora_console.spec +++ b/pandora_console/pandora_console.spec @@ -3,7 +3,7 @@ # %define name pandorafms_console %define version 7.0NG.774 -%define release 231211 +%define release 231213 %define httpd_name httpd # User and Group under which Apache is running %define httpd_name apache2 diff --git a/pandora_console/pandoradb_data.sql b/pandora_console/pandoradb_data.sql index db70f4b0e0..79cca53917 100644 --- a/pandora_console/pandoradb_data.sql +++ b/pandora_console/pandoradb_data.sql @@ -2866,7 +2866,7 @@ SET @short_name = 'pandorafms.vmware'; SET @name = 'VMware'; SET @section = 'app'; SET @description = 'Monitor ESXi hosts, datastores and VMs from a specific datacenter'; -SET @version = '1.1'; +SET @version = '1.2'; INSERT IGNORE INTO `tdiscovery_apps` (`id_app`, `short_name`, `name`, `section`, `description`, `version`) VALUES ('', @short_name, @name, @section, @description, @version); SELECT @id_app := `id_app` FROM `tdiscovery_apps` WHERE `short_name` = @short_name; diff --git a/pandora_server/DEBIAN/control b/pandora_server/DEBIAN/control index d3163b928e..11123e2837 100644 --- a/pandora_server/DEBIAN/control +++ b/pandora_server/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-server -Version: 7.0NG.774-231211 +Version: 7.0NG.774-231213 Architecture: all Priority: optional Section: admin diff --git a/pandora_server/DEBIAN/make_deb_package.sh b/pandora_server/DEBIAN/make_deb_package.sh index 48c89a7c2e..256a8b478f 100644 --- a/pandora_server/DEBIAN/make_deb_package.sh +++ b/pandora_server/DEBIAN/make_deb_package.sh @@ -14,7 +14,7 @@ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -pandora_version="7.0NG.774-231211" +pandora_version="7.0NG.774-231213" package_cpan=0 package_pandora=1 diff --git a/pandora_server/lib/PandoraFMS/Config.pm b/pandora_server/lib/PandoraFMS/Config.pm index fa05731660..64f526f08a 100644 --- a/pandora_server/lib/PandoraFMS/Config.pm +++ b/pandora_server/lib/PandoraFMS/Config.pm @@ -46,7 +46,7 @@ our @EXPORT = qw( # version: Defines actual version of Pandora Server for this module only my $pandora_version = "7.0NG.774"; -my $pandora_build = "231211"; +my $pandora_build = "231213"; our $VERSION = $pandora_version." ".$pandora_build; # Setup hash diff --git a/pandora_server/lib/PandoraFMS/Core.pm b/pandora_server/lib/PandoraFMS/Core.pm index 673ccce1f0..84d3d51bd2 100644 --- a/pandora_server/lib/PandoraFMS/Core.pm +++ b/pandora_server/lib/PandoraFMS/Core.pm @@ -5786,9 +5786,9 @@ sub pandora_inhibit_alerts { sub pandora_cps_enabled($$) { my ($agent, $module) = @_; - return 1 if ($agent->{'cps'} > 0); + return 1 if ($agent->{'cps'} >= 0); - return 1 if ($module->{'cps'} > 0); + return 1 if ($module->{'cps'} >= 0); return 0; } diff --git a/pandora_server/lib/PandoraFMS/PluginTools.pm b/pandora_server/lib/PandoraFMS/PluginTools.pm index 16d61a00a5..f069b2710f 100644 --- a/pandora_server/lib/PandoraFMS/PluginTools.pm +++ b/pandora_server/lib/PandoraFMS/PluginTools.pm @@ -34,7 +34,7 @@ our @ISA = qw(Exporter); # version: Defines actual version of Pandora Server for this module only my $pandora_version = "7.0NG.774"; -my $pandora_build = "231211"; +my $pandora_build = "231213"; our $VERSION = $pandora_version." ".$pandora_build; our %EXPORT_TAGS = ( 'all' => [ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index 8aea06e829..3d44ddc426 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -7,7 +7,7 @@ %define debug_package %{nil} %define name pandorafms_server %define version 7.0NG.774 -%define release 231211 +%define release 231213 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index 24151d4685..0bad40c2b6 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -4,7 +4,7 @@ %global __os_install_post %{nil} %define name pandorafms_server %define version 7.0NG.774 -%define release 231211 +%define release 231213 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index e833bb1958..8dcdf85db0 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.774" -PI_BUILD="231211" +PI_BUILD="231213" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 269e23f3eb..0b74326632 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -38,7 +38,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.774 Build 231211"; +my $version = "7.0NG.774 Build 231213"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index aae2e87f8e..afcf8b9199 100755 --- a/pandora_server/util/pandora_manage.pl +++ b/pandora_server/util/pandora_manage.pl @@ -36,7 +36,7 @@ use Encode::Locale; Encode::Locale::decode_argv; # version: define current version -my $version = "7.0NG.774 Build 231211"; +my $version = "7.0NG.774 Build 231213"; # save program name for logging my $progname = basename($0); diff --git a/visual_console_client/src/main.css b/visual_console_client/src/main.css index cd8b00e93f..c77bf658c8 100644 --- a/visual_console_client/src/main.css +++ b/visual_console_client/src/main.css @@ -742,3 +742,7 @@ p { margin-block-start: 1em; margin-block-end: 1em; } + +strong { + font-size: inherit; +}