0 WHERE gtg.title_cache LIKE ? OR h.description LIKE ? OR h.hostname LIKE ? OR gti.title LIKE ?", array($filter, $filter, $filter, $filter)); }else{ $matching = db_fetch_assoc("SELECT gti.id, gti.parent, gti.graph_tree_id, IF(gti.title != '', '1', '0') AS node FROM graph_tree_items AS gti LEFT JOIN host AS h ON h.id=gti.host_id LEFT JOIN graph_templates_graph AS gtg ON gtg.local_graph_id=gti.local_graph_id AND gtg.local_graph_id>0"); } if (sizeof($matching)) { foreach($matching as $row) { while ($row['parent'] != '0') { $match[] = 'tbranch-' . $row['parent']; $row = db_fetch_row_prepared('SELECT id, parent, graph_tree_id FROM graph_tree_items WHERE id = ?', array($row['parent'])); } $match[] = 'tree_anchor-' . $row['graph_tree_id']; $my_matches[] = array_reverse($match); $match = array(); } // Now flatten the list of nodes $final_array = array(); $level = 0; while (true) { $found = 0; foreach($my_matches as $match) { if (isset($match[$level])) { if ($level == 0) { $final_array[$match[$level]][$match[$level]] = 1; }else{ $final_array[$match[0]][$match[$level]] = 1; } $found++; } } $level++; if ($found == 0) break; } if (sizeof($final_array)) { foreach($final_array as $key => $matches) { foreach($matches as $branch => $dnc) { $fa[] = $branch; } } } header('Content-Type: application/json; charset=utf-8'); print json_encode($fa); //print '[' . implode(', ', array_keys($matching)) . ']'; } } switch (get_nfilter_request_var('action')) { case 'ajax_hosts': get_allowed_ajax_hosts(); break; case 'ajax_search': get_matching_nodes(); exit; break; case 'save': if (is_view_allowed('graph_settings')) { get_filter_request_var('columns'); get_filter_request_var('predefined_timespan'); get_filter_request_var('predefined_timeshift'); get_filter_request_var('graphs'); get_filter_request_var('graph_template_id', FILTER_VALIDATE_IS_NUMERIC_LIST); if (isset_request_var('predefined_timespan')) { set_graph_config_option('default_timespan', get_request_var('predefined_timespan')); } if (isset_request_var('predefined_timeshift')) { set_graph_config_option('default_timeshift', get_request_var('predefined_timeshift')); } if (isset_request_var('graph_template_id')) { set_graph_config_option('graph_template_id', get_request_var('graph_template_id')); } if (isset_request_var('section') && get_nfilter_request_var('section') == 'preview') { if (isset_request_var('columns')) { set_graph_config_option('num_columns', get_request_var('columns')); } if (isset_request_var('graphs')) { set_graph_config_option('preview_graphs_per_page', get_request_var('graphs')); } if (isset_request_var('thumbnails')) { set_graph_config_option('thumbnail_section_preview', get_nfilter_request_var('thumbnails') == 'true' ? 'on':''); } }else{ if (isset_request_var('columns')) { set_graph_config_option('num_columns_tree', get_request_var('columns')); } if (isset_request_var('graphs')) { set_graph_config_option('treeview_graphs_per_page', get_request_var('graphs')); } if (isset_request_var('thumbnails')) { set_graph_config_option('thumbnail_section_tree_2', get_request_var('thumbnails') == 'true' ? 'on':''); } } } break; case 'tree': if (isset_request_var('tree_id')) { $_SESSION['sess_tree_id'] = get_filter_request_var('tree_id'); } top_graph_header(); bottom_footer(); break; case 'get_node': $parent = -1; $tree_id = 0; if (isset_request_var('tree_id')) { if (get_nfilter_request_var('tree_id') == 0 && strstr(get_nfilter_request_var('id'), 'tbranch-') !== false) { $tree_id = db_fetch_cell_prepared('SELECT graph_tree_id FROM graph_tree_items WHERE id = ?', array(str_replace('tbranch-', '', get_nfilter_request_var('id')))); }else if (get_nfilter_request_var('tree_id') == 'default' || get_nfilter_request_var('tree_id') == 'undefined' || get_nfilter_request_var('tree_id') == '') { $tree_id = read_user_setting('default_tree_id'); }elseif (get_nfilter_request_var('tree_id') == 0 && substr_count(get_nfilter_request_var('id'), 'tree_anchor') > 0) { $ndata = explode('-', get_nfilter_request_var('id')); $tree_id = $ndata[1]; input_validate_input_number($tree_id); } }else{ $tree_id = read_user_setting('default_tree_id'); } if (isset_request_var('id') && get_nfilter_request_var('id') != '#') { if (substr_count(get_nfilter_request_var('id'), 'tree_anchor')) { $parent = -1; }else{ $ndata = explode('_', get_nfilter_request_var('id')); foreach($ndata as $node) { $pnode = explode('-', $node); if ($pnode[0] == 'tbranch') { $parent = $pnode[1]; input_validate_input_number($parent); $tree_id = db_fetch_cell_prepared('SELECT graph_tree_id FROM graph_tree_items WHERE id = ?', array($parent)); break; } } } } api_tree_get_main($tree_id, $parent); break; case 'tree_content': html_validate_tree_vars(); if (!is_view_allowed('show_tree')) { print "" . __('YOU DO NOT HAVE RIGHTS FOR TREE VIEW') . ""; return; } ?> " . __('YOU DO NOT HAVE RIGHTS FOR PREVIEW VIEW') . ""; return; } html_graph_validate_preview_request_vars(); /* include graph view filter selector */ html_start_box(__('Graph Preview Filters') . (isset_request_var('style') && strlen(get_request_var('style')) ? ' ' . __('[ Custom Graph List Applied - Filtering from List ]'):''), '100%', '', '3', 'center', ''); html_graph_preview_filter('graph_view.php', 'preview'); html_end_box(); /* the user select a bunch of graphs of the 'list' view and wants them displayed here */ $sql_or = ''; if (isset_request_var('style')) { if (get_request_var('style') == 'selective') { /* process selected graphs */ if (!isempty_request_var('graph_list')) { foreach (explode(',', get_request_var('graph_list')) as $item) { $graph_list[$item] = 1; } }else{ $graph_list = array(); } if (!isempty_request_var('graph_add')) { foreach (explode(',', get_request_var('graph_add')) as $item) { $graph_list[$item] = 1; } } /* remove items */ if (!isempty_request_var('graph_remove')) { foreach (explode(',', get_request_var('graph_remove')) as $item) { unset($graph_list[$item]); } } $i = 0; foreach ($graph_list as $item => $value) { $graph_array[$i] = $item; $i++; } if ((isset($graph_array)) && (sizeof($graph_array) > 0)) { /* build sql string including each graph the user checked */ $sql_or = array_to_sql_or($graph_array, 'gtg.local_graph_id'); } } } $total_graphs = 0; /* create filter for sql */ $sql_where = ''; if (!isempty_request_var('rfilter')) { $sql_where .= " gtg.title_cache RLIKE '" . get_request_var('rfilter') . "'"; } $sql_where .= (strlen($sql_or) && strlen($sql_where) ? ' AND ':'') . $sql_or; if (!isempty_request_var('host_id') && get_request_var('host_id') > 0) { $sql_where .= (empty($sql_where) ? '' : ' AND') . ' gl.host_id=' . get_request_var('host_id'); }elseif (isempty_request_var('host_id')) { $sql_where .= (empty($sql_where) ? '' : ' AND') . ' gl.host_id=0'; } if (!isempty_request_var('graph_template_id')) { $sql_where .= (empty($sql_where) ? '' : ' AND') . ' gl.graph_template_id IN (' . get_request_var('graph_template_id') . ')'; } $limit = (get_request_var('graphs')*(get_request_var('page')-1)) . ',' . get_request_var('graphs'); $order = 'gtg.title_cache'; $graphs = get_allowed_graphs($sql_where, $order, $limit, $total_graphs); $nav = html_nav_bar('graph_view.php', MAX_DISPLAY_PAGES, get_request_var('page'), get_request_var('graphs'), $total_graphs, get_request_var('columns'), __('Graphs'), 'page', 'main'); print $nav; html_start_box('', '100%', '', '3', 'center', ''); if (get_request_var('thumbnails') == 'true') { html_graph_thumbnail_area($graphs, '', 'graph_start=' . get_current_graph_start() . '&graph_end=' . get_current_graph_end(), '', get_request_var('columns')); }else{ html_graph_area($graphs, '', 'graph_start=' . get_current_graph_start() . '&graph_end=' . get_current_graph_end(), '', get_request_var('columns')); } html_end_box(); if ($total_graphs) { print $nav; } if (!isset_request_var('header') || get_nfilter_request_var('header') == 'false') { bottom_footer(); } break; case 'list': top_graph_header(); if (!is_view_allowed('show_list')) { print "" . __('YOU DO NOT HAVE RIGHTS FOR LIST VIEW') .""; return; } /* reset the graph list on a new viewing */ if (!isset_request_var('page')) { set_request_var('graph_list', ''); set_request_var('page', 1); } /* ================= input validation and session storage ================= */ $filters = array( 'rows' => array( 'filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1' ), 'page' => array( 'filter' => FILTER_VALIDATE_INT, 'default' => '1' ), 'rfilter' => array( 'filter' => FILTER_VALIDATE_IS_REGEX, 'pageset' => true, 'default' => '', ), 'graph_template_id' => array( 'filter' => FILTER_VALIDATE_IS_NUMERIC_LIST, 'pageset' => true, 'default' => '0' ), 'host_id' => array( 'filter' => FILTER_VALIDATE_INT, 'pageset' => true, 'default' => '-1' ), 'graph_list' => array( 'filter' => FILTER_DEFAULT, 'default' => '' ), 'graph_add' => array( 'filter' => FILTER_DEFAULT, 'default' => '' ), 'graph_remove' => array( 'filter' => FILTER_DEFAULT, 'default' => '' ) ); validate_store_request_vars($filters, 'sess_gl'); /* ================= input validation ================= */ if (get_request_var('rows') == '-1') { $rows = read_config_option('num_rows_table'); }else{ $rows = get_request_var('rows'); } /* save selected graphs into url */ if (!isempty_request_var('graph_list')) { foreach (explode(',', get_request_var('graph_list')) as $item) { $graph_list[$item] = 1; } }else{ $graph_list = array(); } if (!isempty_request_var('graph_add')) { foreach (explode(',', get_request_var('graph_add')) as $item) { $graph_list[$item] = 1; } } /* remove items */ if (!isempty_request_var('graph_remove')) { foreach (explode(',', get_request_var('graph_remove')) as $item) { unset($graph_list[$item]); } } /* update the revised graph list session variable */ set_request_var('graph_list', implode(',', array_keys($graph_list))); load_current_session_value('graph_list', 'sess_graph_view_list_graph_list', ''); /* display graph view filter selector */ html_start_box(__('Graph List View Filters') . (isset_request_var('style') && strlen(get_request_var('style')) ? ' ' . __('[ Custom Graph List Applied - Filter FROM List ]'):''), '100%', '', '3', 'center', ''); ?>
'> ' title=''> ' title='' onClick='clearFilter()'> ' title='' onClick='viewGraphs()'>
'> '>
0) { $sql_where .= ($sql_where == '' ? '' : ' AND') . ' gl.host_id=' . get_request_var('host_id'); }elseif (isempty_request_var('host_id')) { $sql_where .= ($sql_where == '' ? '' : ' AND') . ' gl.host_id=0'; } if (!isempty_request_var('graph_template_id')) { $sql_where .= ($sql_where == '' ? '' : ' AND') . ' gl.graph_template_id IN (' . get_request_var('graph_template_id') . ')'; } $total_rows = 0; $limit = ($rows*(get_request_var('page')-1)) . ',' . $rows; $graphs = get_allowed_graphs($sql_where, 'gtg.title_cache', $limit, $total_rows); $nav = html_nav_bar('graph_view.php?action=list', MAX_DISPLAY_PAGES, get_request_var('page'), $rows, $total_rows, 5, 'Graphs', 'page', 'main'); form_start('graph_view.php', 'chk'); print $nav; html_start_box('', '100%', '', '3', 'center', ''); html_header_checkbox(array(__('Graph Title'), __('Device'), __('Graph Template'), __('Graph Size')), false); $i = 0; if (sizeof($graphs)) { foreach ($graphs as $graph) { form_alternate_row('line' . $graph['local_graph_id'], true); form_selectable_cell(filter_value($graph['title_cache'], get_request_var('rfilter'), 'graph.php?local_graph_id=' . $graph['local_graph_id'] . '&rra_id=0'), $graph['local_graph_id']); form_selectable_cell($graph['description'], $graph['local_graph_id']); form_selectable_cell($graph['template_name'], $graph['local_graph_id']); form_selectable_cell($graph['height'] . 'x' . $graph['width'], $graph['local_graph_id']); form_checkbox_cell($graph['title_cache'], $graph['local_graph_id']); form_end_row(); } } html_end_box(false); if (sizeof($graphs)) { print $nav; } ?>
  ' title='' onClick='viewGraphs()'>
'>