The tree was locked for Editing on '" . $tree['locked_date'] . "' by '" . get_username($tree['modified_by']) . "'";
if ($tree['modified_by'] == $_SESSION['sess_user_id']) {
$editable = true;
$lockdiv .= '
';
}else{
$editable = false;
$lockdiv .= '. To edit the tree, you must first unlock it and then lock it as yourself';
}
}else{
$tree['id'] = 0;
$editable = true;
}
if ($editable) {
form_save_button('tree.php', 'return');
}
if (!empty($_REQUEST['id'])) {
print $lockdiv;
print "
\n";
}
}
}
}
function display_graphs() {
if ($_REQUEST['filter'] != '') {
$sql_where = "WHERE (title_cache LIKE '%" . $_REQUEST['filter'] . "%' OR gt.name LIKE '%" . $_REQUEST['filter'] . "%') AND local_graph_id>0";
}else{
$sql_where = 'WHERE local_graph_id>0';
}
$graphs = db_fetch_assoc("SELECT
gtg.local_graph_id AS id,
gtg.title_cache AS title,
gt.name AS template_name
FROM graph_templates_graph AS gtg
LEFT JOIN graph_templates AS gt
ON gt.id=gtg.graph_template_id
$sql_where
ORDER BY title_cache
LIMIT 20");
if (sizeof($graphs)) {
foreach($graphs as $g) {
if (is_graph_allowed($g['id'])) {
echo "
" . $g['title'] . '
';
}
}
}
}
function tree() {
global $tree_actions, $item_rows;
/* ================= input validation ================= */
input_validate_input_number(get_request_var_request('page'));
input_validate_input_number(get_request_var_request('rows'));
/* ==================================================== */
/* clean up search string */
if (isset($_REQUEST['filter'])) {
$_REQUEST['filter'] = sanitize_search_string(get_request_var_request('filter'));
}
/* clean up sort_column */
if (isset($_REQUEST['sort_column'])) {
$_REQUEST['sort_column'] = sanitize_search_string(get_request_var_request('sort_column'));
}
/* clean up search string */
if (isset($_REQUEST['sort_direction'])) {
$_REQUEST['sort_direction'] = sanitize_search_string(get_request_var_request('sort_direction'));
}
/* if the user pushed the 'clear' button */
if (isset($_REQUEST['clear'])) {
kill_session_var('sess_tree_current_page');
kill_session_var('sess_tree_filter');
kill_session_var('sess_default_rows');
kill_session_var('sess_tree_sort_column');
kill_session_var('sess_tree_sort_direction');
unset($_REQUEST['page']);
unset($_REQUEST['filter']);
unset($_REQUEST['rows']);
unset($_REQUEST['sort_column']);
unset($_REQUEST['sort_direction']);
}else{
$changed = 0;
$changed += check_changed('filter', 'sess_tree_filter');
$changed += check_changed('rows', 'sess_default_rows');
if ($changed) {
$_REQUEST['page'] = 1;
}
}
/* remember these search fields in session vars so we don't have to keep passing them around */
load_current_session_value('page', 'sess_tree_current_page', '1');
load_current_session_value('filter', 'sess_tree_filter', '');
load_current_session_value('rows', 'sess_default_rows', read_config_option('num_rows_table'));
load_current_session_value('sort_column', 'sess_tree_sort_column', 'name');
load_current_session_value('sort_direction', 'sess_tree_sort_direction', 'ASC');
/* if the number of rows is -1, set it to the default */
if ($_REQUEST['rows'] == -1) {
$_REQUEST['rows'] = read_config_option('num_rows_table');
}
?>
Graph Trees', '100%', '', '3', 'center', 'tree.php?action=edit');
?>
0 THEN 1 ELSE 0 END) AS hosts,
SUM(CASE WHEN ti.local_graph_id>0 THEN 1 ELSE 0 END) AS graphs,
SUM(CASE WHEN ti.local_graph_id=0 AND host_id=0 THEN 1 ELSE 0 END) AS branches
FROM graph_tree AS t
LEFT JOIN graph_tree_items AS ti
ON t.id=ti.graph_tree_id
$sql_where
GROUP BY t.id
ORDER BY " . get_request_var_request('sort_column') . ' ' . get_request_var_request('sort_direction') . '
LIMIT ' . (get_request_var_request('rows')*(get_request_var_request('page')-1)) . ',' . get_request_var_request('rows'));
$total_rows = db_fetch_cell("SELECT COUNT(*)
FROM graph_tree AS t
LEFT JOIN graph_tree_items AS ti
ON t.id=ti.graph_tree_id
$sql_where
GROUP BY t.id");
$nav = html_nav_bar('tree.php?filter=' . get_request_var_request('filter'), MAX_DISPLAY_PAGES, get_request_var_request('page'), get_request_var_request('rows'), $total_rows, 11, 'Trees', 'page', 'main');
print $nav;
$display_text = array(
'name' => array('display' => 'Tree Name', 'align' => 'left', 'sort' => 'ASC', 'tip' => 'The name by which this Tree will be referred to as.'),
'id' => array('display' => 'ID', 'align' => 'right', 'sort' => 'ASC', 'tip' => 'The internal database ID for this Tree. Usefull when performing automation or debugging.'),
'enabled' => array('display' => 'Published', 'align' => 'left', 'sort' => 'ASC', 'tip' => 'Unpublished Trees can not be viewed from the Graph tab'),
'locked' => array('display' => 'Locked', 'align' => 'left', 'sort' => 'ASC', 'tip' => 'A Tree must be locked in order to be edited.'),
'user_id' => array('display' => 'Owner', 'align' => 'left', 'sort' => 'ASC', 'tip' => 'The original author of this Tree.'),
'last_modified' => array('display' => 'Last Edited', 'align' => 'right', 'sort' => 'ASC', 'tip' => 'The date that this Tree was last edited.'),
'modified_by' => array('display' => 'Edited By', 'align' => 'right', 'sort' => 'ASC', 'tip' => 'The last user to have modified this Tree.'),
'branches' => array('display' => 'Branches', 'align' => 'right', 'sort' => 'DESC', 'tip' => 'The total number of Branches in this Tree.'),
'hosts' => array('display' => 'Devices', 'align' => 'right', 'sort' => 'DESC', 'tip' => 'The total number of individual Devices in this Tree.'),
'graphs' => array('display' => 'Graphs', 'align' => 'right', 'sort' => 'DESC', 'tip' => 'The total number of individual Graphs in this Tree.'));
html_header_sort_checkbox($display_text, get_request_var_request('sort_column'), get_request_var_request('sort_direction'), false);
$i = 0;
if (sizeof($trees) > 0) {
foreach ($trees as $tree) {
form_alternate_row('line' . $tree['id'], true);
form_selectable_cell("" .
(strlen(get_request_var_request('filter')) ? preg_replace('/(' . preg_quote(get_request_var_request('filter'), '/') . ')/i', "\\1", htmlspecialchars($tree['name'])) : htmlspecialchars($tree['name'])) . '', $tree['id']);
form_selectable_cell($tree['id'], $tree['id'], '', 'text-align:right');
form_selectable_cell($tree['enabled'] == 'on' ? 'Yes':'No', $tree['id']);
form_selectable_cell($tree['locked'] == '1' ? 'Yes':'No', $tree['id']);
form_selectable_cell(get_username($tree['user_id']), $tree['id']);
form_selectable_cell(substr($tree['last_modified'],0,16), $tree['id'], '', 'text-align:right');
form_selectable_cell(get_username($tree['modified_by']), $tree['id'], '', 'text-align:right');
form_selectable_cell($tree['branches'] > 0 ? number_format($tree['branches']):'-', $tree['id'], '', 'text-align:right');
form_selectable_cell($tree['hosts'] > 0 ? number_format($tree['hosts']):'-', $tree['id'], '', 'text-align:right');
form_selectable_cell($tree['graphs'] > 0 ? number_format($tree['graphs']):'-', $tree['id'], '', 'text-align:right');
form_checkbox_cell($tree['name'], $tree['id']);
form_end_row();
}
print $nav;
}else{
print "
No Trees Found
";
}
html_end_box(false);
/* draw the dropdown containing a list of available actions for this form */
draw_actions_dropdown($tree_actions);
form_end();
}