__('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(); 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_remove': get_filter_request_var('cdef_id'); item_remove(); 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); reset($fields_cdef_edit); while (list($field, $array) = each($fields_cdef_edit)) { if (!preg_match('/^hidden/', $array['method'])) { $save[$field] = $cdef[$field]; } } $cdef_id = sql_save($save, 'cdef'); /* create new entry(s): cdef_items */ if (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'; $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) && 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.', 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.', sizeof($cdef_array)) . "

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

\n"; $save_html = " "; } }else{ print "" . __('You must select at least one CDEF.') . "\n"; $save_html = ""; } print " $save_html \n"; 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'); /* ==================================================== */ 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=''>

$cdef_id) { if (empty($cdef_id)) continue; $new_order[$sequence] = str_replace('line', '', $cdef_id); } $cdef_items = db_fetch_assoc_prepared('SELECT id, sequence FROM cdef_items WHERE cdef_id = ?', array(get_request_var('id'))); if(sizeof($cdef_items)) { foreach($cdef_items as $item) { $old_order[$item['sequence']] = $item['id']; } }else { exit; } if (sizeof(array_diff($new_order, $old_order))>0) exit; /* the set of sequence numbers has to be the same too */ if (sizeof(array_diff_key($new_order, $old_order))>0) exit; /* ==================================================== */ foreach($new_order as $sequence => $cdef_id) { input_validate_input_number($sequence); input_validate_input_number($cdef_id); db_execute_prepared('UPDATE cdef_items SET sequence = ? WHERE id = ?', array($sequence, $cdef_id)); } header('Location: cdef.php?action=edit&header=false&id=' . get_request_var('id')); } function cdef_edit() { global $cdef_item_types, $fields_cdef_edit; /* ================= input validation ================= */ get_filter_request_var('id'); /* ==================================================== */ if (!isempty_request_var('id')) { $cdef = db_fetch_row_prepared('SELECT * FROM cdef WHERE id = ?', array(get_request_var('id'))); $header_label = __('CDEF [edit: %s]', htmlspecialchars($cdef['name'])); }else{ $header_label = __('CDEF [new]'); } form_start('cdef.php', 'cdef'); html_start_box($header_label, '100%', '', '3', 'center', ''); draw_edit_form( array( 'config' => array('no_form_tag' => true), 'fields' => inject_form_variables($fields_cdef_edit, (isset($cdef) ? $cdef : array())) ) ); html_end_box(); 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 = sizeof($cdef_items); if (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-remove' title='' href='#'> 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') ), '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 graph_templates_item AS gti ON gti.cdef_id=cd.id $sql_where GROUP BY cd.id $sql_having ) AS rs"); $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 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 ORDER BY " . get_request_var('sort_column') . ' ' . get_request_var('sort_direction') . ' LIMIT ' . ($rows*(get_request_var('page')-1)) . ',' . $rows); $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 can not 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 (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'], '', 'text-align:right'); form_selectable_cell(number_format_i18n($cdef['graphs']), $cdef['id'], '', 'text-align:right'); form_selectable_cell(number_format_i18n($cdef['templates']), $cdef['id'], '', 'text-align:right'); form_checkbox_cell($cdef['name'], $cdef['id'], $disabled); form_end_row(); } }else{ print "" . __('No CDEFs') . "\n"; } html_end_box(false); if (sizeof($cdef_list)) { print $nav; } /* draw the dropdown containing a list of available actions for this form */ draw_actions_dropdown($cdef_actions); form_end(); }