Settings -> Data'); html_end_box(); } switch(grv('action')) { case 'purge': csrf_require_post(); rrdcheck_purge(); // Fall through: display the remaining problems after purging. default: rrdcheck_display_problems(); } bottom_footer(); function rrdcheck_purge() : void { db_execute('TRUNCATE TABLE rrdcheck'); } // Display all rrdcheck entries function rrdcheck_display_problems() : void { global $item_rows; // suppress warnings error_reporting(0); draw_rrdcheck_filter(true); if (grv('rows') == '-1') { $rows = read_config_option('num_rows_table'); } else { $rows = grv('rows'); } $sql_where = ''; $sql_params = []; $secsback = grv('age'); if (grv('age') == 0) { $sql_where .= ($sql_where != '' ? ' AND ' : 'WHERE ') . 'test_date >= ?'; $sql_params[] = date('Y-m-d H:i:s', time() - (7200)); } else { $sql_where .= ($sql_where != '' ? ' AND ' : 'WHERE ') . 'test_date <= ?'; $sql_params[] = date('Y-m-d H:i:s', (time() - $secsback)); } if (grv('filter') != '') { $sql_where .= ($sql_where != '' ? ' AND ' : 'WHERE ') . '(message LIKE ? OR h.description LIKE ? OR dtd.name_cache LIKE ? OR dtd.local_data_id LIKE ?)'; $sql_params[] = '%' . grv('filter') . '%'; $sql_params[] = '%' . grv('filter') . '%'; $sql_params[] = '%' . grv('filter') . '%'; $sql_params[] = '%' . grv('filter') . '%'; } $total_rows = db_fetch_cell_prepared("SELECT COUNT(rc.local_data_id) FROM rrdcheck AS rc LEFT JOIN data_local AS dl ON rc.local_data_id = dl.id LEFT JOIN data_template_data AS dtd ON rc.local_data_id = dtd.local_data_id LEFT JOIN host AS h ON dl.host_id = h.id $sql_where", $sql_params); $sql_order = get_order_string(); $sql_limit = ' LIMIT ' . ($rows * (grv('page') - 1)) . ',' . $rows; $problems = db_fetch_assoc_prepared("SELECT h.description, dtd.name_cache, rc.local_data_id, rc.test_date, rc.message FROM rrdcheck AS rc LEFT JOIN data_local AS dl ON rc.local_data_id = dl.id LEFT JOIN data_template_data AS dtd ON rc.local_data_id = dtd.local_data_id LEFT JOIN host AS h ON dl.host_id = h.id $sql_where $sql_order $sql_limit", $sql_params); $nav = html_nav_bar(CACTI_PATH_URL . 'rrdcheck.php?filter' . grv('filter'), MAX_DISPLAY_PAGES, grv('page'), $rows, $total_rows, 8, __('RRDcheck Problems'), 'page', 'main'); form_start('rrdcheck.php'); print $nav; html_start_box('', '100%', false, 3, 'center', ''); $display_text = [ 'description' => [ 'display' => __('Host Description'), 'sort' => 'ASC' ], 'name_cache' => [ 'display' => __('Data Source'), 'sort' => 'ASC' ], 'local_data_id' => [ 'display' => __('Local Data ID'), 'align' => 'center', 'sort' => 'ASC' ], 'message' => [ 'display' => __('Message'), 'sort' => 'ASC' ], 'test_date' => [ 'display' => __('Date'), 'align' => 'right', 'sort' => 'DESC' ], ]; html_header_sort($display_text, grv('sort_column'), grv('sort_direction')); if (cacti_sizeof($problems)) { foreach ($problems as $p) { form_alternate_row('line' . $p['local_data_id'], true); if ($p['description'] == '') { $p['description'] = __('Deleted'); } if ($p['name_cache'] == '') { $p['name_cache'] = __('Deleted'); } form_selectable_cell(filter_value($p['description'], grv('filter')), $p['local_data_id']); form_selectable_cell(filter_value($p['name_cache'], grv('filter')), $p['local_data_id']); form_selectable_cell(filter_value($p['local_data_id'], grv('filter')), $p['local_data_id'], '', 'center'); form_selectable_cell(filter_value($p['message'], grv('filter')), $p['local_data_id']); form_selectable_cell($p['test_date'], $p['local_data_id'], '', 'right'); form_end_row(); } } else { print '