__('Delete'), 2 => __('Duplicate'), 3 => __('Change Settings'), 4 => __('Sync Graphs') ); /* set default action */ set_default_action(); switch (get_request_var('action')) { case 'save': form_save(); break; case 'actions': form_actions(); break; case 'input_remove': get_filter_request_var('graph_template_id'); input_remove(); header('Location: graph_templates.php?header=false&action=template_edit&id=' . get_request_var('graph_template_id')); break; case 'input_edit': top_header(); input_edit(); bottom_footer(); break; case 'template_edit': top_header(); template_edit(); bottom_footer(); break; default: top_header(); template(); bottom_footer(); break; } /* -------------------------- The Save Function -------------------------- */ function form_save() { // sanitize ids if (isset_request_var('graph_template_id') && !is_numeric(get_nfilter_request_var('graph_template_id'))) { $graph_template_id = 0; } else { $graph_template_id = get_filter_request_var('graph_template_id'); } if (isset_request_var('save_component_template')) { /* ================= input validation ================= */ get_filter_request_var('graph_template_graph_id'); /* ==================================================== */ $save1['id'] = $graph_template_id; $save1['hash'] = get_hash_graph_template($graph_template_id); $save1['name'] = form_input_validate(get_nfilter_request_var('name'), 'name', '', false, 3); $save1['multiple'] = isset_request_var('multiple') ? 'on':''; $save2['id'] = get_nfilter_request_var('graph_template_graph_id'); $save2['local_graph_template_graph_id'] = 0; $save2['local_graph_id'] = 0; $save2['t_image_format_id'] = (isset_request_var('t_image_format_id') ? get_nfilter_request_var('t_image_format_id') : ''); $save2['image_format_id'] = form_input_validate(get_nfilter_request_var('image_format_id'), 'image_format_id', '^[0-9]+$', true, 3); $save2['t_title'] = form_input_validate((isset_request_var('t_title') ? get_nfilter_request_var('t_title') : ''), 't_title', '', true, 3); $save2['title'] = form_input_validate(get_nfilter_request_var('title'), 'title', '', (isset_request_var('t_title') ? true : false), 3); $save2['t_height'] = form_input_validate((isset_request_var('t_height') ? get_nfilter_request_var('t_height') : ''), 't_height', '', true, 3); $save2['height'] = form_input_validate(get_nfilter_request_var('height'), 'height', '^[0-9]+$', (isset_request_var('t_height') ? true : false), 3); $save2['t_width'] = form_input_validate((isset_request_var('t_width') ? get_nfilter_request_var('t_width') : ''), 't_width', '', true, 3); $save2['width'] = form_input_validate(get_nfilter_request_var('width'), 'width', '^[0-9]+$', (isset_request_var('t_width') ? true : false), 3); $save2['t_upper_limit'] = form_input_validate((isset_request_var('t_upper_limit') ? get_nfilter_request_var('t_upper_limit') : ''), 't_upper_limit', '', true, 3); $save2['upper_limit'] = form_input_validate(get_nfilter_request_var('upper_limit'), 'upper_limit', '^(-?([0-9]+(\.[0-9]*)?|[0-9]*\.[0-9]+)([eE][+\-]?[0-9]+)?)|U$', ((isset_request_var('t_upper_limit') || (strlen(get_nfilter_request_var('upper_limit')) === 0)) ? true : false), 3); $save2['t_lower_limit'] = form_input_validate((isset_request_var('t_lower_limit') ? get_nfilter_request_var('t_lower_limit') : ''), 't_lower_limit', '', true, 3); $save2['lower_limit'] = form_input_validate(get_nfilter_request_var('lower_limit'), 'lower_limit', '^(-?([0-9]+(\.[0-9]*)?|[0-9]*\.[0-9]+)([eE][+\-]?[0-9]+)?)|U$', ((isset_request_var('t_lower_limit') || (strlen(get_nfilter_request_var('lower_limit')) === 0)) ? true : false), 3); $save2['t_vertical_label'] = form_input_validate((isset_request_var('t_vertical_label') ? get_nfilter_request_var('t_vertical_label') : ''), 't_vertical_label', '', true, 3); $save2['vertical_label'] = form_input_validate(get_nfilter_request_var('vertical_label'), 'vertical_label', '', true, 3); $save2['t_slope_mode'] = form_input_validate((isset_request_var('t_slope_mode') ? get_nfilter_request_var('t_slope_mode') : ''), 't_slope_mode', '', true, 3); $save2['slope_mode'] = form_input_validate((isset_request_var('slope_mode') ? get_nfilter_request_var('slope_mode') : ''), 'slope_mode', '', true, 3); $save2['t_auto_scale'] = form_input_validate((isset_request_var('t_auto_scale') ? get_nfilter_request_var('t_auto_scale') : ''), 't_auto_scale', '', true, 3); $save2['auto_scale'] = form_input_validate((isset_request_var('auto_scale') ? get_nfilter_request_var('auto_scale') : ''), 'auto_scale', '', true, 3); $save2['t_auto_scale_opts'] = form_input_validate((isset_request_var('t_auto_scale_opts') ? get_nfilter_request_var('t_auto_scale_opts') : ''), 't_auto_scale_opts', '', true, 3); $save2['auto_scale_opts'] = form_input_validate(get_nfilter_request_var('auto_scale_opts'), 'auto_scale_opts', '', true, 3); $save2['t_auto_scale_log'] = form_input_validate((isset_request_var('t_auto_scale_log') ? get_nfilter_request_var('t_auto_scale_log') : ''), 't_auto_scale_log', '', true, 3); $save2['auto_scale_log'] = form_input_validate((isset_request_var('auto_scale_log') ? get_nfilter_request_var('auto_scale_log') : ''), 'auto_scale_log', '', true, 3); $save2['t_scale_log_units'] = form_input_validate((isset_request_var('t_scale_log_units') ? get_nfilter_request_var('t_scale_log_units') : ''), 't_scale_log_units', '', true, 3); $save2['scale_log_units'] = form_input_validate((isset_request_var('scale_log_units') ? get_nfilter_request_var('scale_log_units') : ''), 'scale_log_units', '', true, 3); $save2['t_auto_scale_rigid'] = form_input_validate((isset_request_var('t_auto_scale_rigid') ? get_nfilter_request_var('t_auto_scale_rigid') : ''), 't_auto_scale_rigid', '', true, 3); $save2['auto_scale_rigid'] = form_input_validate((isset_request_var('auto_scale_rigid') ? get_nfilter_request_var('auto_scale_rigid') : ''), 'auto_scale_rigid', '', true, 3); $save2['t_auto_padding'] = form_input_validate((isset_request_var('t_auto_padding') ? get_nfilter_request_var('t_auto_padding') : ''), 't_auto_padding', '', true, 3); $save2['auto_padding'] = form_input_validate((isset_request_var('auto_padding') ? get_nfilter_request_var('auto_padding') : ''), 'auto_padding', '', true, 3); $save2['t_base_value'] = form_input_validate((isset_request_var('t_base_value') ? get_nfilter_request_var('t_base_value') : ''), 't_base_value', '', true, 3); $save2['base_value'] = form_input_validate(get_nfilter_request_var('base_value'), 'base_value', '^[0-9]+$', (isset_request_var('t_base_value') ? true : false), 3); $save2['t_unit_value'] = form_input_validate((isset_request_var('t_unit_value') ? get_nfilter_request_var('t_unit_value') : ''), 't_unit_value', '', true, 3); $save2['unit_value'] = form_input_validate(get_nfilter_request_var('unit_value'), 'unit_value', '', true, 3); $save2['t_unit_exponent_value'] = form_input_validate((isset_request_var('t_unit_exponent_value') ? get_nfilter_request_var('t_unit_exponent_value') : ''), 't_unit_exponent_value', '', true, 3); $save2['unit_exponent_value'] = form_input_validate(get_nfilter_request_var('unit_exponent_value'), 'unit_exponent_value', '^-?[0-9]+$', true, 3); $save2['t_alt_y_grid'] = form_input_validate((isset_request_var('t_alt_y_grid') ? get_nfilter_request_var('t_alt_y_grid') : ''), 't_alt_y_grid', '', true, 3); $save2['alt_y_grid'] = form_input_validate((isset_request_var('alt_y_grid') ? get_nfilter_request_var('alt_y_grid') : ''), 'alt_y_grid', '', true, 3); $save2['t_right_axis'] = form_input_validate((isset_request_var('t_right_axis') ? get_nfilter_request_var('t_right_axis') : ''), 't_right_axis', '', true, 3); $save2['right_axis'] = form_input_validate((isset_request_var('right_axis') ? get_nfilter_request_var('right_axis') : ''), 'right_axis', '^-?([0-9]+(\.[0-9]*)?|\.[0-9]+):-?([0-9]+(\.[0-9]*)?|\.[0-9]+)$', true, 3); $save2['t_right_axis_label'] = form_input_validate((isset_request_var('t_right_axis_label') ? get_nfilter_request_var('t_right_axis_label') : ''), 't_right_axis_label', '', true, 3); $save2['right_axis_label'] = form_input_validate((isset_request_var('right_axis_label') ? get_nfilter_request_var('right_axis_label') : ''), 'right_axis_label', '', true, 3); $save2['t_right_axis_format'] = form_input_validate((isset_request_var('t_right_axis_format') ? get_nfilter_request_var('t_right_axis_format') : ''), 't_right_axis_format', '', true, 3); $save2['right_axis_format'] = form_input_validate((isset_request_var('right_axis_format') ? get_nfilter_request_var('right_axis_format') : ''), 'right_axis_format', '^[0-9]+$', true, 3); $save2['t_no_gridfit'] = form_input_validate((isset_request_var('t_no_gridfit') ? get_nfilter_request_var('t_no_gridfit') : ''), 't_no_gridfit', '', true, 3); $save2['no_gridfit'] = form_input_validate((isset_request_var('no_gridfit') ? get_nfilter_request_var('no_gridfit') : ''), 'no_gridfit', '', true, 3); $save2['t_unit_length'] = form_input_validate((isset_request_var('t_unit_length') ? get_nfilter_request_var('t_unit_length') : ''), 't_unit_length', '', true, 3); $save2['unit_length'] = form_input_validate((isset_request_var('unit_length') ? get_nfilter_request_var('unit_length') : ''), 'unit_length', '^[0-9]+$', true, 3); $save2['t_tab_width'] = form_input_validate((isset_request_var('t_tab_width') ? get_nfilter_request_var('t_tab_width') : ''), 't_tab_width', '', true, 3); $save2['tab_width'] = form_input_validate((isset_request_var('tab_width') ? get_nfilter_request_var('tab_width') : ''), 'tab_width', '^[0-9]*$', true, 3); $save2['t_dynamic_labels'] = form_input_validate((isset_request_var('t_dynamic_labels') ? get_nfilter_request_var('t_dynamic_labels') : ''), 't_dynamic_labels', '', true, 3); $save2['dynamic_labels'] = form_input_validate((isset_request_var('dynamic_labels') ? get_nfilter_request_var('dynamic_labels') : ''), 'dynamic_labels', '', true, 3); $save2['t_force_rules_legend'] = form_input_validate((isset_request_var('t_force_rules_legend') ? get_nfilter_request_var('t_force_rules_legend') : ''), 't_force_rules_legend', '', true, 3); $save2['force_rules_legend'] = form_input_validate((isset_request_var('force_rules_legend') ? get_nfilter_request_var('force_rules_legend') : ''), 'force_rules_legend', '', true, 3); $save2['t_legend_position'] = form_input_validate((isset_request_var('t_legend_position') ? get_nfilter_request_var('t_legend_position') : ''), 't_legend_position', '', true, 3); $save2['legend_position'] = form_input_validate((isset_request_var('legend_position') ? get_nfilter_request_var('legend_position') : ''), 'legend_position', '', true, 3); $save2['t_legend_direction'] = form_input_validate((isset_request_var('t_legend_direction') ? get_nfilter_request_var('t_legend_direction') : ''), 't_legend_direction', '', true, 3); $save2['legend_direction'] = form_input_validate((isset_request_var('legend_direction') ? get_nfilter_request_var('legend_direction') : ''), 'legend_direction', '', true, 3); $save2['t_right_axis_formatter'] = form_input_validate((isset_request_var('t_right_axis_formatter') ? get_nfilter_request_var('t_right_axis_formatter') : ''), 't_right_axis_formatter', '', true, 3); $save2['right_axis_formatter'] = form_input_validate((isset_request_var('right_axis_formatter') ? get_nfilter_request_var('right_axis_formatter') : ''), 'right_axis_formatter', '', true, 3); $save2['t_left_axis_formatter'] = form_input_validate((isset_request_var('t_left_axis_formatter') ? get_nfilter_request_var('t_left_axis_formatter') : ''), 't_left_axis_formatter', '', true, 3); $save2['left_axis_formatter'] = form_input_validate((isset_request_var('left_axis_formatter') ? get_nfilter_request_var('left_axis_formatter') : ''), 'left_axis_formatter', '', true, 3); if (!is_error_message()) { // Clear the Graph Template cache if (empty($graph_template_id)) { clear_cached_allowed_types(); } $graph_template_id = sql_save($save1, 'graph_templates'); if ($graph_template_id) { raise_message(1); } else { raise_message(2); } } if (!is_error_message()) { $save2['graph_template_id'] = $graph_template_id; $graph_template_graph_id = sql_save($save2, 'graph_templates_graph'); if ($graph_template_graph_id) { raise_message(1); push_out_graph($graph_template_graph_id); } else { raise_message(2); } } if (!empty($graph_template_id)) { resequence_graphs($graph_template_id); } } header('Location: graph_templates.php?header=false&action=template_edit&id=' . (empty($graph_template_id) ? get_nfilter_request_var('graph_template_id') : $graph_template_id)); } /* ------------------------ The 'actions' function ------------------------ */ function form_actions() { global $graph_actions, $config, $image_types; /* ================= 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_request_var('drp_action') == '1') { // delete db_execute('DELETE FROM graph_templates WHERE ' . array_to_sql_or($selected_items, 'id')); $snmp_graph_ids = array_rekey( db_fetch_assoc('SELECT id FROM snmp_query_graph WHERE ' . array_to_sql_or($selected_items, 'graph_template_id')), 'id', 'id' ); if (cacti_sizeof($snmp_graph_ids)) { db_execute('DELETE FROM snmp_query_graph WHERE ' . array_to_sql_or($selected_items, 'graph_template_id')); db_execute('DELETE FROM snmp_query_graph_rrd WHERE snmp_query_graph_id IN (' . implode(', ', $snmp_graph_ids) . ')'); db_execute('DELETE FROM snmp_query_graph_rrd_sv WHERE snmp_query_graph_id IN (' . implode(', ', $snmp_graph_ids) . ')'); db_execute('DELETE FROM snmp_query_graph_sv WHERE snmp_query_graph_id IN (' . implode(', ', $snmp_graph_ids) . ')'); } $graph_template_input = db_fetch_assoc('SELECT id FROM graph_template_input WHERE ' . array_to_sql_or($selected_items, 'graph_template_id')); if (cacti_sizeof($graph_template_input) > 0) { foreach ($graph_template_input as $item) { db_execute_prepared('DELETE FROM graph_template_input_defs WHERE graph_template_input_id = ?', array($item['id'])); } } db_execute('DELETE FROM graph_template_input WHERE ' . array_to_sql_or($selected_items, 'graph_template_id')); db_execute('DELETE FROM graph_templates_graph WHERE ' . array_to_sql_or($selected_items, 'graph_template_id') . ' AND local_graph_id=0'); db_execute('DELETE FROM graph_templates_item WHERE ' . array_to_sql_or($selected_items, 'graph_template_id') . ' AND local_graph_id=0'); db_execute('DELETE FROM host_template_graph WHERE ' . array_to_sql_or($selected_items, 'graph_template_id')); /* 'undo' any graph that is currently using this template */ db_execute('UPDATE graph_templates_graph SET local_graph_template_graph_id=0, graph_template_id=0 WHERE ' . array_to_sql_or($selected_items, 'graph_template_id')); db_execute('UPDATE graph_templates_item SET local_graph_template_item_id=0, graph_template_id=0 WHERE ' . array_to_sql_or($selected_items, 'graph_template_id')); db_execute('UPDATE graph_local SET graph_template_id=0 WHERE ' . array_to_sql_or($selected_items, 'graph_template_id')); clear_cached_allowed_types(); } elseif (get_request_var('drp_action') == '2') { // duplicate for ($i=0;($i $val) { if (preg_match('/^chk_([0-9]+)$/', $var, $matches)) { /* ================= input validation ================= */ input_validate_input_number($matches[1]); /* ==================================================== */ $graph_list .= '
  • ' . html_escape(db_fetch_cell_prepared('SELECT name FROM graph_templates WHERE id = ?', array($matches[1]))) . '
  • '; $graph_array[$i] = $matches[1]; $i++; } } top_header(); form_start('graph_templates.php'); html_start_box($graph_actions[get_nfilter_request_var('drp_action')], '60%', '', '3', 'center', ''); if (isset($graph_array) && cacti_sizeof($graph_array)) { if (get_request_var('drp_action') == '1') { // delete print "

    " . __('Click \'Continue\' to delete the following Graph Template(s). Any Graph(s) associated with the Template(s) will become individual Graph(s).') . "

    \n"; $save_html = " "; } elseif (get_request_var('drp_action') == '2') { // duplicate print "

    " . __('Click \'Continue\' to duplicate the following Graph Template(s). You can optionally change the title format for the new Graph Template(s).') . "

    " . __('Title Format:'). "
    "; form_text_box('title_format', ' (1)', '', '255', '30', 'text'); print "

    \n"; $save_html = " "; } elseif (get_request_var('drp_action') == '3') { // resize print "

    " . __('Click \'Continue\' to resize the following Graph Template(s) and Graph(s) to the Height and Width below. The defaults below are maintained in Settings.') . "

    "; print __('Graph Height') . ''; form_text_box('graph_height', read_config_option('default_graph_height'), '', '5', '5', 'text'); print '
    ' . __('Graph Width') . ''; form_text_box('graph_width', read_config_option('default_graph_width'), '', '5', '5', 'text'); print '
    ' . __('Image Format') . ''; form_dropdown('image_format_id', $image_types, '', '', read_config_option('default_image_format'), '', ''); print "
    \n"; $save_html = " "; } elseif (get_request_var('drp_action') == '4') { // retemplate print "\n"; $save_html = " "; } } else { raise_message(40); header('Location: graph_templates.php?header=false'); exit; } print "\n"; html_end_box(); form_end(); bottom_footer(); } function item() { global $consolidation_functions, $graph_item_types; /* ================= input validation ================= */ get_filter_request_var('id'); /* ==================================================== */ if (isempty_request_var('id')) { $template_item_list = array(); $header_label = 'Graph Template Items [new]'; } else { $template_item_list = db_fetch_assoc_prepared("SELECT gti.id, gti.text_format, gti.alpha, gti.value, gti.hard_return, gti.graph_type_id, gti.consolidation_function_id, gti.textalign, CONCAT(IFNULL(dt.name, ''), ' (', dtr.data_source_name, ')') AS data_source_name, cdef.name AS cdef_name, colors.hex FROM graph_templates_item AS gti LEFT JOIN data_template_rrd AS dtr ON gti.task_item_id=dtr.id LEFT JOIN data_local AS dl ON dtr.local_data_id=dl.id LEFT JOIN data_template AS dt ON dt.id=dtr.data_template_id LEFT JOIN data_template_data AS dtd ON dl.id=dtd.local_data_id LEFT JOIN cdef ON cdef_id=cdef.id LEFT JOIN vdef ON vdef_id=vdef.id LEFT JOIN colors ON color_id=colors.id WHERE gti.graph_template_id = ? AND gti.local_graph_id=0 ORDER BY gti.sequence", array(get_request_var('id'))); $header_label = __esc('Graph Template Items [edit: %s]', db_fetch_cell_prepared('SELECT name FROM graph_templates WHERE id = ?', array(get_request_var('id')))); } html_start_box($header_label, '100%', '', '3', 'center', 'graph_templates_items.php?action=item_edit&graph_template_id=' . get_request_var('id')); draw_graph_items_list($template_item_list, 'graph_templates_items.php', 'graph_template_id=' . get_request_var('id'), false); html_end_box(); html_start_box(__('Graph Item Inputs'), '100%', '', '3', 'center', 'graph_templates_inputs.php?action=input_edit&graph_template_id=' . get_request_var('id')); print ""; DrawMatrixHeaderItem(__('Name'),'',2); print ''; $template_item_list = db_fetch_assoc_prepared('SELECT id, name FROM graph_template_input WHERE graph_template_id = ? ORDER BY name', array(get_request_var('id'))); $i = 0; if (cacti_sizeof($template_item_list) > 0) { foreach ($template_item_list as $item) { form_alternate_row('', true); ?> "; } ?> array('no_form_tag' => true), 'fields' => inject_form_variables($fields_graph_template_template_edit, (isset($template) ? $template : array()), (isset($template_graph) ? $template_graph : array())) ) ); html_end_box(true, true); html_start_box(__('Graph Template Options'), '100%', true, '3', 'center', ''); $form_array = array(); foreach ($struct_graph as $field_name => $field_array) { $form_array += array($field_name => $struct_graph[$field_name]); if ($form_array[$field_name]['method'] != 'spacer') { $form_array[$field_name]['value'] = (isset($template_graph[$field_name]) ? $template_graph[$field_name] : ''); } $form_array[$field_name]['form_id'] = (isset($template_graph['id']) ? $template_graph['id'] : '0'); if ($form_array[$field_name]['method'] != 'spacer') { $form_array[$field_name]['sub_checkbox'] = array( 'name' => 't_' . $field_name, 'friendly_name' => __esc('Check this checkbox if you wish to allow the user to override the value on the right during Graph creation.'), 'value' => (isset($template_graph['t_' . $field_name]) ? $template_graph['t_' . $field_name] : '') ); } } draw_edit_form( array( 'config' => array('no_form_tag' => true), 'fields' => $form_array ) ); form_hidden_box('rrdtool_version', get_rrdtool_version(), ''); html_end_box(true, true); form_save_button('graph_templates.php', 'return'); //Now we need some javascript to make it dynamic ?> array( 'filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1' ), 'page' => array( 'filter' => FILTER_VALIDATE_INT, 'default' => '1' ), 'filter' => array( 'filter' => FILTER_DEFAULT, 'pageset' => true, 'default' => '' ), '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') ), 'has_graphs' => array( 'filter' => FILTER_VALIDATE_REGEXP, 'options' => array('options' => array('regexp' => '(true|false)')), 'pageset' => true, 'default' => read_config_option('default_has') == 'on' ? 'true':'false' ) ); validate_store_request_vars($filters, 'sess_gt'); /* ================= input validation ================= */ if (get_request_var('rows') == '-1') { $rows = read_config_option('num_rows_table'); } else { $rows = get_request_var('rows'); } html_start_box(__('Graph Templates'), '100%', '', '3', 'center', 'graph_templates.php?action=template_edit'); ?> 0'; } else { $sql_having = ''; } $total_rows = db_fetch_cell("SELECT COUNT(`rows`) FROM (SELECT COUNT(gt.id) AS `rows`, COUNT(gl.id) AS graphs FROM graph_templates AS gt LEFT JOIN graph_local AS gl ON gt.id=gl.graph_template_id INNER JOIN ( SELECT * FROM graph_templates_graph AS gtg WHERE gtg.local_graph_id=0 ) AS gtg ON gtg.graph_template_id=gt.id $sql_where GROUP BY gt.id $sql_having ) AS rs"); $sql_order = get_order_string(); $sql_limit = ' LIMIT ' . ($rows*(get_request_var('page')-1)) . ',' . $rows; $template_list = db_fetch_assoc("SELECT gt.id, gt.name, gl.snmp_query_id AS dqid, CONCAT(gtg.height,'x',gtg.width) AS size, gtg.vertical_label, gtg.image_format_id, COUNT(gl.id) AS graphs FROM graph_templates AS gt INNER JOIN graph_templates_graph AS gtg ON gtg.graph_template_id=gt.id AND gtg.local_graph_id=0 LEFT JOIN graph_local AS gl ON gt.id=gl.graph_template_id $sql_where GROUP BY gt.id $sql_having $sql_order $sql_limit"); $display_text = array( 'name' => array( 'display' => __('Graph Template Name'), 'align' => 'left', 'sort' => 'ASC', 'tip' => __('The name of this Graph Template.') ), 'gt.id' => array( 'display' => __('ID'), 'align' => 'right', 'sort' => 'ASC', 'tip' => __('The internal ID for this Graph Template. Useful when performing automation or debugging.') ), 'nosort3' => array( 'display' => __('Deletable'), 'align' => 'right', 'tip' => __('Graph Templates that are in use cannot be Deleted. In use is defined as being referenced by a Graph.') ), 'graphs' => array( 'display' => __('Graphs Using'), 'align' => 'right', 'sort' => 'DESC', 'tip' => __('The number of Graphs using this Graph Template.') ), 'size' => array( 'display' => __('Size'), 'align' => 'right', 'sort' => 'ASC', 'tip' => __('The default size of the resulting Graphs.') ), 'image_format_id' => array( 'display' => __('Image Format'), 'align' => 'right', 'sort' => 'ASC', 'tip' => __('The default image format for the resulting Graphs.') ), 'vertical_label' => array( 'display' => __('Vertical Label'), 'align' => 'right', 'sort' => 'ASC', 'tip' => __('The vertical label for the resulting Graphs.') ) ); $nav = html_nav_bar('graph_templates.php?filter=' . get_request_var('filter'), MAX_DISPLAY_PAGES, get_request_var('page'), $rows, $total_rows, cacti_sizeof($display_text) + 1, __('Graph Templates'), 'page', 'main'); form_start('graph_templates.php', 'chk'); print $nav; html_start_box('', '100%', '', '3', 'center', ''); html_header_sort_checkbox($display_text, get_request_var('sort_column'), get_request_var('sort_direction'), false); $i = 0; if (cacti_sizeof($template_list)) { foreach ($template_list as $template) { if ($template['graphs'] > 0) { $disabled = true; } else { $disabled = false; } form_alternate_row('line' . $template['id'], true, $disabled); form_selectable_cell(filter_value($template['name'], get_request_var('filter'), 'graph_templates.php?action=template_edit&id=' . $template['id']), $template['id']); form_selectable_cell($template['id'], $template['id'], '', 'right'); form_selectable_cell($disabled ? __('No'):__('Yes'), $template['id'], '', 'right'); form_selectable_cell(number_format_i18n($template['graphs'], '-1'), $template['id'], '', 'right'); form_selectable_ecell($template['size'], $template['id'], '', 'right'); form_selectable_cell($image_types[$template['image_format_id']], $template['id'], '', 'right'); form_selectable_ecell($template['vertical_label'], $template['id'], '', 'right'); form_checkbox_cell($template['name'], $template['id'], $disabled); form_end_row(); } } else { print "\n"; } html_end_box(false); if (cacti_sizeof($template_list)) { print $nav; } /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($graph_actions); form_end(); }

    " . __('Click \'Continue\' to Synchronize your Graphs with the following Graph Template(s). This function is important if you have Graphs that exist with multiple versions of a Graph Template and wish to make them all common in appearance.') . "

      $graph_list
    $save_html
    '> ' href=''>
    " . __('No Inputs') . "
    '> > ' title=''> ' title=''>
    " . __('No Graph Templates Found') . "