2, // Networkmap type. 'id_tipo_modulo' => [ '<>2', // != generic_proc '<>6', // != remote_icmp_proc '<>9', // != remote_tcp_proc '<>6', // != remote_tcp_proc '<>18', // != remote_snmp_proc '<>21', // != async_proc '<>31', ], // != web_proc ] ); if (empty($modules_networkmap_no_proc)) { $modules_networkmap_no_proc = []; } $modules_others = agents_get_modules( $id_agente, false, [ 'id_tipo_modulo' => [ '<>2', // != generic_proc '<>6', // != remote_icmp_proc '<>9', // != remote_tcp_proc '<>6', // != remote_tcp_proc '<>18', // != remote_snmp_proc '<>21', // != async_proc '<>31', ], // != web_proc ] ); if (empty($modules_others)) { $modules_others = []; } $modules_boolean = agents_get_modules( $id_agente, false, [ 'id_tipo_modulo' => [ '<>1', '<>3', '<>4', '<>5', '<>7', '<>8', '<>10', '<>11', '<>15', '<>16', '<>17', '<>22', '<>23', '<>24', '<>30', '<>32', '<>33', '<>100', ], ] ); if (empty($modules_boolean)) { $modules_boolean = []; } // Cleaned the duplicate $modules and other things. $modules_others = array_diff_key( $modules_others, $modules_networkmap_no_proc ); foreach ($modules_others as $i => $m) { $modules_others[$i] = [ 'optgroup' => __('Other modules'), 'name' => $m, ]; } foreach ($modules_networkmap_no_proc as $i => $m) { $modules_networkmap_no_proc[$i] = [ 'optgroup' => __('Modules network no proc'), 'name' => $m, ]; } foreach ($modules_boolean as $i => $m) { $modules_boolean[$i] = [ 'optgroup' => __('Modules boolean'), 'name' => $m, ]; } $list_modules = ($modules_networkmap_no_proc + $modules_others + $modules_boolean); asort($list_modules); // ---------------------------------------------------------------------- if (empty($modules)) { // Selected the first 6 modules. $module_ids = array_keys($list_modules); $module_ids = array_slice($module_ids, 0, 12); $modules = $module_ids; } $table = new stdClass(); $table->width = '100%'; $table->class = 'databox filters'; $table->style[0] = 'font-weight: bolder; text-align: left;'; $table->size[0] = '10%'; $table->style[1] = 'font-weight: bolder; text-align: left;'; $table->size[1] = '15%'; $table->style[2] = 'font-weight: bolder; text-align: left;'; $table->size[2] = '10%'; $table->style[3] = 'font-weight: bolder; text-align: left;'; $table->size[3] = '20%'; $table->rowspan[0][0] = 7; $table->rowspan[0][1] = 7; $table->data[0][0] = __('Modules'); $table->data[0][1] = html_print_select( $list_modules, 'modules[]', $modules, '', '', 0, true, true, true, '', false, 'min-width:200px;max-width:460px;height: 200px;' ); $table->rowspan[2][0] = 7; $table->data[2][0] = ''; $table->data[2][1] = __('Begin date'); $table->data[2][2] = html_print_input_text('start_date', substr($start_date, 0, 10), '', 10, 40, true); $table->data[2][2] .= html_print_image( 'images/calendar_view_day.png', true, [ 'class' => 'invert_filter', 'onclick' => "scwShow(scwID('text-start_date'),this);", ] ); $table->data[3][1] = __('Time range'); $table->data[3][2] = html_print_extended_select_for_time( 'period', $period, 'check_period_warning(this, \''.__('Warning').'\', \''.__('Displaying items with extended historical data can have an impact on system performance. We do not recommend that you use intervals longer than 30 days, especially if you combine several of them in a report, dashboard or visual console.').'\')', '', 0, 7, true, false, true, '', false, false, '', false, 0, null, 'check_period_warning_manual(\'period\', \''.__('Warning').'\', \''.__('Displaying items with extended historical data can have an impact on system performance. We do not recommend that you use intervals longer than 30 days, especially if you combine several of them in a report, dashboard or visual console.').'\')' ); $table->data[4][2] = __('Show events'); $table->data[4][3] = html_print_checkbox('draw_events', 1, (bool) $draw_events, true); $table->data[5][2] = __('Show alerts').ui_print_help_tip(__('the combined graph does not show the alerts into this graph'), true); $table->data[5][3] = html_print_checkbox('draw_alerts', 1, (bool) $draw_alerts, true); $table->data[6][2] = __('Show as one combined graph'); $graph_option_one_or_several = [ 0 => __('several graphs for each module'), 1 => __('One combined graph'), ]; $table->data[6][3] = html_print_select($graph_option_one_or_several, 'combined', $combined, '', '', 1, true); $table->data[7][2] = __('Chart type'); if ($combined == 1) { $graph_option_type = [ 0 => __('Area'), 1 => __('Area stack'), 2 => __('Line'), 3 => __('Line stack'), ]; } else { $graph_option_type = [ 0 => __('Area'), 2 => __('Line'), ]; } $table->data[7][3] = html_print_select($graph_option_type, 'option_type', $option_type, '', '', 1, true); $htmlForm = '
'; $htmlForm .= html_print_table($table, true); $htmlForm .= html_print_input_hidden('filter', 1, true); $outputButtons = html_print_submit_button( __('Filter'), 'filter_button', false, [ 'icon' => 'update', 'mode' => 'secondary mini', ], true ); if ((bool) check_acl($config['id_user'], 0, 'RW') === true || (bool) check_acl($config['id_user'], 0, 'RM') === true) { $outputButtons .= html_print_button( __('Save as custom graph'), 'save_custom_graph', false, '', [ 'icon' => 'add', 'mode' => 'secondary mini', ], true ); } $htmlForm .= html_print_div( [ 'class' => 'action-buttons', 'content' => $outputButtons, ], true ); $htmlForm .= '
'; ui_toggle($htmlForm, __('Filter graphs'), __('Toggle filter(s)'), '', true); $utime = get_system_time(); $current = date('Y-m-d', $utime); if ($start_date != $current) { $date = strtotime($start_date); } else { $date = $utime; } if ($combined) { // Pass the $modules before the ajax call. echo '
'.html_print_image('images/spinner.gif', true).'
'; } else { echo '
'; foreach ($modules as $id_module) { $title = modules_get_agentmodule_name($id_module); $unit = modules_get_unit($id_module); echo '
'; echo '

'.$title.'

'; echo '
'.html_print_image('images/spinner.gif', true).'
'; echo '
'; } echo '
'; } echo "
"; echo ''; // Dialog to save the custom graph. echo "'; ?>