array( 'color_id' => '0', 'graph_type_id' => '9', 'consolidation_function_id' => '4', 'text_format' => 'Cur:', 'hard_return' => '' ), 1 => array( 'color_id' => '0', 'graph_type_id' => '9', 'consolidation_function_id' => '1', 'text_format' => 'Avg:', 'hard_return' => '' ), 2 => array( 'color_id' => '0', 'graph_type_id' => '9', 'consolidation_function_id' => '3', 'text_format' => 'Max:', 'hard_return' => 'on' )); } elseif ($graph_item_types[get_nfilter_request_var('graph_type_id')] == 'LEGEND_CAMM') { /* this can be a major time saver when creating lots of graphs with the typical GPRINT LAST/AVERAGE/MAX legends */ $items = array( 0 => array( 'color_id' => '0', 'graph_type_id' => '9', 'consolidation_function_id' => '4', 'text_format' => __('Cur:'), 'hard_return' => '' ), 1 => array( 'color_id' => '0', 'graph_type_id' => '9', 'consolidation_function_id' => '1', 'text_format' => __('Avg:'), 'hard_return' => '' ), 2 => array( 'color_id' => '0', 'graph_type_id' => '9', 'consolidation_function_id' => '2', 'text_format' => __('Min:'), 'hard_return' => '' ), 3 => array( 'color_id' => '0', 'graph_type_id' => '9', 'consolidation_function_id' => '3', 'text_format' => __('Max:'), 'hard_return' => 'on' ) ); } $sequence = get_nfilter_request_var('sequence'); foreach ($items as $item) { /* generate a new sequence if needed */ if (empty($sequence)) { $sequence = get_sequence($sequence, 'sequence', 'graph_templates_item', 'local_graph_id=' . get_nfilter_request_var('local_graph_id')); } $save['id'] = get_nfilter_request_var('graph_template_item_id'); $save['graph_template_id'] = get_nfilter_request_var('graph_template_id'); $save['local_graph_template_item_id'] = get_nfilter_request_var('local_graph_template_item_id'); $save['local_graph_id'] = get_nfilter_request_var('local_graph_id'); $save['task_item_id'] = form_input_validate(get_nfilter_request_var('task_item_id'), 'task_item_id', '^[0-9]+$', true, 3); $save['color_id'] = form_input_validate((isset($item['color_id']) ? $item['color_id'] : get_nfilter_request_var('color_id')), 'color_id', '^[0-9]+$', true, 3); /* if alpha is disabled, use invisible_alpha instead */ if (!isset_request_var('alpha')) { set_request_var('alpha', get_nfilter_request_var('invisible_alpha')); } $save['alpha'] = form_input_validate((isset($item['alpha']) ? $item['alpha'] : get_nfilter_request_var('alpha')), 'alpha', '', true, 3); $save['graph_type_id'] = form_input_validate((isset($item['graph_type_id']) ? $item['graph_type_id'] : get_nfilter_request_var('graph_type_id')), 'graph_type_id', '^[0-9]+$', true, 3); if (isset_request_var('line_width') || isset($item['line_width'])) { $save['line_width'] = form_input_validate((isset($item['line_width']) ? $item['line_width'] : get_nfilter_request_var('line_width')), 'line_width', '(^[0-9]+[\.,0-9]+$|^[0-9]+$)', true, 3); } else { # make sure to transfer old LINEx style into line_width on save switch ($save['graph_type_id']) { case GRAPH_ITEM_TYPE_LINE1: $save['line_width'] = 1; break; case GRAPH_ITEM_TYPE_LINE2: $save['line_width'] = 2; break; case GRAPH_ITEM_TYPE_LINE3: $save['line_width'] = 3; break; default: $save['line_width'] = 0; } } $save['dashes'] = form_input_validate((isset_request_var('dashes') ? get_nfilter_request_var('dashes') : ''), 'dashes', '', true, 3); $save['dash_offset'] = form_input_validate((isset_request_var('dash_offset') ? get_nfilter_request_var('dash_offset') : ''), 'dash_offset', '^[0-9]+$', true, 3); $save['cdef_id'] = form_input_validate(get_nfilter_request_var('cdef_id'), 'cdef_id', '^[0-9]+$', true, 3); $save['vdef_id'] = form_input_validate(get_nfilter_request_var('vdef_id'), 'vdef_id', '^[0-9]+$', true, 3); $save['shift'] = form_input_validate((isset_request_var('shift') ? get_nfilter_request_var('shift') : ''), 'shift', '^((on)|)$', true, 3); $save['consolidation_function_id'] = form_input_validate((isset($item['consolidation_function_id']) ? $item['consolidation_function_id'] : get_nfilter_request_var('consolidation_function_id')), 'consolidation_function_id', '^[0-9]+$', true, 3); $save['textalign'] = form_input_validate((isset_request_var('textalign') ? get_nfilter_request_var('textalign') : ''), 'textalign', '^[a-z]+$', true, 3); $save['text_format'] = form_input_validate((isset($item['text_format']) ? $item['text_format'] : get_nfilter_request_var('text_format')), 'text_format', '', true, 3); $save['value'] = form_input_validate(get_nfilter_request_var('value'), 'value', '', true, 3); $save['hard_return'] = form_input_validate(((isset($item['hard_return']) ? $item['hard_return'] : (isset_request_var('hard_return') ? get_nfilter_request_var('hard_return') : ''))), 'hard_return', '', true, 3); $save['gprint_id'] = form_input_validate(get_nfilter_request_var('gprint_id'), 'gprint_id', '^[0-9]+$', true, 3); $save['sequence'] = $sequence; if (!is_error_message()) { $graph_template_item_id = sql_save($save, 'graph_templates_item'); if ($graph_template_item_id) { raise_message(1); } else { raise_message(2); } } $sequence = 0; } if (is_error_message()) { header('Location: graphs.php?header=false&action=item_edit&graph_template_item_id=' . (empty($graph_template_item_id) ? get_nfilter_request_var('graph_template_item_id') : $graph_template_item_id) . '&id=' . get_nfilter_request_var('local_graph_id')); exit; } else { header('Location: graphs.php?header=false&action=graph_edit&id=' . get_nfilter_request_var('local_graph_id')); exit; } } } /* ----------------------- item - Graph Items ----------------------- */ function item_movedown() { global $graph_item_types; /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('local_graph_id'); /* ==================================================== */ $arr = get_graph_group(get_request_var('id')); $next_id = get_graph_parent(get_request_var('id'), 'next'); if ((!empty($next_id)) && (isset($arr[get_request_var('id')]))) { move_graph_group(get_request_var('id'), $arr, $next_id, 'next'); } elseif (preg_match('/(GPRINT|VRULE|HRULE|COMMENT)/', $graph_item_types[db_fetch_cell_prepared('SELECT graph_type_id FROM graph_templates_item WHERE id = ?', array(get_request_var('id')))])) { move_item_down('graph_templates_item', get_request_var('id'), 'local_graph_id=' . get_request_var('local_graph_id')); } } function item_moveup() { global $graph_item_types; /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('local_graph_id'); /* ==================================================== */ $arr = get_graph_group(get_request_var('id')); $previous_id = get_graph_parent(get_request_var('id'), 'previous'); if ((!empty($previous_id)) && (isset($arr[get_request_var('id')]))) { move_graph_group(get_request_var('id'), $arr, $previous_id, 'previous'); } elseif (preg_match('/(GPRINT|VRULE|HRULE|COMMENT)/', $graph_item_types[db_fetch_cell_prepared('SELECT graph_type_id FROM graph_templates_item WHERE id = ?', array(get_request_var('id')))])) { move_item_up('graph_templates_item', get_request_var('id'), 'local_graph_id=' . get_request_var('local_graph_id')); } } function item_remove() { /* ================= input validation ================= */ get_filter_request_var('id'); /* ==================================================== */ db_execute_prepared('DELETE FROM graph_templates_item WHERE id = ?', array(get_request_var('id'))); } function validate_item_vars() { /* ================= input validation and session storage ================= */ $filters = array( 'host_id' => array( 'filter' => FILTER_VALIDATE_INT, 'default' => '0' ), 'local_graph_id' => array( 'filter' => FILTER_VALIDATE_INT, 'default' => '0' ), 'data_template_id' => array( 'filter' => FILTER_VALIDATE_INT, 'default' => '0' ) ); validate_store_request_vars($filters, 'sess_gitems'); /* ================= input validation ================= */ } function item_edit() { global $struct_graph_item, $graph_item_types, $consolidation_functions; /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('host_id'); get_filter_request_var('local_graph_id'); get_filter_request_var('data_template_id'); /* ==================================================== */ // This column is for Graph Templates unset($struct_graph_item['data_template_id']); validate_item_vars(); $id = (!isempty_request_var('id') ? '&id=' . get_request_var('id') : ''); $host = db_fetch_row_prepared('SELECT hostname FROM host WHERE id = ?', array(get_request_var('host_id'))); if (empty($host['hostname'])) { $header = __('Data Sources [No Device]'); } else { $header = __esc('Data Sources [%s]', $host['hostname']); } html_start_box($header, '100%', '', '3', 'center', ''); ?>
0) { $sql_where = 'h.id=' . get_request_var('host_id'); } elseif (get_request_var('host_id') == 0) { $sql_where = 'h.id IS NULL'; } else { $sql_where = ''; } if (get_request_var('data_template_id') == '-1') { $sql_where .= ''; } elseif (get_request_var('data_template_id') == '0') { $sql_where .= ($sql_where != '' ? ' AND ':'') . 'dl.data_template_id=0'; } elseif (!isempty_request_var('data_template_id')) { $sql_where .= ($sql_where != '' ? ' AND ':'') . 'dl.data_template_id=' . get_request_var('data_template_id'); } if (!isempty_request_var('id')) { $template_item = db_fetch_row_prepared('SELECT * FROM graph_templates_item WHERE id = ?', array(get_request_var('id'))); } else { $template_item = array(); kill_session_var('sess_graph_items_dti'); } $title = db_fetch_cell_prepared('SELECT title_cache FROM graph_templates_graph WHERE local_graph_id = ?', array(get_request_var('local_graph_id'))); $header_label = __esc('Graph Items [graph: %s]', $title); form_start('graphs_items.php', 'graph_edit'); html_start_box($header_label, '100%', true, '3', 'center', ''); /* by default, select the LAST DS chosen to make everyone's lives easier */ if (!isempty_request_var('local_graph_id')) { $struct_graph_item['task_item_id']['default'] = 0; if (isset($template_item['task_item_id'])) { $task_item_id = $template_item['task_item_id']; $value = db_fetch_cell_prepared("SELECT CONCAT_WS('', dtd.name_cache,' (', dtr.data_source_name, ')') as name FROM data_local AS dl INNER JOIN data_template_data AS dtd ON dtd.local_data_id=dl.id INNER JOIN data_template_rrd AS dtr ON dtr.local_data_id=dl.id LEFT JOIN host AS h ON dl.host_id=h.id WHERE dtr.id = ?", array($task_item_id)); } else { $task_item_id = 0; $value = ''; } if (get_selected_theme() != 'classic' && read_config_option('autocomplete_enabled') > 0) { $action = 'ajax_graph_items'; if (get_request_var('host_id') > 0) { $action .= '&host_id=' . get_filter_request_var('host_id'); } if (get_request_var('data_template_id') > 0) { $action .= '&data_template_id=' . get_filter_request_var('data_template_id'); } $struct_graph_item['task_item_id'] = array( 'method' => 'drop_callback', 'friendly_name' => __('Data Source'), 'description' => __('Choose the Data Source to associate with this Graph Item.'), 'sql' => '', 'action' => $action, 'none_value' => __('None'), 'id' => $task_item_id, 'value' => $value ); } /* modifications to the default graph items array */ $struct_graph_item['task_item_id']['sql'] = "SELECT CONCAT_WS('', dtd.name_cache,' (', dtr.data_source_name, ')') as name, dtr.id FROM data_local AS dl INNER JOIN data_template_data AS dtd ON dtd.local_data_id=dl.id INNER JOIN data_template_rrd AS dtr ON dtr.local_data_id=dl.id LEFT JOIN host AS h ON dl.host_id=h.id"; /* Make sure we don't limit the list so that the selected DS isn't in the list in edit mode */ if ($sql_where != '') { if (!isempty_request_var('id')) { $struct_graph_item['task_item_id']['sql'] .= " WHERE ($sql_where) OR (dtr.id=" . $template_item['task_item_id'] . ")"; } else { $struct_graph_item['task_item_id']['sql'] .= " WHERE $sql_where"; } } $struct_graph_item['task_item_id']['sql'] .= ' ORDER BY name'; } $form_array = array(); foreach ($struct_graph_item as $field_name => $field_array) { $form_array += array($field_name => $struct_graph_item[$field_name]); if (get_selected_theme() != 'classic' && read_config_option('autocomplete_enabled')) { if ($field_name != 'task_item_id') { $form_array[$field_name]['value'] = (isset($template_item[$field_name]) ? $template_item[$field_name] : ''); } } else { $form_array[$field_name]['value'] = (isset($template_item[$field_name]) ? $template_item[$field_name] : ''); } $form_array[$field_name]['form_id'] = (isset($template_item['id']) ? $template_item['id'] : '0'); } draw_edit_form( array( 'config' => array('no_form_tag' => true), 'fields' => $form_array ) ); form_hidden_box('local_graph_id', get_request_var('local_graph_id'), '0'); form_hidden_box('graph_template_item_id', (!empty($template_item) ? $template_item['id'] : '0'), ''); form_hidden_box('local_graph_template_item_id', (!empty($template_item) ? $template_item['local_graph_template_item_id'] : '0'), ''); form_hidden_box('graph_template_id', (!empty($template_item) ? $template_item['graph_template_id'] : '0'), ''); form_hidden_box('_graph_type_id', (!empty($template_item) ? $template_item['graph_type_id'] : '0'), ''); form_hidden_box('save_component_item', '1', ''); form_hidden_box('invisible_alpha', $form_array['alpha']['value'], 'FF'); form_hidden_box('rrdtool_version', get_rrdtool_version(), ''); html_end_box(true, true); form_save_button('graphs.php?action=graph_edit&id=' . get_request_var('local_graph_id')); ?>