__('Delete') ); /* set default action */ set_default_action(); switch (get_request_var('action')) { case 'save': form_save(); break; case 'actions': form_actions(); break; case 'item_moveup_dssv': data_query_item_moveup_dssv(); header('Location: data_queries.php?header=false&action=item_edit&id=' . get_filter_request_var('snmp_query_graph_id') . '&snmp_query_id=' . get_filter_request_var('snmp_query_id')); break; case 'item_movedown_dssv': data_query_item_movedown_dssv(); header('Location: data_queries.php?header=false&action=item_edit&id=' . get_filter_request_var('snmp_query_graph_id') . '&snmp_query_id=' . get_filter_request_var('snmp_query_id')); break; case 'item_remove_dssv': data_query_item_remove_dssv(); header('Location: data_queries.php?header=false&action=item_edit&id=' . get_filter_request_var('snmp_query_graph_id') . '&snmp_query_id=' . get_filter_request_var('snmp_query_id')); break; case 'item_moveup_gsv': data_query_item_moveup_gsv(); header('Location: data_queries.php?header=false&action=item_edit&id=' . get_filter_request_var('snmp_query_graph_id') . '&snmp_query_id=' . get_filter_request_var('snmp_query_id')); break; case 'item_movedown_gsv': data_query_item_movedown_gsv(); header('Location: data_queries.php?header=false&action=item_edit&id=' . get_filter_request_var('snmp_query_graph_id') . '&snmp_query_id=' . get_filter_request_var('snmp_query_id')); break; case 'item_remove_gsv': data_query_item_remove_gsv(); header('Location: data_queries.php?header=false&action=item_edit&id=' . get_filter_request_var('snmp_query_graph_id') . '&snmp_query_id=' . get_filter_request_var('snmp_query_id')); break; case 'item_remove_confirm': data_query_item_remove_confirm(); break; case 'item_remove': data_query_item_remove(); header('Location: data_queries.php?header=false&action=edit&id=' . get_filter_request_var('snmp_query_id')); break; case 'item_edit': top_header(); data_query_item_edit(); bottom_footer(); break; case 'remove': data_query_remove(); header ('Location: data_queries.php'); break; case 'edit': top_header(); data_query_edit(); bottom_footer(); break; default: top_header(); data_query(); bottom_footer(); break; } /* -------------------------- The Save Function -------------------------- */ function form_save() { if (isset_request_var('save_component_snmp_query')) { get_filter_request_var('id'); get_filter_request_var('data_input_id'); $save['id'] = get_request_var('id'); $save['hash'] = get_hash_data_query(get_nfilter_request_var('id')); $save['name'] = form_input_validate(get_nfilter_request_var('name'), 'name', '', false, 3); $save['description'] = form_input_validate(get_nfilter_request_var('description'), 'description', '', true, 3); $save['xml_path'] = form_input_validate(get_nfilter_request_var('xml_path'), 'xml_path', '', false, 3); $save['data_input_id'] = get_request_var('data_input_id'); if (!is_error_message()) { $snmp_query_id = sql_save($save, 'snmp_query'); if ($snmp_query_id) { raise_message(1); update_replication_crc(0, 'poller_replicate_snmp_query_crc'); }else{ raise_message(2); } } header('Location: data_queries.php?header=false&action=edit&id=' . (empty($snmp_query_id) ? get_request_var('id') : $snmp_query_id)); }elseif (isset_request_var('save_component_snmp_query_item') && !isset_request_var('svg_x') && !isset_request_var('svds_x')) { /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('snmp_query_id'); get_filter_request_var('graph_template_id'); /* ==================================================== */ $save['id'] = get_request_var('id'); $save['hash'] = get_hash_data_query(get_nfilter_request_var('id'), 'data_query_graph'); $save['snmp_query_id'] = get_request_var('snmp_query_id'); $save['name'] = form_input_validate(get_nfilter_request_var('name'), 'name', '', false, 3); $save['graph_template_id'] = get_request_var('graph_template_id'); $header = ''; if (!is_error_message()) { $snmp_query_graph_id = sql_save($save, 'snmp_query_graph'); if ($snmp_query_graph_id) { raise_message(1); /* if the user changed the graph template, go through and delete everything that was associated with the old graph template */ if (get_nfilter_request_var('graph_template_id') != get_nfilter_request_var('graph_template_id_prev')) { db_execute_prepared('DELETE FROM snmp_query_graph_rrd_sv WHERE snmp_query_graph_id = ?', array($snmp_query_graph_id)); db_execute_prepared('DELETE FROM snmp_query_graph_sv WHERE snmp_query_graph_id = ?', array($snmp_query_graph_id)); } db_execute_prepared('DELETE FROM snmp_query_graph_rrd WHERE snmp_query_graph_id = ?', array($snmp_query_graph_id)); while (list($var, $val) = each($_POST)) { if (preg_match('/^dsdt_([0-9]+)_([0-9]+)_check/i', $var)) { $data_template_id = preg_replace('/^dsdt_([0-9]+)_([0-9]+).+/', "\\1", $var); $data_template_rrd_id = preg_replace('/^dsdt_([0-9]+)_([0-9]+).+/', "\\2", $var); /* ================= input validation ================= */ input_validate_input_number($data_template_id); input_validate_input_number($data_template_rrd_id); /* ==================================================== */ db_execute_prepared('REPLACE INTO snmp_query_graph_rrd (snmp_query_graph_id, data_template_id, data_template_rrd_id, snmp_field_name) VALUES (?, ?, ?, ?)', array($snmp_query_graph_id, $data_template_id, $data_template_rrd_id, get_nfilter_request_var('dsdt_' . $data_template_id . '_' . $data_template_rrd_id . '_snmp_field_output'))); } } if (isset_request_var('header') && get_nfilter_request_var('header') == 'false') { $header = '&header=false'; }else{ $header = ''; } }else{ raise_message(2); $header = ''; } } header('Location: data_queries.php?header=false&action=item_edit' . $header . '&id=' . (empty($snmp_query_graph_id) ? get_request_var('id') : $snmp_query_graph_id) . '&snmp_query_id=' . get_request_var('snmp_query_id')); }elseif (isset_request_var('svg_x') && !isempty_request_var('svg_text') && !isempty_request_var('svg_field')) { /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('snmp_query_id'); get_filter_request_var('graph_template_id'); /* ==================================================== */ /* suggested values -- graph templates */ $sequence = get_sequence(0, 'sequence', 'snmp_query_graph_sv', 'snmp_query_graph_id=' . get_filter_request_var('id') . " AND field_name = " . db_qstr(get_nfilter_request_var('svg_field'))); $hash = get_hash_data_query(0, 'data_query_sv_graph'); $header = ''; db_execute_prepared('INSERT INTO snmp_query_graph_sv (hash, snmp_query_graph_id, sequence, field_name, text) VALUES (?, ?, ?, ?, ?)', array($hash, get_request_var('id'), $sequence, get_nfilter_request_var('svg_field'), get_nfilter_request_var('svg_text'))); clear_messages(); if (isset_request_var('header') && get_nfilter_request_var('header') == 'false') { $header = '&header=false'; }else{ $header = ''; } header('Location: data_queries.php?header=false&action=item_edit' . $header . '&id=' . get_request_var('id') . '&snmp_query_id=' . get_request_var('snmp_query_id')); }elseif (isset_request_var('svds_x')) { /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('snmp_query_id'); get_filter_request_var('graph_template_id'); /* ==================================================== */ while (list($var, $val) = each($_POST)) { if (preg_match('/^svds_([0-9]+)_text/i', $var, $matches)) { /* ================= input validation ================= */ input_validate_input_number($matches[1]); /* ==================================================== */ $sequence = get_sequence(0, 'sequence', 'snmp_query_graph_rrd_sv', 'snmp_query_graph_id=' . get_request_var('id') . ' AND data_template_id=' . $matches[1] . " AND field_name='" . get_nfilter_request_var('svds_' . $matches[1] . '_field') . "'"); $hash = get_hash_data_query(0, 'data_query_sv_data_source'); db_execute_prepared('INSERT INTO snmp_query_graph_rrd_sv (hash, snmp_query_graph_id, data_template_id, sequence, field_name, text) VALUES (?, ?, ?, ?, ?, ?)', array($hash, get_request_var('id'), $matches[1], $sequence, get_nfilter_request_var('svds_' . $matches[1] . '_field'), get_nfilter_request_var('svds_' . $matches[1] . '_text'))); clear_messages(); if (isset_request_var('header') && get_nfilter_request_var('header') == 'false') { $header = '&header=false'; }else{ $header = ''; } header('Location: data_queries.php?header=false&action=item_edit' . $header . '&id=' . get_request_var('id') . '&snmp_query_id=' . get_request_var('snmp_query_id')); break; } } } } function form_actions() { global $dq_actions; /* ================= input validation ================= */ get_filter_request_var('drp_action', FILTER_VALIDATE_REGEXP, array('options' => array('regexp' => '/^([a-zA-Z0-9_]+)$/'))); /* ==================================================== */ /* if we are to save this form, instead of display it */ if (isset_request_var('selected_items')) { $selected_items = sanitize_unserialize_selected_items(get_nfilter_request_var('selected_items')); if ($selected_items != false) { if (get_nfilter_request_var('drp_action') == '1') { /* delete */ for ($i=0;($i'; $dq_array[$i] = $matches[1]; $i++; } } top_header(); form_start('data_queries.php'); html_start_box($dq_actions{get_nfilter_request_var('drp_action')}, '60%', '', '3', 'center', ''); if (isset($dq_array) && sizeof($dq_array)) { if (get_nfilter_request_var('drp_action') == '1') { /* delete */ $graphs = array(); print "

" . __n('Click \'Continue\' to delete the following Data Query.', 'Click \'Continue\' to delete following Data Queries.', sizeof($dq_array)) . "

\n"; } $save_html = " "; }else{ print "" . __('You must select at least one data query.') . "\n"; $save_html = ""; } print " $save_html \n"; html_end_box(); form_end(); bottom_footer(); } /* ---------------------------- Data Query Graph Functions ---------------------------- */ function data_query_item_movedown_gsv() { /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('snmp_query_graph_id'); /* ==================================================== */ move_item_down('snmp_query_graph_sv', get_request_var('id'), 'snmp_query_graph_id=' . get_request_var('snmp_query_graph_id') . " AND field_name = " . db_qstr(get_nfilter_request_var('field_name'))); } function data_query_item_moveup_gsv() { /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('snmp_query_graph_id'); /* ==================================================== */ move_item_up('snmp_query_graph_sv', get_request_var('id'), 'snmp_query_graph_id=' . get_request_var('snmp_query_graph_id') . " AND field_name = " . db_qstr(get_nfilter_request_var('field_name'))); } function data_query_item_remove_gsv() { /* ================= input validation ================= */ get_filter_request_var('id'); /* ==================================================== */ db_execute_prepared('DELETE FROM snmp_query_graph_sv WHERE id = ?', array(get_request_var('id'))); } function data_query_item_movedown_dssv() { /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('data_template_id'); get_filter_request_var('snmp_query_graph_id'); /* ==================================================== */ move_item_down('snmp_query_graph_rrd_sv', get_request_var('id'), 'data_template_id=' . get_request_var('data_template_id') . ' AND snmp_query_graph_id=' . get_request_var('snmp_query_graph_id') . " AND field_name = " . db_qstr(get_nfilter_request_var('field_name'))); } function data_query_item_moveup_dssv() { /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('data_template_id'); get_filter_request_var('snmp_query_graph_id'); /* ==================================================== */ move_item_up('snmp_query_graph_rrd_sv', get_request_var('id'), 'data_template_id=' . get_request_var('data_template_id') . ' AND snmp_query_graph_id=' . get_request_var('snmp_query_graph_id') . " AND field_name = " . db_qstr(get_nfilter_request_var('field_name'))); } function data_query_item_remove_dssv() { /* ================= input validation ================= */ get_filter_request_var('id'); /* ==================================================== */ db_execute_prepared('DELETE FROM snmp_query_graph_rrd_sv WHERE id = ?', array(get_request_var('id'))); } function data_query_item_remove_confirm() { global $vdef_functions, $vdef_item_types, $custom_vdef_data_source_types; /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('snmp_query_id'); /* ==================================================== */ form_start('data_queries.php?action=edit&id' . get_request_var('snmp_query_id')); html_start_box('', '100%', '', '3', 'center', ''); $graph_template = db_fetch_row_prepared('SELECT * FROM snmp_query_graph WHERE id = ?', array(get_request_var('id'))); ?>


' onClick='$("#cdialog").dialog("close");' name='cancel'> ' name='continue' title=''> array('no_form_tag' => true), 'fields' => inject_form_variables($fields_data_query_item_edit, (isset($snmp_query_item) ? $snmp_query_item : array()), $_REQUEST) ) ); html_end_box(); ?> Data Template - " . $data_template['name'] . ' '; $data_template_rrds = db_fetch_assoc_prepared('SELECT dtr.id, dtr.data_source_name, sqgr.snmp_field_name, sqgr.snmp_query_graph_id FROM data_template_rrd AS dtr LEFT JOIN snmp_query_graph_rrd AS sqgr ON sqgr.data_template_rrd_id = dtr.id AND sqgr.snmp_query_graph_id = ? AND sqgr.data_template_id = ? WHERE dtr.data_template_id = ? AND dtr.local_data_id = 0 ORDER BY dtr.data_source_name', array(get_request_var('id'), $data_template['id'], $data_template['id'])); $i = 0; if (sizeof($data_template_rrds)) { foreach ($data_template_rrds as $data_template_rrd) { if (empty($data_template_rrd['snmp_query_graph_id'])) { $old_value = ''; }else{ $old_value = 'on'; } form_alternate_row(); ?>
';?>
1 && $i < $total_values-1) { $show_down = true; } ?> ' href=''> ' href=''> ' href=''>
' title=''>
1 && $i < $total_values-1) { $show_down = true; } ?> ' href=''> ' href=''> ' href=''>
_field' size='15'> _text' size='60'> ' title=''>
array('no_form_tag' => true), 'fields' => inject_form_variables($fields_data_query_edit, (isset($snmp_query) ? $snmp_query : array())) )); html_end_box(); if (!empty($snmp_query['id'])) { $xml_filename = str_replace('', $config['base_path'], $snmp_query['xml_path']); if ((file_exists($xml_filename)) && (is_file($xml_filename))) { $text = "" . __('Successfully located XML file') . ""; $xml_file_exists = true; }else{ $text = "" . __('Could not locate XML file.') . ""; $xml_file_exists = false; } html_start_box('', '100%', '', '3', 'center', ''); print "$text"; html_end_box(); html_start_box( __('Associated Graph Templates'), '100%', '', '3', 'center', 'data_queries.php?action=item_edit&snmp_query_id=' . $snmp_query['id']); print " " . __('Name') . " " . __('Graph Template Name') . " " . __('Mapping ID') . " " . __('Action') . " "; $snmp_query_graphs = db_fetch_assoc_prepared('SELECT sqg.id, gt.name AS graph_template_name, sqg.name FROM snmp_query_graph AS sqg LEFT JOIN graph_templates AS gt ON (sqg.graph_template_id = gt.id) WHERE sqg.snmp_query_id = ? ORDER BY sqg.name', array($snmp_query['id'])); if (sizeof($snmp_query_graphs)) { foreach ($snmp_query_graphs as $snmp_query_graph) { form_alternate_row(); ?> ' href=''> " . __('No Graph Templates Defined.') . ""; } html_end_box(); } form_save_button('data_queries.php', 'return'); ?> array( 'filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1' ), 'page' => array( 'filter' => FILTER_VALIDATE_INT, 'default' => '1' ), 'filter' => array( 'filter' => FILTER_CALLBACK, 'pageset' => true, 'default' => '', 'options' => array('options' => 'sanitize_search_string') ), 'sort_column' => array( 'filter' => FILTER_CALLBACK, 'default' => 'name', 'options' => array('options' => 'sanitize_search_string') ), 'sort_direction' => array( 'filter' => FILTER_CALLBACK, 'default' => 'ASC', 'options' => array('options' => 'sanitize_search_string') ) ); validate_store_request_vars($filters, 'sess_dq'); /* ================= input validation ================= */ if (get_request_var('rows') == '-1') { $rows = read_config_option('num_rows_table'); }else{ $rows = get_request_var('rows'); } html_start_box( __('Data Queries'), '100%', '', '3', 'center', 'data_queries.php?action=edit'); ?>

'> ' title=''> ' title=''>
'>
array('display' => __('Data Query Name'), 'align' => 'left', 'sort' => 'ASC', 'tip' => __('The name of this Data Query.')), 'id' => array('display' => __('ID'), 'align' => 'right', 'sort' => 'ASC', 'tip' => __('The internal ID for this Graph Template. Useful when performing automation or debugging.')), 'nosort' => array('display' => __('Deletable'), 'align' => 'right', 'tip' => __('Data Queries that are in use can not be Deleted. In use is defined as being referenced by either a Graph or a Graph Template.')), 'graphs' => array('display' => __('Graphs Using'), 'align' => 'right', 'sort' => 'DESC', 'tip' => __('The number of Graphs using this Data Query.')), 'templates' => array('display' => __('Templates Using'), 'align' => 'right', 'sort' => 'DESC', 'tip' => __('The number of Graphs Templates using this Data Query.')), 'data_input_method' => array('display' => __('Data Input Method'), 'align' => 'left', 'sort' => 'ASC', 'tip' => __('The Data Input Method used to collect data for Data Sources associated with this Data Query.'))); html_header_sort_checkbox($display_text, get_request_var('sort_column'), get_request_var('sort_direction'), false); $i = 0; if (sizeof($snmp_queries)) { foreach ($snmp_queries as $snmp_query) { if ($snmp_query['graphs'] == 0 && $snmp_query['templates'] == 0) { $disabled = false; }else{ $disabled = true; } form_alternate_row('line' . $snmp_query['id'], true, $disabled); form_selectable_cell(filter_value($snmp_query['name'], get_request_var('filter'), 'data_queries.php?action=edit&id=' . $snmp_query['id']), $snmp_query['id']); form_selectable_cell($snmp_query['id'], $snmp_query['id'], '', 'text-align:right;'); form_selectable_cell($disabled ? __('No') : __('Yes'), $snmp_query['id'], '', 'text-align:right'); form_selectable_cell(number_format_i18n($snmp_query['graphs']), $snmp_query['id'], '', 'text-align:right'); form_selectable_cell(number_format_i18n($snmp_query['templates']), $snmp_query['id'], '', 'text-align:right'); form_selectable_cell(filter_value($snmp_query['data_input_method'], get_request_var('filter')), $snmp_query['id']); form_checkbox_cell($snmp_query['name'], $snmp_query['id'], $disabled); form_end_row(); } }else{ print "" . __('No Data Queries Found') . ""; } html_end_box(false); if (sizeof($snmp_queries)) { print $nav; } /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($dq_actions); }