add new filter tree view
This commit is contained in:
parent
d7ea393c23
commit
7ea42dc5c5
|
@ -222,6 +222,12 @@ class Tree {
|
||||||
$agent_search_filter = " AND LOWER(ta.alias) LIKE LOWER('%".$this->filter['searchAgent']."%')";
|
$agent_search_filter = " AND LOWER(ta.alias) LIKE LOWER('%".$this->filter['searchAgent']."%')";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Search hirearchy
|
||||||
|
$search_hirearchy = false;
|
||||||
|
if($this->filter['searchHirearchy']){
|
||||||
|
$search_hirearchy = true;
|
||||||
|
}
|
||||||
|
|
||||||
// Agent status filter
|
// Agent status filter
|
||||||
$agent_status_filter = "";
|
$agent_status_filter = "";
|
||||||
if (isset($this->filter['statusAgent'])
|
if (isset($this->filter['statusAgent'])
|
||||||
|
@ -344,16 +350,49 @@ class Tree {
|
||||||
$group_filter = "AND ta.id_grupo IN ($user_groups_str)";
|
$group_filter = "AND ta.id_grupo IN ($user_groups_str)";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(!$search_hirearchy && (!empty($agent_search_filter) || !empty($module_search_filter))){
|
||||||
|
|
||||||
|
if(is_metaconsole()){
|
||||||
|
$query_agent_search = " SELECT DISTINCT(ta.id_grupo)
|
||||||
|
FROM tmetaconsole_agent ta
|
||||||
|
WHERE ta.disabled = 0
|
||||||
|
$agent_search_filter";
|
||||||
|
$id_groups_agents = db_get_all_rows_sql($query_agent_search);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$query_agent_search = " SELECT DISTINCT(ta.id_grupo)
|
||||||
|
FROM tagente ta, tagente_modulo tam
|
||||||
|
WHERE tam.id_agente = ta.id_agente
|
||||||
|
AND ta.disabled = 0
|
||||||
|
$agent_search_filter
|
||||||
|
$module_search_filter";
|
||||||
|
$id_groups_agents = db_get_all_rows_sql($query_agent_search);
|
||||||
|
}
|
||||||
|
|
||||||
|
if($id_groups_agents != false){
|
||||||
|
foreach ($id_groups_agents as $key => $value) {
|
||||||
|
$id_groups_agents_array[] = $value['id_grupo'];
|
||||||
|
}
|
||||||
|
$user_groups_array = explode(",", $user_groups_str);
|
||||||
|
$user_groups_array = array_intersect($user_groups_array, $id_groups_agents_array);
|
||||||
|
$user_groups_str = implode("," , $user_groups_array);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$user_groups_str = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
switch ($type) {
|
switch ($type) {
|
||||||
// Get the agents of a group
|
// Get the agents of a group
|
||||||
case 'group':
|
case 'group':
|
||||||
if (empty($rootID) || $rootID == -1) {
|
if (empty($rootID) || $rootID == -1) {
|
||||||
|
if(!$search_hirearchy && (!empty($agent_search_filter) || !empty($module_search_filter))){
|
||||||
|
$columns = 'tg.id_grupo AS id, tg.nombre AS name, tg.icon';
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$columns = 'tg.id_grupo AS id, tg.nombre AS name, tg.parent, tg.icon';
|
||||||
|
}
|
||||||
|
|
||||||
// Strict acl specifications
|
|
||||||
/*if ($this->strictACL)
|
|
||||||
return false;*/
|
|
||||||
|
|
||||||
$columns = 'tg.id_grupo AS id, tg.nombre AS name, tg.parent, tg.icon';
|
|
||||||
$order_fields = 'tg.nombre ASC, tg.id_grupo ASC';
|
$order_fields = 'tg.nombre ASC, tg.id_grupo ASC';
|
||||||
|
|
||||||
if (! is_metaconsole()) {
|
if (! is_metaconsole()) {
|
||||||
|
@ -1180,6 +1219,7 @@ class Tree {
|
||||||
!empty($group['counters']['total']));
|
!empty($group['counters']['total']));
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
usort($groups, array("Tree", "cmpSortNames"));
|
||||||
return $groups;
|
return $groups;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2646,9 +2686,10 @@ class Tree {
|
||||||
protected function getGroupCounters($group_id) {
|
protected function getGroupCounters($group_id) {
|
||||||
global $config;
|
global $config;
|
||||||
static $group_stats = false;
|
static $group_stats = false;
|
||||||
|
|
||||||
# Do not use the group stat cache when using tags or real time group stats.
|
# Do not use the group stat cache when using tags or real time group stats.
|
||||||
if ($config['realtimestats'] == 1 || (isset($this->userGroups[$group_id]['tags']) && $this->userGroups[$group_id]['tags'] != "")) {
|
if ($config['realtimestats'] == 1 ||
|
||||||
|
(isset($this->userGroups[$group_id]['tags']) && $this->userGroups[$group_id]['tags'] != "") ||
|
||||||
|
!empty($this->filter['searchAgent']) ) {
|
||||||
return $this->getCounters($group_id);
|
return $this->getCounters($group_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,18 +16,17 @@
|
||||||
|
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
$pure = get_parameter('pure', 0);
|
$pure = get_parameter('pure', 0);
|
||||||
$tab = get_parameter('tab', 'group');
|
$tab = get_parameter('tab', 'group');
|
||||||
$search_group = get_parameter('searchGroup', '');
|
$search_group = get_parameter('searchGroup', '');
|
||||||
$search_agent = get_parameter('searchAgent', '');
|
$search_agent = get_parameter('searchAgent', '');
|
||||||
$status_agent = get_parameter('statusAgent', AGENT_STATUS_ALL);
|
$status_agent = get_parameter('statusAgent', AGENT_STATUS_ALL);
|
||||||
$search_module = get_parameter('searchModule', '');
|
$search_module = get_parameter('searchModule', '');
|
||||||
$status_module = get_parameter('statusModule', -1);
|
$status_module = get_parameter('statusModule', -1);
|
||||||
$group_id = (int) get_parameter('group_id');
|
$group_id = (int) get_parameter('group_id');
|
||||||
$tag_id = (int) get_parameter('tag_id');
|
$tag_id = (int) get_parameter('tag_id');
|
||||||
|
$strict_acl = (bool) db_get_value("strict_acl", "tusuario", "id_user", $config['id_user']);
|
||||||
$strict_acl = (bool) db_get_value("strict_acl", "tusuario", "id_user", $config['id_user']);
|
$serach_hirearchy = (bool) get_parameter('searchHirearchy', false);
|
||||||
|
|
||||||
// ---------------------Tabs -------------------------------------------
|
// ---------------------Tabs -------------------------------------------
|
||||||
$enterpriseEnable = false;
|
$enterpriseEnable = false;
|
||||||
if (enterprise_include_once('include/functions_policies.php') !== ENTERPRISE_NOT_HOOK) {
|
if (enterprise_include_once('include/functions_policies.php') !== ENTERPRISE_NOT_HOOK) {
|
||||||
|
@ -126,6 +125,12 @@ $table->data = array();
|
||||||
$table->rowspan = array();
|
$table->rowspan = array();
|
||||||
$table->style[0] = 'font-weight: bold;';
|
$table->style[0] = 'font-weight: bold;';
|
||||||
$table->style[2] = 'font-weight: bold;';
|
$table->style[2] = 'font-weight: bold;';
|
||||||
|
$table->size = array();
|
||||||
|
$table->size[0] = '10%';
|
||||||
|
$table->size[1] = '35%';
|
||||||
|
$table->size[2] = '9%';
|
||||||
|
$table->size[3] = '10%';
|
||||||
|
$table->size[4] = '10%';
|
||||||
// Agent filter
|
// Agent filter
|
||||||
$agent_status_arr = array();
|
$agent_status_arr = array();
|
||||||
$agent_status_arr[AGENT_STATUS_ALL] = __('All'); //default
|
$agent_status_arr[AGENT_STATUS_ALL] = __('All'); //default
|
||||||
|
@ -135,17 +140,19 @@ $agent_status_arr[AGENT_STATUS_CRITICAL] = __('Critical');
|
||||||
$agent_status_arr[AGENT_STATUS_UNKNOWN] = __('Unknown');
|
$agent_status_arr[AGENT_STATUS_UNKNOWN] = __('Unknown');
|
||||||
$agent_status_arr[AGENT_STATUS_NOT_INIT] = __('Not init');
|
$agent_status_arr[AGENT_STATUS_NOT_INIT] = __('Not init');
|
||||||
|
|
||||||
if ($tab == 'group' || is_metaconsole()) {
|
$row = array();
|
||||||
$row = array();
|
$row[] = __('Search group');
|
||||||
$row[] = __('Search group');
|
$row[] = html_print_input_text("search_group", $search_group, '', is_metaconsole() ? 70 : 40, 30, true);
|
||||||
$row[] = html_print_input_text("search_group", $search_group, '', is_metaconsole() ? 70 : 40, 30, true);
|
|
||||||
|
|
||||||
$table->data[] = $row;
|
$table->data[] = $row;
|
||||||
}
|
|
||||||
|
|
||||||
$row = array();
|
$row = array();
|
||||||
$row[] = __('Search agent');
|
$row[] = __('Search agent');
|
||||||
$row[] = html_print_input_text("search_agent", $search_agent, '', is_metaconsole() ? 70 : 40, 30, true);
|
$row[] = html_print_input_text("search_agent", $search_agent, '', is_metaconsole() ? 70 : 40, 30, true);
|
||||||
|
|
||||||
|
$row[] = __('Show full hirearchy');
|
||||||
|
$row[] = html_print_checkbox("serach_hirearchy", $serach_hirearchy, false, true);
|
||||||
|
|
||||||
$row[] = __('Agent status');
|
$row[] = __('Agent status');
|
||||||
$row[] = html_print_select($agent_status_arr, "status_agent", $status_agent, '', '', 0, true);
|
$row[] = html_print_select($agent_status_arr, "status_agent", $status_agent, '', '', 0, true);
|
||||||
|
|
||||||
|
@ -256,6 +263,13 @@ enterprise_hook('close_meta_frame');
|
||||||
parameters['filter']['groupID'] = $("input#hidden-group-id").val();
|
parameters['filter']['groupID'] = $("input#hidden-group-id").val();
|
||||||
parameters['filter']['tagID'] = $("input#hidden-tag-id").val();
|
parameters['filter']['tagID'] = $("input#hidden-tag-id").val();
|
||||||
|
|
||||||
|
if($("#checkbox-serach_hirearchy").is(':checked')){
|
||||||
|
parameters['filter']['searchHirearchy'] = 1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
parameters['filter']['searchHirearchy'] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
url: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
url: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||||
|
|
Loading…
Reference in New Issue