diff --git a/pandora_agents/unix/DEBIAN/control b/pandora_agents/unix/DEBIAN/control index d80a0ea499..08fa93c4f6 100644 --- a/pandora_agents/unix/DEBIAN/control +++ b/pandora_agents/unix/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-agent-unix -Version: 7.0NG.750-201124 +Version: 7.0NG.750-201125 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 2c40973230..45037afa3b 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.750-201124" +pandora_version="7.0NG.750-201125" 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 be315e6621..c83ca82522 100755 --- a/pandora_agents/unix/pandora_agent +++ b/pandora_agents/unix/pandora_agent @@ -55,7 +55,7 @@ my $Sem = undef; my $ThreadSem = undef; use constant AGENT_VERSION => '7.0NG.750'; -use constant AGENT_BUILD => '201124'; +use constant AGENT_BUILD => '201125'; # Agent log default file size maximum and instances use constant DEFAULT_MAX_LOG_SIZE => 600000; diff --git a/pandora_agents/unix/pandora_agent.redhat.spec b/pandora_agents/unix/pandora_agent.redhat.spec index f848fe74dd..7464cc8de0 100644 --- a/pandora_agents/unix/pandora_agent.redhat.spec +++ b/pandora_agents/unix/pandora_agent.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 7.0NG.750 -%define release 201124 +%define release 201125 Summary: Pandora FMS Linux agent, PERL version Name: %{name} diff --git a/pandora_agents/unix/pandora_agent.spec b/pandora_agents/unix/pandora_agent.spec index b01471c55e..72fe736185 100644 --- a/pandora_agents/unix/pandora_agent.spec +++ b/pandora_agents/unix/pandora_agent.spec @@ -3,7 +3,7 @@ # %define name pandorafms_agent_unix %define version 7.0NG.750 -%define release 201124 +%define release 201125 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 0d552d3bc2..ab3d9c8b44 100755 --- a/pandora_agents/unix/pandora_agent_installer +++ b/pandora_agents/unix/pandora_agent_installer @@ -10,7 +10,7 @@ # ********************************************************************** PI_VERSION="7.0NG.750" -PI_BUILD="201124" +PI_BUILD="201125" OS_NAME=`uname -s` FORCE=0 diff --git a/pandora_agents/win32/installer/pandora.mpi b/pandora_agents/win32/installer/pandora.mpi index 39b9472342..de69ad1390 100644 --- a/pandora_agents/win32/installer/pandora.mpi +++ b/pandora_agents/win32/installer/pandora.mpi @@ -186,7 +186,7 @@ UpgradeApplicationID {} Version -{201124} +{201125} ViewReadme {Yes} diff --git a/pandora_agents/win32/pandora.cc b/pandora_agents/win32/pandora.cc index 3ff011b739..337d9c5ebb 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.750(Build 201124)") +#define PANDORA_VERSION ("7.0NG.750(Build 201125)") string pandora_path; string pandora_dir; diff --git a/pandora_agents/win32/versioninfo.rc b/pandora_agents/win32/versioninfo.rc index dca5628c73..bacba32ca6 100644 --- a/pandora_agents/win32/versioninfo.rc +++ b/pandora_agents/win32/versioninfo.rc @@ -11,7 +11,7 @@ BEGIN VALUE "LegalCopyright", "Artica ST" VALUE "OriginalFilename", "PandoraAgent.exe" VALUE "ProductName", "Pandora FMS Windows Agent" - VALUE "ProductVersion", "(7.0NG.750(Build 201124))" + VALUE "ProductVersion", "(7.0NG.750(Build 201125))" VALUE "FileVersion", "1.0.0.0" END END diff --git a/pandora_console/DEBIAN/control b/pandora_console/DEBIAN/control index 684a4bd24a..c60cf9e85f 100644 --- a/pandora_console/DEBIAN/control +++ b/pandora_console/DEBIAN/control @@ -1,5 +1,5 @@ package: pandorafms-console -Version: 7.0NG.750-201124 +Version: 7.0NG.750-201125 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 6b020ff9d8..ec0d439a44 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.750-201124" +pandora_version="7.0NG.750-201125" package_pear=0 package_pandora=1 diff --git a/pandora_console/extensions/agents_alerts.php b/pandora_console/extensions/agents_alerts.php index 4fd7be94ae..53ebe3d2e2 100755 --- a/pandora_console/extensions/agents_alerts.php +++ b/pandora_console/extensions/agents_alerts.php @@ -1,651 +1,95 @@ 'ANY(SELECT id_agente FROM tagente WHERE id_grupo = '.$group]; - - db_process_sql_update('tagente_modulo', ['flag' => 1], $where); - } else { - db_pandora_audit('ACL Violation', 'Trying to set flag for groups'); - include 'general/noaccess.php'; + global $ajaxPage; + // This page. + $thisOwnPage = 'index.php?sec=view&sec2=extensions/agents_alerts'; + // Ajax variables. + $ajaxPage = 'extensions/agents_alerts'; + $pageName = '[AgentsAlerts]'; + // Control call flow. + try { + // User access and validation is being processed on class constructor. + $obj = new AgentsAlerts($ajaxPage); + } catch (Exception $e) { + if (is_ajax() === true) { + echo json_encode(['error' => $pageName.$e->getMessage() ]); exit; - } - } - - if ($config['realtimestats'] == 0) { - $updated_info = __('Last update').' : '.ui_print_timestamp(db_get_sql('SELECT min(utimestamp) FROM tgroup_stat'), true); - } else { - // $updated_info = __("Updated at realtime"); - $updated_info = ''; - } - - $updated_time = $updated_info; - $create_alert = (int) get_parameter('create_alert', 0); - - if ($create_alert) { - $template2 = get_parameter('template'); - $module_action_threshold = get_parameter('module_action_threshold'); - - $id_alert = alerts_create_alert_agent_module($create_alert, $template2); - - if ($id_alert !== false) { - $action_select = get_parameter('action_select', 0); - - if ($action_select != 0) { - $values = []; - $values['fires_min'] = 0; - $values['fires_max'] = 0; - $values['module_action_threshold'] = (int) get_parameter('module_action_threshold'); - - alerts_add_alert_agent_module_action($id_alert, $action_select, $values); - } - } - } - - $refr = (int) get_parameter('refr', 30); - // By default 30 seconds - $show_modules = (bool) get_parameter('show_modules', 0); - $group_id = get_parameter('group_id', 0); - $offset = get_parameter('offset', 0); - $hor_offset = get_parameter('hor_offset', 0); - $block = 20; - - $groups = users_get_groups(); - - $filter_groups .= ''.__('Group').''; - $filter_groups .= '
'; - $filter_groups .= html_print_select_groups(false, 'AR', true, 'group_id', $group_id, false, '', '', true, false, true, '', false, 'margin-right: 10px; margin-top: 5px;'); - $filter_groups .= '
'; - - $check = ''.__('Show modules without alerts').''; - $check .= html_print_checkbox('slides_ids[]', $d['id'], $show_modules, true, false, '', true); - - $comborefr = '
'; - $comborefr .= ''.__('Refresh').''; - $comborefr .= html_print_select( - [ - '30' => '30 '.__('seconds'), - (string) SECONDS_1MINUTE => __('1 minute'), - (string) SECONDS_2MINUTES => __('2 minutes'), - (string) SECONDS_5MINUTES => __('5 minutes'), - (string) SECONDS_10MINUTES => __('10 minutes'), - ], - 'refr', - (int) get_parameter('refr', 0), - $script = 'this.form.submit()', - '', - 0, - true, - false, - false, - '', - false, - 'width: 100px; margin-right: 10px; margin-top: 5px;' - ); - $comborefr .= '
'; - - if ($config['pure'] == 0) { - $fullscreen['text'] = ''.html_print_image('images/full_screen.png', true, ['title' => __('Full screen mode')]).''; - } else { - $fullscreen['text'] = ''.html_print_image('images/normal_screen.png', true, ['title' => __('Back to normal mode')]).''; - $config['refr'] = $refr; - } - - $onheader = [ - 'updated_time' => $updated_time, - 'fullscreen' => $fullscreen, - 'combo_groups' => $filter_groups, - ]; - - if ($config['pure'] == 1) { - $onheader['combo_refr'] = $comborefr; - } - - // Header. - ui_print_page_header( - __('Agents/Alerts'), - 'images/op_alerts.png', - false, - '', - false, - $updated_time - ); - - // Old style table, we need a lot of special formatting,don't use table function - // Prepare old-style table - echo ''; - echo ''; - echo ''; - echo ''; - if ($config['pure'] == 1) { - echo ''; - } - - echo ''; - echo ''; - echo '
'.$filter_groups.''.$check.''.$comborefr.' '.__('Full screen').''.$fullscreen['text'].'
'; - - if ($show_modules) { - if ($group_id > 0) { - $grupo = " AND tagente.id_grupo = $group_id"; } else { - $grupo = ''; + echo $pageName.$e->getMessage(); } - $offset_modules = get_parameter('offset', 0); - $sql_count = "SELECT COUNT(tagente_modulo.nombre) FROM tagente_modulo - INNER JOIN tagente ON tagente.id_agente = tagente_modulo.id_agente - WHERE id_agente_modulo NOT IN (SELECT id_agent_module FROM talert_template_modules) - $grupo"; - $count_agent_module = db_get_all_rows_sql($sql_count); - - $sql = "SELECT tagente.alias, tagente_modulo.nombre, - tagente_modulo.id_agente_modulo FROM tagente_modulo - INNER JOIN tagente ON tagente.id_agente = tagente_modulo.id_agente - WHERE id_agente_modulo NOT IN (SELECT id_agent_module FROM talert_template_modules) - $grupo LIMIT 20 OFFSET $offset_modules"; - $agent_modules = db_get_all_rows_sql($sql); - - ui_pagination( - $count_agent_module[0]['COUNT(tagente_modulo.nombre)'], - ui_get_url_refresh(), - 0, - 0, - false, - 'offset', - true, - '', - '', - false, - 'alerts_modules' - ); - - $table->width = '100%'; - $table->class = 'databox data'; - $table->id = 'table_agent_module'; - $table->data = []; - - $table->head[0] = __('Agents'); - $table->head[1] = __('Modules'); - $table->head[2] = __('Actions'); - - $table->style[0] = 'width: 25%;'; - $table->style[1] = 'width: 33%;'; - $table->style[2] = 'width: 33%;'; - - foreach ($agent_modules as $agent_module) { - $data[0] = io_safe_output($agent_module['alias']); - $data[1] = io_safe_output($agent_module['nombre']); - $uniqid = $agent_module['id_agente_modulo']; - $data[2] = "".html_print_image('images/add_mc.png', true).''; - array_push($table->data, $data); - - $table2->width = '100%'; - $table2->id = 'table_add_alert'; - $table2->class = 'databox filters'; - $table2->data = []; - // $data[0] = - $table2->data[0][0] = __('Actions'); - - $groups_user = users_get_groups($config['id_user']); - if (!empty($groups_user)) { - $groups = implode(',', array_keys($groups_user)); - $sql = "SELECT id, name FROM talert_actions WHERE id_group IN ($groups)"; - $actions = db_get_all_rows_sql($sql); - } - - $table2->data[0][1] = html_print_select( - index_array($actions, 'id', 'name'), - 'action_select', - '', - '', - __('Default action'), - '0', - true, - '', - true, - '', - false, - 'width: 250px;' - ); - $table2->data[0][1] .= ''; - if (check_acl($config['id_user'], 0, 'LM')) { - $table2->data[0][1] .= ''; - $table2->data[0][1] .= html_print_image('images/add.png', true); - $table2->data[0][1] .= ''.__('Create Action').''; - $table2->data[0][1] .= ''; - } - - $table2->data[1][0] = __('Template'); - $own_info = get_user_info($config['id_user']); - if ($own_info['is_admin'] || check_acl($config['id_user'], 0, 'PM')) { - $templates = alerts_get_alert_templates(false, ['id', 'name']); - } else { - $usr_groups = users_get_groups($config['id_user'], 'LW', true); - $filter_groups = ''; - $filter_groups = implode(',', array_keys($usr_groups)); - $templates = alerts_get_alert_templates(['id_group IN ('.$filter_groups.')'], ['id', 'name']); - } - - $table2->data[1][1] = html_print_select( - index_array($templates, 'id', 'name'), - 'template', - '', - '', - __('Select'), - 0, - true, - false, - true, - '', - false, - 'width: 250px;' - ); - $table2->data[1][1] .= ' '; - if (check_acl($config['id_user'], 0, 'LM')) { - $table2->data[1][1] .= ''; - $table2->data[1][1] .= html_print_image('images/add.png', true); - $table2->data[1][1] .= ''.__('Create Template').''; - $table2->data[1][1] .= ''; - } - - $table2->data[2][0] = __('Threshold'); - $table2->data[2][1] = html_print_input_text('module_action_threshold', '0', '', 5, 7, true); - $table2->data[2][1] .= ' '.__('seconds'); - - $content2 = '
'; - $content2 .= html_print_table($table2, true); - - $content2 .= '
'; - $content2 .= html_print_submit_button(__('Add alert'), 'add', false, 'class="sub wand"', true); - $content2 .= html_print_input_hidden('create_alert', $uniqid, true); - $content2 .= '
'; - - $module_name = ui_print_truncate_text(io_safe_output($agent_module['nombre']), 40, false, true, false, '…', false); - echo ''; - } - - html_print_table($table); - } else { - $filter = [ - 'offset' => (int) $offset, - 'limit' => (int) $config['block_size'], - ]; - $filter_count = []; - - if ($group_id > 0) { - $filter['id_grupo'] = $group_id; - $filter_count['id_grupo'] = $group_id; - } - - // Get the id of all agents with alerts - $sql = 'SELECT DISTINCT(id_agente) - FROM tagente_modulo - WHERE id_agente_modulo IN - (SELECT id_agent_module - FROM talert_template_modules)'; - $agents_with_alerts_raw = db_get_all_rows_sql($sql); - - if ($agents_with_alerts_raw === false) { - $agents_with_alerts_raw = []; - } - - $agents_with_alerts = []; - foreach ($agents_with_alerts_raw as $awar) { - $agents_with_alerts[] = $awar['id_agente']; - } - - $filter['id_agente'] = $agents_with_alerts; - $filter_count['id_agente'] = $agents_with_alerts; - - $agents = agents_get_agents($filter); - - $nagents = count(agents_get_agents($filter_count)); - - if ($agents == false) { - ui_print_info_message(['no_close' => true, 'message' => __('There are no agents with alerts') ]); - return; - } - - $all_alerts = agents_get_alerts_simple(); - - if ($config['pure'] == 1) { - $block = count($all_alerts); - } - - $templates = []; - $agent_alerts = []; - foreach ($all_alerts as $alert) { - $templates[$alert['id_alert_template']] = ''; - $agent_alerts[$alert['agent_name']][$alert['id_alert_template']][] = $alert; - } - - // Prepare pagination - ui_pagination( - $nagents, - false, - 0, - 0, - false, - 'offset', - true, - '', - '', - [ - 'count' => '', - 'offset' => 'offset_param', - ], - 'alerts_agents' - ); - - echo ''; - echo ''; - echo "'; - - if ($hor_offset > 0) { - $new_hor_offset = ($hor_offset - $block); - echo "'; - } - - $templates_raw = []; - if (!empty($templates)) { - $sql = sprintf( - 'SELECT id, name - FROM talert_templates - WHERE id IN (%s)', - implode(',', array_keys($templates)) - ); - - $templates_raw = db_get_all_rows_sql($sql); - } - - if (empty($templates_raw)) { - $templates_raw = []; - } - - $alerts = []; - $ntemplates = 0; - foreach ($templates_raw as $temp) { - if (isset($templates[$temp['id']]) && $templates[$temp['id']] == '') { - $ntemplates++; - if ($ntemplates <= $hor_offset || $ntemplates > ($hor_offset + $block)) { - continue; - } - - $templates[$temp['id']] = $temp['name']; - } - } - - foreach ($templates as $tid => $tname) { - if ($tname == '') { - continue; - } - - echo ''; - } - - echo ''; - if (($hor_offset + $block) < $ntemplates) { - $new_hor_offset = ($hor_offset + $block); - echo "'; - } - - foreach ($agents as $agent) { - $alias = db_get_row('tagente', 'id_agente', $agent['id_agente']); - echo ''; - // Name of the agent - echo ''; - - // Alerts of the agent - $anyfired = false; - foreach ($templates as $tid => $tname) { - if ($tname == '') { - continue; - } - - if (isset($agent_alerts[$agent['nombre']][$tid])) { - foreach ($agent_alerts[$agent['nombre']][$tid] as $alert) { - if ($alert['times_fired'] > 0) { - $anyfired = true; - } - } - - $cellstyle = ''; - if ($anyfired) { - $cellstyle = 'background:'.COL_ALERTFIRED.';'; - } - - echo ''; - } - - echo ''; - } - - echo '
".__('Agents').' / '.__('Alert templates').' - ".html_print_image('images/darrowleft.png', true, ['title' => __('Previous templates')]).' '.io_safe_output($tname).'
- ".html_print_image('images/darrowright.png', true, ['title' => __('More templates')]).'
'.$alias['alias'].' '; - - $uniqid = uniqid(); - echo '
'; - - echo count($agent_alerts[$agent['nombre']][$tid]).' '.__('Alerts').' '; - - echo "".html_print_image('images/zoom.png', true).''; - - echo '
'; - - print_alerts_summary_modal_window($uniqid, $agent_alerts[$agent['nombre']][$tid]); - } else { - echo '
'; - } - - echo '
'; - - ui_pagination( - $nagents, - false, - 0, - 0, - false, - 'offset', - true, - 'pagination-bottom', - '', - [ - 'count' => '', - 'offset' => 'offset_param', - ], - 'alerts_agents' - ); + // Stop this execution, but continue 'globally'. + return; } + // AJAX controller. + if (is_ajax() === true) { + $method = get_parameter('method'); + + if (method_exists($obj, $method) === true) { + $obj->{$method}(); + } else { + $obj->error('Method not found. ['.$method.']'); + } + + // Stop any execution. + exit; + } else { + // Run. + $obj->run(); + } } - - -// Print the modal window for the summary of each alerts group -function print_alerts_summary_modal_window($id, $alerts) -{ - $table->width = '98%'; - $table->class = 'info_table'; - $table->data = []; - - $table->head[0] = __('Module'); - $table->head[1] = __('Action'); - $table->head[2] = __('Last fired'); - $table->head[3] = __('Status'); - - foreach ($alerts as $alert) { - $data[0] = modules_get_agentmodule_name($alert['id_agent_module']); - - $actions = alerts_get_alert_agent_module_actions($alert['id']); - - $actionDefault = db_get_value_sql( - ' - SELECT id_alert_action - FROM talert_templates - WHERE id = '.$alert['id_alert_template'] - ); - - $actionText = ''; - - if (!empty($actions)) { - $actionText = '
'; - } else { - if (!empty($actionDefault)) { - $actionText = db_get_sql( - "SELECT name - FROM talert_actions - WHERE id = $actionDefault" - ).' ('.__('Default').')'; - } - } - - $data[1] = $actionText; - $data[2] = ui_print_timestamp($alert['last_fired'], true); - - $status = STATUS_ALERT_NOT_FIRED; - - if ($alert['times_fired'] > 0) { - $status = STATUS_ALERT_FIRED; - $title = __('Alert fired').' '.$alert['internal_counter'].' '.__('time(s)'); - } else if ($alert['disabled'] > 0) { - $status = STATUS_ALERT_DISABLED; - $title = __('Alert disabled'); - } else { - $status = STATUS_ALERT_NOT_FIRED; - $title = __('Alert not fired'); - } - - $data[3] = ui_print_status_image($status, $title, true); - - array_push($table->data, $data); - } - - $content = html_print_table($table, true); - - $agent = modules_get_agentmodule_agent_alias($alerts[0]['id_agent_module']); - $template = alerts_get_alert_template_name($alerts[0]['id_alert_template']); - - echo ''; -} - - -extensions_add_operation_menu_option(__('Agents/Alerts view'), 'estado', null, 'v1r1', 'view'); -extensions_add_main_function('mainAgentsAlerts'); - -ui_require_jquery_file('pandora'); - -?> - - diff --git a/pandora_console/extensions/agents_modules.php b/pandora_console/extensions/agents_modules.php index 0a3cc2a382..eb699b7467 100644 --- a/pandora_console/extensions/agents_modules.php +++ b/pandora_console/extensions/agents_modules.php @@ -26,17 +26,6 @@ function agents_modules_load_js() $ignored_params['refresh'] = ''; ?> - - + + '; } @@ -563,6 +568,11 @@ class HTML if (!$direct) { $output .= ''; } + + // Raw content for attach at the end of the input. + if (isset($input['surround_end']) === true) { + $output .= $input['surround_end']; + } } else { $output .= self::printInput($input['arguments']); // Allow dynamic content. diff --git a/pandora_console/include/config_process.php b/pandora_console/include/config_process.php index aaef860190..52c30c5ecb 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 = 'PC201124'; +$build_version = 'PC201125'; $pandora_version = 'v7.0NG.750'; // Do not overwrite default timezone set if defined. diff --git a/pandora_console/include/functions_html.php b/pandora_console/include/functions_html.php index 2c71835165..bda3a759e0 100644 --- a/pandora_console/include/functions_html.php +++ b/pandora_console/include/functions_html.php @@ -2168,6 +2168,55 @@ function html_print_div($options, $return=false) } +/** + * Render an anchor html element. + * + * @param array $options Parameters + * - id: string + * - style: string + * - title: string + * - href: string. + * @param boolean $return Return or echo flag. + * + * @return string HTML code if return parameter is true. + */ +function html_print_anchor( + array $options, + bool $return=false +) { + $output = ''; } diff --git a/pandora_console/include/javascript/dynamic_service.js b/pandora_console/include/javascript/dynamic_service.js new file mode 100644 index 0000000000..ef1af08a15 --- /dev/null +++ b/pandora_console/include/javascript/dynamic_service.js @@ -0,0 +1,71 @@ +function updateSmartValue(event) { + var eventType = event.type; + var inputElement = $("#" + event.target.id); + var inputValue = inputElement.val(); + var valueType = event.target.id.split("-"); + + if (eventType === "focus") { + inputElement.val(parseInt(inputValue)); + } else if (eventType === "blur") { + change_mode(); + } else { + var keyPressed = event.keyCode; + if ( + (keyPressed <= 48 && keyPressed >= 57) || + (inputElement.val() < 0 || inputElement.val() > 100) + ) { + event.preventDefault(); + } else { + $("#text-" + valueType[0]).val(inputElement.val()); + } + } +} + +function change_mode(alt) { + var modeStatus = $("#mode").val(); + var serviceMode = $("#hidden-service_mode_smart").val(); + if (modeStatus == serviceMode) { + $(".smart_thresholds").css("display", "inline-flex"); + + var crit = parseFloat($("#text-critical").val()); + var warn = parseFloat($("#text-warning").val()); + + if (crit < warn) { + $("#text-critical").val($("#text-warning").val()); + } + + $("#critical-val-d").val($("#text-critical").val() + " %"); + $("#warning-val-d").val($("#text-warning").val() + " %"); + + if (alt != 1) { + $("#text-critical") + .prop("type", "range") + .prop("step", "0.01") + .prop("min", "0") + .prop("max", "100") + .on("input", function() { + change_mode(1); + }); + + $("#text-warning") + .prop("type", "range") + .prop("step", "0.01") + .prop("min", "0") + .prop("max", "100") + .on("input", function() { + change_mode(1); + }); + } + } else { + $(".smart_thresholds").css("display", "none"); + + $("#text-critical") + .prop("type", "number") + .on("input", function() {}) + .show(); + $("#text-warning") + .prop("type", "number") + .on("input", function() {}) + .show(); + } +} diff --git a/pandora_console/include/styles/agent_alerts.css b/pandora_console/include/styles/agent_alerts.css new file mode 100644 index 0000000000..b3118ddd27 --- /dev/null +++ b/pandora_console/include/styles/agent_alerts.css @@ -0,0 +1,70 @@ +/* Specific CSS for Agent/Alerts view */ + +.agents_modules_table .table { + width: 100%; + table-layout: fixed; +} + +.agents_modules_table .next_previous_step { + width: 0.1%; +} + +.agents_modules_table .header_table_principal_cell { + text-align: right !important; + padding-right: 13px; + width: 20%; +} + +.agents_modules_table .header_table_caption_cell { + height: 200px; +} + +.agents_modules_table .position_text_module { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; +} + +/* .agents_modules_table .position_text_module div { + padding-left: 10px; + margin-top: 90px; +} */ + +#full_screen_refresh_box, +#slc-refresh-rate, +#img-full-screen { + float: right; +} + +#full_screen_refresh_box > li > label { + width: 100px; + margin-left: 20px; +} + +.full_screen_button { + color: transparent; + width: 20%; + border: 0; +} + +.agent_alerts_header_pure { + position: absolute; +} + +.agents_alerts_header form > ul > li { + display: inline-flex; +} + +.agents_alerts_header form ul { + clear: both; + width: 100%; +} + +.agents_alerts_header form > ul > li:nth-child(1n + 1) { + margin-left: 2em; +} + +.pagination-bottom { + margin-top: 15px; +} diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css index 922ed8c79a..24ea783b34 100644 --- a/pandora_console/include/styles/pandora.css +++ b/pandora_console/include/styles/pandora.css @@ -688,7 +688,7 @@ select:-internal-list-box { float: right; } .invisible { - display: none; + display: none !important; } div#page { @@ -1710,6 +1710,20 @@ input.remove-item-img { background-position: center; } +button.pure_full, +input.pure_full { + background-image: url(../../images/full_screen.png); + background-repeat: no-repeat; + background-size: 21px 21px; +} + +button.pure_normal, +input.pure_normal { + background-image: url(../../images/normal_screen.png); + background-repeat: no-repeat; + background-size: 21px 21px; +} + /* end of classes for event priorities */ div#main_pure { background-color: #fefefe; @@ -5798,6 +5812,13 @@ div#status_pie { border-radius: 5px; } +.status_rounded_rectangles.text_inside { + color: #ffffff; + text-align: center; + font-weight: bold; + padding-top: 0.4em; +} + .status_small_squares, .status_balls { width: 12px; @@ -6039,3 +6060,12 @@ div.graph div.legend div, div.graph div.legend table { top: 25px !important; } + +.rotate_text_module { + -ms-transform: rotate(270deg); + -webkit-transform: rotate(270deg); + -moz-transform: rotate(270deg); + -o-transform: rotate(270deg); + writing-mode: lr-tb; + white-space: nowrap; +} diff --git a/pandora_console/install.php b/pandora_console/install.php index 23a3ef747c..4977e126a8 100644 --- a/pandora_console/install.php +++ b/pandora_console/install.php @@ -129,7 +129,7 @@
[ qw() ] ); diff --git a/pandora_server/pandora_server.redhat.spec b/pandora_server/pandora_server.redhat.spec index 0f4b208d1d..937c710e50 100644 --- a/pandora_server/pandora_server.redhat.spec +++ b/pandora_server/pandora_server.redhat.spec @@ -3,7 +3,7 @@ # %define name pandorafms_server %define version 7.0NG.750 -%define release 201124 +%define release 201125 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server.spec b/pandora_server/pandora_server.spec index a64aa27d5d..3233924b62 100644 --- a/pandora_server/pandora_server.spec +++ b/pandora_server/pandora_server.spec @@ -3,7 +3,7 @@ # %define name pandorafms_server %define version 7.0NG.750 -%define release 201124 +%define release 201125 Summary: Pandora FMS Server Name: %{name} diff --git a/pandora_server/pandora_server_installer b/pandora_server/pandora_server_installer index 317a7cbe28..edbd9d50d5 100755 --- a/pandora_server/pandora_server_installer +++ b/pandora_server/pandora_server_installer @@ -9,7 +9,7 @@ # ********************************************************************** PI_VERSION="7.0NG.750" -PI_BUILD="201124" +PI_BUILD="201125" MODE=$1 if [ $# -gt 1 ]; then diff --git a/pandora_server/util/pandora_db.pl b/pandora_server/util/pandora_db.pl index 124c8f652f..bcac319542 100755 --- a/pandora_server/util/pandora_db.pl +++ b/pandora_server/util/pandora_db.pl @@ -35,7 +35,7 @@ use PandoraFMS::Config; use PandoraFMS::DB; # version: define current version -my $version = "7.0NG.750 PS201124"; +my $version = "7.0NG.750 PS201125"; # Pandora server configuration my %conf; diff --git a/pandora_server/util/pandora_manage.pl b/pandora_server/util/pandora_manage.pl index 3486a07755..197136717e 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.750 PS201124"; +my $version = "7.0NG.750 PS201125"; # save program name for logging my $progname = basename($0);