__('Delete'), 2 => __('Duplicate') ); /* set default action */ set_default_action(); switch (get_request_var('action')) { case 'save': form_save(); break; case 'actions': form_actions(); break; case 'item_remove_confirm': cdef_item_remove_confirm(); break; case 'item_remove': cdef_item_remove(); header('Location: cdef.php?action=edit&id=' . get_request_var('cdef_id')); break; case 'item_movedown': get_filter_request_var('cdef_id'); item_movedown(); header('Location: cdef.php?action=edit&id=' . get_request_var('cdef_id')); break; case 'item_moveup': get_filter_request_var('cdef_id'); item_moveup(); header('Location: cdef.php?action=edit&id=' . get_request_var('cdef_id')); break; case 'item_edit': top_header(); item_edit(); bottom_footer(); break; case 'edit': top_header(); cdef_edit(); bottom_footer(); break; case 'ajax_dnd': cdef_item_dnd(); break; default: top_header(); cdef(); bottom_footer(); break; } /* -------------------------- Global Form Functions -------------------------- */ function draw_cdef_preview($cdef_id) { ?>
cdef=
', $cdef['name'], $cdef_title); /* create new entry: host_template */ $save['id'] = 0; $save['hash'] = get_hash_cdef(0); foreach ($fields_cdef_edit as $field => $array) { if (!preg_match('/^hidden/', $array['method'])) { $save[$field] = $cdef[$field]; } } $cdef_id = sql_save($save, 'cdef'); /* create new entry(s): cdef_items */ if (cacti_sizeof($cdef_items) > 0) { foreach ($cdef_items as $cdef_item) { unset($save); $save['id'] = 0; $save['hash'] = get_hash_cdef(0, 'cdef_item'); $save['cdef_id'] = $cdef_id; $save['sequence'] = $cdef_item['sequence']; $save['type'] = $cdef_item['type']; $save['value'] = $cdef_item['value']; sql_save($save, 'cdef_items'); } } } /* ------------------------ The 'actions' function ------------------------ */ function form_actions() { global $cdef_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 */ db_execute('DELETE FROM cdef WHERE ' . array_to_sql_or($selected_items, 'id')); db_execute('DELETE FROM cdef_items WHERE ' . array_to_sql_or($selected_items, 'cdef_id')); } elseif (get_nfilter_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]); /* ==================================================== */ $cdef_list .= '
  • ' . html_escape(db_fetch_cell_prepared('SELECT name FROM cdef WHERE id = ?', array($matches[1]))) . '
  • '; $cdef_array[$i] = $matches[1]; $i++; } } top_header(); form_start('cdef.php'); html_start_box($cdef_actions[get_nfilter_request_var('drp_action')], '60%', '', '3', 'center', ''); if (isset($cdef_array) && cacti_sizeof($cdef_array)) { if (get_nfilter_request_var('drp_action') == '1') { /* delete */ print "

    " . __n('Click \'Continue\' to delete the following CDEF.', 'Click \'Continue\' to delete all following CDEFs.', cacti_sizeof($cdef_array)) . "

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

    " . __n('Click \'Continue\' to duplicate the following CDEF. You can optionally change the title format for the new CDEF.', 'Click \'Continue\' to duplicate the following CDEFs. You can optionally change the title format for the new CDEFs.', cacti_sizeof($cdef_array)) . "

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

    \n"; $save_html = " "; } } else { raise_message(40); header('Location: cdef.php?header=false'); exit; } print " $save_html "; html_end_box(); form_end(); bottom_footer(); } /* -------------------------- CDEF Item Functions -------------------------- */ function cdef_item_remove_confirm() { global $cdef_functions, $cdef_item_types, $custom_cdef_data_source_types; /* ================= input validation ================= */ get_filter_request_var('id'); get_filter_request_var('cdef_id'); /* ==================================================== */ /* sort the cdef functions */ asort($cdef_functions); form_start('cdef.php'); html_start_box('', '100%', '', '3', 'center', ''); $cdef = db_fetch_row_prepared('SELECT * FROM cdef WHERE id = ?', array(get_request_var('id'))); $cdef_item = db_fetch_row_prepared('SELECT * FROM cdef_items WHERE id = ?', array(get_request_var('cdef_id'))); ?>


    :

    ' onClick='$("#cdialog").dialog("close");$(".deleteMarker").blur();' name='cancel'> ' name='continue' title=''> '> '> array( 'method' => 'drop_array', 'friendly_name' => __('CDEF Item Type'), 'description' => __('Choose what type of CDEF item this is.'), 'value' => $current_type, 'array' => $cdef_item_types ), 'value' => array( 'method' => 'drop_array', 'friendly_name' => __('CDEF Item Value'), 'description' => __('Enter a value for this CDEF item.'), 'value' => (isset($cdef['value']) ? $cdef['value']:'') ), 'id' => array( 'method' => 'hidden', 'value' => isset_request_var('id') ? get_request_var('id') : '0', ), 'type' => array( 'method' => 'hidden', 'value' => $current_type ), 'cdef_id' => array( 'method' => 'hidden', 'value' => get_request_var('cdef_id') ), 'save_component_item' => array( 'method' => 'hidden', 'value' => '1' ) ); switch ($current_type) { case '1': $form_cdef['value']['array'] = $cdef_functions; break; case '2': $form_cdef['value']['array'] = $cdef_operators; break; case '4': $form_cdef['value']['array'] = $custom_data_source_types; break; case '5': $form_cdef['value']['method'] = 'drop_sql'; $form_cdef['value']['sql'] = 'SELECT name, id FROM cdef WHERE `system` = 0 ORDER BY name'; break; case '6': $form_cdef['value']['method'] = 'textbox'; $form_cdef['value']['max_length'] = '255'; $form_cdef['value']['size'] = '30'; break; } draw_edit_form( array( 'config' => array('no_form_tag' => true), 'fields' => inject_form_variables($form_cdef, $cdef) ) ); ?> array('no_form_tag' => true), 'fields' => inject_form_variables($fields_cdef_edit, (isset($cdef) ? $cdef : array())) ) ); html_end_box(true, true); if (!isempty_request_var('id')) { html_start_box('', '100%', '', '3', 'center', ''); draw_cdef_preview(get_request_var('id')); html_end_box(); html_start_box(__('CDEF Items'), '100%', '', '3', 'center', 'cdef.php?action=item_edit&cdef_id=' . $cdef['id']); $display_text = array( array('display' => __('Item'), 'align' => 'left'), array('display' => __('Item Value'), 'align' => 'left') ); html_header($display_text, 2); $cdef_items = db_fetch_assoc_prepared('SELECT * FROM cdef_items WHERE cdef_id = ? ORDER BY sequence', array(get_request_var('id'))); $i = 1; $total_items = cacti_sizeof($cdef_items); if (cacti_sizeof($cdef_items)) { foreach ($cdef_items as $cdef_item) { form_alternate_row('line' . $cdef_item['id'], true, true);?> '> : 0) { echo ''; } else { echo ''; } if ($i > 1 && $i <= $total_items) { echo ''; } else { echo ''; } } ?> ' class='delete deleteMarker fa fa-times' title='' href='#'> 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_cdef'); /* ================= input validation ================= */ if (get_request_var('rows') == '-1') { $rows = read_config_option('num_rows_table'); } else { $rows = get_request_var('rows'); } html_start_box(__('CDEFs'), '100%', '', '3', 'center', 'cdef.php?action=edit'); ?>
    '> > ' title=''> ' title=''>
    0'; } else { $sql_having = ''; } $total_rows = db_fetch_cell("SELECT COUNT(`rows`) FROM ( SELECT cd.id AS `rows`, SUM(CASE WHEN local_graph_id>0 THEN 1 ELSE 0 END) AS graphs FROM cdef AS cd LEFT JOIN ( SELECT DISTINCT cdef_id, local_graph_id, graph_template_id FROM graph_templates_item ) AS gti ON gti.cdef_id=cd.id $sql_where GROUP BY cd.id $sql_having ) AS rs"); $sql_order = get_order_string(); $sql_limit = ' LIMIT ' . ($rows*(get_request_var('page')-1)) . ',' . $rows; $cdef_list = db_fetch_assoc("SELECT rs.*, SUM(CASE WHEN local_graph_id=0 THEN 1 ELSE 0 END) AS templates, SUM(CASE WHEN local_graph_id>0 THEN 1 ELSE 0 END) AS graphs FROM ( SELECT cd.*, gti.local_graph_id FROM cdef AS cd LEFT JOIN ( SELECT DISTINCT cdef_id, local_graph_id, graph_template_id FROM graph_templates_item ) AS gti ON gti.cdef_id=cd.id WHERE `system` = 0 GROUP BY cd.id, gti.graph_template_id, gti.local_graph_id ) AS rs $sql_where GROUP BY rs.id $sql_having $sql_order $sql_limit"); $nav = html_nav_bar('cdef.php?filter=' . get_request_var('filter'), MAX_DISPLAY_PAGES, get_request_var('page'), $rows, $total_rows, 5, __('CDEFs'), 'page', 'main'); form_start('cdef.php', 'chk'); print $nav; html_start_box('', '100%', '', '3', 'center', ''); $display_text = array( 'name' => array('display' => __('CDEF Name'), 'align' => 'left', 'sort' => 'ASC', 'tip' => __('The name of this CDEF.')), 'nosort' => array('display' => __('Deletable'), 'align' => 'right', 'tip' => __('CDEFs that are in use cannot be Deleted. In use is defined as being referenced by a Graph or a Graph Template.')), 'graphs' => array('display' => __('Graphs Using'), 'align' => 'right', 'sort' => 'DESC', 'tip' => __('The number of Graphs using this CDEF.')), 'templates' => array('display' => __('Templates Using'), 'align' => 'right', 'sort' => 'DESC', 'tip' => __('The number of Graphs Templates using this CDEF.'))); html_header_sort_checkbox($display_text, get_request_var('sort_column'), get_request_var('sort_direction'), false); $i = 0; if (cacti_sizeof($cdef_list)) { foreach ($cdef_list as $cdef) { if ($cdef['graphs'] == 0 && $cdef['templates'] == 0) { $disabled = false; } else { $disabled = true; } form_alternate_row('line' . $cdef['id'], false, $disabled); form_selectable_cell(filter_value($cdef['name'], get_request_var('filter'), 'cdef.php?action=edit&id=' . $cdef['id']), $cdef['id']); form_selectable_cell($disabled ? __('No'):__('Yes'), $cdef['id'], '', 'right'); form_selectable_cell(number_format_i18n($cdef['graphs'], '-1'), $cdef['id'], '', 'right'); form_selectable_cell(number_format_i18n($cdef['templates'], '-1'), $cdef['id'], '', 'right'); form_checkbox_cell($cdef['name'], $cdef['id'], $disabled); form_end_row(); } } else { print "" . __('No CDEFs') . "\n"; } html_end_box(false); if (cacti_sizeof($cdef_list)) { print $nav; } /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($cdef_actions); form_end(); }