Merge branch 'ent-8686-13248-anadir-buscador-de-grupos-en-agent-management-tree-group-de-metaconsola' into 'develop'
Ent 8686 13248 anadir buscador de grupos en agent management tree group de metaconsola See merge request artica/pandorafms!6539
This commit is contained in:
commit
d544ef4ac5
|
@ -757,6 +757,125 @@ if ($tab == 'tree') {
|
||||||
/*
|
/*
|
||||||
* Group tree view.
|
* Group tree view.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
$table = new stdClass();
|
||||||
|
$table->width = '100%';
|
||||||
|
$table->class = 'databox filters filter-table-adv';
|
||||||
|
if (is_metaconsole() === true) {
|
||||||
|
$table->cellspacing = 0;
|
||||||
|
$table->cellpadding = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
$search_group_string = get_parameter('search_group_string', '');
|
||||||
|
$search_agent_string = get_parameter('search_agent_string', '');
|
||||||
|
$agent_status = get_parameter('agent_status', '');
|
||||||
|
$show_not_init_agents = get_parameter('show_not_init_agents', 1);
|
||||||
|
$show_not_init_modules = get_parameter('show_not_init_modules', 1);
|
||||||
|
$show_full_hirearchy = get_parameter('show_full_hirearchy', 1);
|
||||||
|
|
||||||
|
|
||||||
|
$table->data = [];
|
||||||
|
$table->head = [];
|
||||||
|
$table->style = [];
|
||||||
|
|
||||||
|
$table->style[0] = 'width: 50%;';
|
||||||
|
$table->style[1] = 'width: 50%;';
|
||||||
|
|
||||||
|
$table->data[0][0] = html_print_label_input_block(
|
||||||
|
__('Search group'),
|
||||||
|
html_print_input_text(
|
||||||
|
'search_group_string',
|
||||||
|
$search_group_string,
|
||||||
|
'',
|
||||||
|
25,
|
||||||
|
255,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$agents_status_list = agents_status_list();
|
||||||
|
|
||||||
|
$table->data[0][1] = html_print_label_input_block(
|
||||||
|
__('Search by agent status').ui_print_help_tip(__('Shows the groups that contain an agent with the status that has been searched'), true),
|
||||||
|
html_print_select(
|
||||||
|
$agents_status_list,
|
||||||
|
'agent_status',
|
||||||
|
$agent_status,
|
||||||
|
'',
|
||||||
|
__('All'),
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
'w200p',
|
||||||
|
false,
|
||||||
|
'width: 100%;'
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$table->data[1][0] = html_print_label_input_block(
|
||||||
|
__('Search by agent').ui_print_help_tip(__('Shows groups that contain an agent matching the search'), true),
|
||||||
|
html_print_input_text(
|
||||||
|
'search_agent_string',
|
||||||
|
$search_agent_string,
|
||||||
|
'',
|
||||||
|
25,
|
||||||
|
255,
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$table->data[1][1] = html_print_label_input_block(
|
||||||
|
__('Show full hierarchy'),
|
||||||
|
html_print_checkbox_switch_extended(
|
||||||
|
'show_full_hirearchy',
|
||||||
|
1,
|
||||||
|
$show_full_hirearchy,
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
'',
|
||||||
|
true
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
$table->data[3][0] = ' ';
|
||||||
|
|
||||||
|
$table->data[3][1] = html_print_submit_button(
|
||||||
|
__('Filter'),
|
||||||
|
'filter',
|
||||||
|
false,
|
||||||
|
[
|
||||||
|
'class' => 'float-right',
|
||||||
|
'icon' => 'search',
|
||||||
|
],
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
|
$form = "<form method='post' action=''>";
|
||||||
|
$form .= html_print_table($table, true);
|
||||||
|
$form .= '</form>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
ui_toggle(
|
||||||
|
$form,
|
||||||
|
'<span class="subsection_header_title">'.__('Filters').'</span>',
|
||||||
|
'filter_form',
|
||||||
|
'',
|
||||||
|
true,
|
||||||
|
false,
|
||||||
|
'',
|
||||||
|
'white-box-content',
|
||||||
|
'box-flat white_table_graph fixed_filter_bar'
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
echo "<div id='tree-controller-recipient'></div>";
|
echo "<div id='tree-controller-recipient'></div>";
|
||||||
} else {
|
} else {
|
||||||
/*
|
/*
|
||||||
|
@ -826,6 +945,8 @@ if ($tab == 'tree') {
|
||||||
);
|
);
|
||||||
$form .= '</form>';
|
$form .= '</form>';
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
ui_toggle(
|
ui_toggle(
|
||||||
$form,
|
$form,
|
||||||
'<span class="subsection_header_title">'.__('Filters').'</span>',
|
'<span class="subsection_header_title">'.__('Filters').'</span>',
|
||||||
|
@ -1058,6 +1179,34 @@ $tab = 'group_edition';
|
||||||
<?php } ?>
|
<?php } ?>
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
let show_full_hirearchy = "<?php echo $show_full_hirearchy; ?>";
|
||||||
|
let show_not_init_agents = "<?php echo $show_not_init_agents; ?>";
|
||||||
|
let show_not_init_modules = "<?php echo $show_not_init_modules; ?>";
|
||||||
|
|
||||||
|
$('#checkbox-show_full_hirearchy').on("change", function() {
|
||||||
|
if (show_full_hirearchy == 1) {
|
||||||
|
show_full_hirearchy = 0;
|
||||||
|
} else {
|
||||||
|
show_full_hirearchy = 1;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#button-filter').on('click', function(event) {
|
||||||
|
console.log('here');
|
||||||
|
event.preventDefault();
|
||||||
|
|
||||||
|
load_tree(show_full_hirearchy, show_not_init_agents, show_not_init_modules);
|
||||||
|
});
|
||||||
|
|
||||||
|
window.addEventListener('load', function() {
|
||||||
|
load_tree(show_full_hirearchy, show_not_init_agents, show_not_init_modules);
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function load_tree(show_full_hirearchy, show_not_init_agents, show_not_init_modules) {
|
||||||
var treeController = TreeController.getController();
|
var treeController = TreeController.getController();
|
||||||
treeController.meta = <?php echo (is_metaconsole() === true) ? 1 : 0; ?>;
|
treeController.meta = <?php echo (is_metaconsole() === true) ? 1 : 0; ?>;
|
||||||
|
|
||||||
|
@ -1071,16 +1220,17 @@ $tab = 'group_edition';
|
||||||
parameters['getChildren'] = 1;
|
parameters['getChildren'] = 1;
|
||||||
parameters['type'] = "<?php echo $tab; ?>";
|
parameters['type'] = "<?php echo $tab; ?>";
|
||||||
parameters['filter'] = {};
|
parameters['filter'] = {};
|
||||||
parameters['filter']['searchGroup'] = '';
|
parameters['filter']['searchGroup'] = $('#text-search_group_string').val();
|
||||||
parameters['filter']['searchAgent'] = '';
|
parameters['filter']['searchAgent'] = $('#text-search_agent_string').val();
|
||||||
parameters['filter']['statusAgent'] = '';
|
parameters['filter']['statusAgent'] = $('#agent_status option:selected').val();
|
||||||
parameters['filter']['searchModule'] = '';
|
parameters['filter']['searchModule'] = '';
|
||||||
parameters['filter']['statusModule'] = '';
|
parameters['filter']['statusModule'] = '';
|
||||||
parameters['filter']['groupID'] = '';
|
parameters['filter']['groupID'] = '';
|
||||||
parameters['filter']['tagID'] = '';
|
parameters['filter']['tagID'] = '';
|
||||||
parameters['filter']['searchHirearchy'] = 1;
|
parameters['filter']['searchHirearchy'] = 1;
|
||||||
parameters['filter']['show_not_init_agents'] = 1;
|
parameters['filter']['show_full_hirearchy'] = show_full_hirearchy;
|
||||||
parameters['filter']['show_not_init_modules'] = 1;
|
parameters['filter']['show_not_init_agents'] = show_not_init_agents;
|
||||||
|
parameters['filter']['show_not_init_modules'] = show_not_init_modules;
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type: "POST",
|
type: "POST",
|
||||||
|
@ -1141,4 +1291,7 @@ $tab = 'group_edition';
|
||||||
},
|
},
|
||||||
dataType: "json"
|
dataType: "json"
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -59,6 +59,7 @@ if (is_ajax() === true) {
|
||||||
$metaID = (int) get_parameter('metaID', 0);
|
$metaID = (int) get_parameter('metaID', 0);
|
||||||
$childrenMethod = get_parameter('childrenMethod', 'on_demand');
|
$childrenMethod = get_parameter('childrenMethod', 'on_demand');
|
||||||
|
|
||||||
|
|
||||||
$default_filters = [
|
$default_filters = [
|
||||||
'searchAgent' => '',
|
'searchAgent' => '',
|
||||||
'statusAgent' => AGENT_STATUS_ALL,
|
'statusAgent' => AGENT_STATUS_ALL,
|
||||||
|
@ -69,6 +70,7 @@ if (is_ajax() === true) {
|
||||||
];
|
];
|
||||||
$filter = get_parameter('filter', $default_filters);
|
$filter = get_parameter('filter', $default_filters);
|
||||||
|
|
||||||
|
|
||||||
$agent_a = check_acl($config['id_user'], 0, 'AR');
|
$agent_a = check_acl($config['id_user'], 0, 'AR');
|
||||||
$agent_w = check_acl($config['id_user'], 0, 'AW');
|
$agent_w = check_acl($config['id_user'], 0, 'AW');
|
||||||
$access = ($agent_a === true) ? 'AR' : (($agent_w === true) ? 'AW' : 'AR');
|
$access = ($agent_a === true) ? 'AR' : (($agent_w === true) ? 'AW' : 'AR');
|
||||||
|
|
|
@ -106,6 +106,9 @@ class TreeGroupEdition extends TreeGroup
|
||||||
}
|
}
|
||||||
|
|
||||||
// Build the group hierarchy.
|
// Build the group hierarchy.
|
||||||
|
if (isset($this->filter['show_full_hirearchy']) === false
|
||||||
|
|| (isset($this->filter['show_full_hirearchy']) === true && (bool) $this->filter['show_full_hirearchy'] === true)
|
||||||
|
) {
|
||||||
foreach ($groups as $id => $group) {
|
foreach ($groups as $id => $group) {
|
||||||
if (isset($groups[$id]['parent']) === true
|
if (isset($groups[$id]['parent']) === true
|
||||||
&& ($groups[$id]['parent'] != 0)
|
&& ($groups[$id]['parent'] != 0)
|
||||||
|
@ -122,6 +125,7 @@ class TreeGroupEdition extends TreeGroup
|
||||||
$groups[$id]['have_parent'] = true;
|
$groups[$id]['have_parent'] = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Sort the children groups.
|
// Sort the children groups.
|
||||||
foreach ($groups as $id => $group) {
|
foreach ($groups as $id => $group) {
|
||||||
|
@ -167,6 +171,92 @@ class TreeGroupEdition extends TreeGroup
|
||||||
];
|
];
|
||||||
|
|
||||||
$group_acl = '';
|
$group_acl = '';
|
||||||
|
$search_agent = '';
|
||||||
|
$status_agent = '';
|
||||||
|
$inner_agent = '';
|
||||||
|
|
||||||
|
if ((bool) is_metaconsole() === true) {
|
||||||
|
if (users_can_manage_group_all('AR') === false) {
|
||||||
|
$user_groups_str = implode(',', $this->userGroupsArray);
|
||||||
|
$group_acl = sprintf(
|
||||||
|
' AND tgrupo.id_grupo IN (%s) ',
|
||||||
|
$user_groups_str
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($this->filter['searchAgent']) === true && empty($this->filter['searchAgent']) === false
|
||||||
|
|| isset($this->filter['statusAgent']) === true && strlen($this->filter['statusAgent']) > 0
|
||||||
|
) {
|
||||||
|
$inner_agent = 'INNER JOIN tmetaconsole_agent ON tgrupo.id_grupo = tmetaconsole_agent.id_grupo';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($this->filter['searchAgent']) === true && empty($this->filter['searchAgent']) === false) {
|
||||||
|
$search_agent = ' AND tmetaconsole_agent.alias LIKE "%'.$this->filter['searchAgent'].'%" ';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset($this->filter['statusAgent']) === true && strlen($this->filter['statusAgent']) > 0) {
|
||||||
|
switch ($this->filter['statusAgent']) {
|
||||||
|
case AGENT_STATUS_NORMAL:
|
||||||
|
$status_agent = ' AND (
|
||||||
|
tmetaconsole_agent.critical_count = 0
|
||||||
|
AND tmetaconsole_agent.warning_count = 0
|
||||||
|
AND tmetaconsole_agent.unknown_count = 0
|
||||||
|
AND tmetaconsole_agent.normal_count > 0)';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AGENT_STATUS_WARNING:
|
||||||
|
$status_agent = ' AND (
|
||||||
|
tmetaconsole_agent.critical_count = 0
|
||||||
|
AND tmetaconsole_agent.warning_count > 0
|
||||||
|
AND tmetaconsole_agent.total_count > 0)';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AGENT_STATUS_CRITICAL:
|
||||||
|
$status_agent = ' AND tmetaconsole_agent.critical_count > 0';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AGENT_STATUS_UNKNOWN:
|
||||||
|
$status_agent = ' AND (
|
||||||
|
tmetaconsole_agent.critical_count = 0
|
||||||
|
AND tmetaconsole_agent.warning_count = 0
|
||||||
|
AND tmetaconsole_agent.unknown_count > 0)';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AGENT_STATUS_NOT_NORMAL:
|
||||||
|
$status_agent = ' AND (
|
||||||
|
tmetaconsole_agent.normal_count <> total_count
|
||||||
|
OR tmetaconsole_agent.total_count = notinit_count)';
|
||||||
|
break;
|
||||||
|
|
||||||
|
case AGENT_STATUS_NOT_INIT:
|
||||||
|
$status_agent = ' AND (
|
||||||
|
tmetaconsole_agent.total_count = 0
|
||||||
|
OR tmetaconsole_agent.total_count = notinit_count)';
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Nothing to do.
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$sql = sprintf(
|
||||||
|
'SELECT tgrupo.id_grupo AS gid,
|
||||||
|
tgrupo.nombre as name,
|
||||||
|
tgrupo.parent,
|
||||||
|
tgrupo.icon
|
||||||
|
FROM tgrupo
|
||||||
|
%s
|
||||||
|
WHERE 1=1
|
||||||
|
%s
|
||||||
|
%s
|
||||||
|
%s ',
|
||||||
|
$inner_agent,
|
||||||
|
$search_agent,
|
||||||
|
$status_agent,
|
||||||
|
$group_acl
|
||||||
|
);
|
||||||
|
} else {
|
||||||
if (users_can_manage_group_all('AR') === false) {
|
if (users_can_manage_group_all('AR') === false) {
|
||||||
$user_groups_str = implode(',', $this->userGroupsArray);
|
$user_groups_str = implode(',', $this->userGroupsArray);
|
||||||
$group_acl = sprintf(
|
$group_acl = sprintf(
|
||||||
|
@ -181,9 +271,11 @@ class TreeGroupEdition extends TreeGroup
|
||||||
parent,
|
parent,
|
||||||
icon
|
icon
|
||||||
FROM tgrupo
|
FROM tgrupo
|
||||||
WHERE 1=1 %s',
|
WHERE 1=1
|
||||||
|
%s ',
|
||||||
$group_acl
|
$group_acl
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
$stats = db_get_all_rows_sql($sql);
|
$stats = db_get_all_rows_sql($sql);
|
||||||
$group_stats = [];
|
$group_stats = [];
|
||||||
|
|
|
@ -4899,3 +4899,24 @@ function get_resume_agent_concat($id_agente, $all_groups, $agent)
|
||||||
|
|
||||||
return $agent_contact;
|
return $agent_contact;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Return an array with a list of status agents
|
||||||
|
*
|
||||||
|
* @return array.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
function agents_status_list()
|
||||||
|
{
|
||||||
|
$status_list = [];
|
||||||
|
$status_list[AGENT_STATUS_NORMAL] = __('Normal');
|
||||||
|
$status_list[AGENT_STATUS_WARNING] = __('Warning');
|
||||||
|
$status_list[AGENT_STATUS_CRITICAL] = __('Critical');
|
||||||
|
$status_list[AGENT_STATUS_UNKNOWN] = __('Unknown');
|
||||||
|
$status_list[AGENT_STATUS_NOT_NORMAL] = __('Not normal');
|
||||||
|
$status_list[AGENT_STATUS_NOT_INIT] = __('Not init');
|
||||||
|
|
||||||
|
return $status_list;
|
||||||
|
}
|
Loading…
Reference in New Issue