Merge branch 'ent-3210-Nueva-vista-de-servicios' into 'develop'
Ent 3210 nueva vista de servicios See merge request artica/pandorafms!2195 Former-commit-id: f29cb46b83ff0fde722f3c5e3eaf26aedf5cf327
This commit is contained in:
commit
441fb979e1
Binary file not shown.
After Width: | Height: | Size: 329 B |
Binary file not shown.
After Width: | Height: | Size: 401 B |
|
@ -3,173 +3,163 @@
|
|||
// ==================================================
|
||||
// Copyright (c) 2005-2012 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License
|
||||
// as published by the Free Software Foundation; version 2
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
// Only accesible by ajax
|
||||
if (is_ajax()) {
|
||||
global $config;
|
||||
if (is_ajax ()) {
|
||||
global $config;
|
||||
|
||||
enterprise_include_once("include/functions_dashboard.php");
|
||||
|
||||
enterprise_include_once('include/functions_dashboard.php');
|
||||
$public_hash = get_parameter('hash', 0);
|
||||
|
||||
$public_hash = get_parameter('hash', 0);
|
||||
// Try to authenticate by hash on public dashboards
|
||||
if ($public_hash == 0) {
|
||||
// Login check
|
||||
check_login();
|
||||
} else {
|
||||
$validate_hash = enterprise_hook(
|
||||
'dasboard_validate_public_hash',
|
||||
array($public_hash, 'tree_view')
|
||||
);
|
||||
if ($validate_hash === false || $validate_hash === ENTERPRISE_NOT_HOOK) {
|
||||
db_pandora_audit("Invalid public hash", "Trying to access report builder");
|
||||
require ("general/noaccess.php");
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
require_once($config['homedir'] . "/include/class/Tree.class.php");
|
||||
require_once($config['homedir'] . "/include/class/TreeOS.class.php");
|
||||
require_once($config['homedir'] . "/include/class/TreeModuleGroup.class.php");
|
||||
require_once($config['homedir'] . "/include/class/TreeModule.class.php");
|
||||
require_once($config['homedir'] . "/include/class/TreeTag.class.php");
|
||||
require_once($config['homedir'] . "/include/class/TreeGroup.class.php");
|
||||
require_once($config['homedir'] . "/include/class/TreeService.class.php");
|
||||
require_once($config['homedir'] . "/include/class/TreeGroupEdition.class.php");
|
||||
enterprise_include_once("include/class/TreePolicies.class.php");
|
||||
enterprise_include_once("include/class/TreeGroupMeta.class.php");
|
||||
require_once($config['homedir'] . "/include/functions_reporting.php");
|
||||
require_once($config['homedir'] . "/include/functions_os.php");
|
||||
|
||||
$getChildren = (bool) get_parameter('getChildren', 0);
|
||||
$getGroupStatus = (bool) get_parameter('getGroupStatus', 0);
|
||||
$getDetail = (bool) get_parameter('getDetail');
|
||||
|
||||
if ($getChildren) {
|
||||
$type = get_parameter('type', 'group');
|
||||
$rootType = get_parameter('rootType', '');
|
||||
$id = get_parameter('id', -1);
|
||||
$rootID = get_parameter('rootID', -1);
|
||||
$serverID = get_parameter('serverID', false);
|
||||
$childrenMethod = get_parameter('childrenMethod', 'on_demand');
|
||||
$hash = get_parameter('hash', false);
|
||||
if ($hash !== false) {
|
||||
enterprise_hook('dasboard_validate_public_hash', array($hash, 'tree_view'));
|
||||
}
|
||||
|
||||
// Try to authenticate by hash on public dashboards
|
||||
if ($public_hash == 0) {
|
||||
// Login check
|
||||
check_login();
|
||||
} else {
|
||||
$validate_hash = enterprise_hook(
|
||||
'dasboard_validate_public_hash',
|
||||
[
|
||||
$public_hash,
|
||||
'tree_view',
|
||||
]
|
||||
);
|
||||
if ($validate_hash === false || $validate_hash === ENTERPRISE_NOT_HOOK) {
|
||||
db_pandora_audit('Invalid public hash', 'Trying to access report builder');
|
||||
include 'general/noaccess.php';
|
||||
exit;
|
||||
}
|
||||
}
|
||||
$default_filters = array(
|
||||
'searchAgent' => '',
|
||||
'statusAgent' => AGENT_STATUS_ALL,
|
||||
'searchModule' => '',
|
||||
'statusModule' => -1,
|
||||
'groupID' => 0,
|
||||
'tagID' => 0,
|
||||
);
|
||||
$filter = get_parameter('filter', $default_filters);
|
||||
|
||||
include_once $config['homedir'].'/include/class/Tree.class.php';
|
||||
include_once $config['homedir'].'/include/class/TreeOS.class.php';
|
||||
include_once $config['homedir'].'/include/class/TreeModuleGroup.class.php';
|
||||
include_once $config['homedir'].'/include/class/TreeModule.class.php';
|
||||
include_once $config['homedir'].'/include/class/TreeTag.class.php';
|
||||
include_once $config['homedir'].'/include/class/TreeGroup.class.php';
|
||||
include_once $config['homedir'].'/include/class/TreeGroupEdition.class.php';
|
||||
enterprise_include_once('include/class/TreePolicies.class.php');
|
||||
enterprise_include_once('include/class/TreeGroupMeta.class.php');
|
||||
include_once $config['homedir'].'/include/functions_reporting.php';
|
||||
include_once $config['homedir'].'/include/functions_os.php';
|
||||
$agent_a = check_acl ($config['id_user'], 0, "AR");
|
||||
$agent_w = check_acl ($config['id_user'], 0, "AW");
|
||||
$access = ($agent_a == true) ? 'AR' : (($agent_w == true) ? 'AW' : 'AR');
|
||||
$switch_type = !empty($rootType) ? $rootType : $type;
|
||||
switch ($switch_type) {
|
||||
case 'os':
|
||||
$tree = new TreeOS($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
case 'module_group':
|
||||
$tree = new TreeModuleGroup($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
case 'module':
|
||||
$tree = new TreeModule($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
case 'tag':
|
||||
$tree = new TreeTag($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
case 'group':
|
||||
if(is_metaconsole()){
|
||||
if (!class_exists('TreeGroupMeta')) break;
|
||||
$tree = new TreeGroupMeta($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
}
|
||||
else{
|
||||
$tree = new TreeGroup($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
}
|
||||
break;
|
||||
case 'policies':
|
||||
if (!class_exists('TreePolicies')) break;
|
||||
$tree = new TreePolicies($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
case 'group_edition':
|
||||
$tree = new TreeGroupEdition($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
case 'services':
|
||||
$tree = new TreeService($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
default:
|
||||
// FIXME. No error handler
|
||||
return;
|
||||
}
|
||||
|
||||
$getChildren = (bool) get_parameter('getChildren', 0);
|
||||
$getGroupStatus = (bool) get_parameter('getGroupStatus', 0);
|
||||
$getDetail = (bool) get_parameter('getDetail');
|
||||
$tree->setFilter($filter);
|
||||
ob_clean();
|
||||
|
||||
if ($getChildren) {
|
||||
$type = get_parameter('type', 'group');
|
||||
$rootType = get_parameter('rootType', '');
|
||||
$id = get_parameter('id', -1);
|
||||
$rootID = get_parameter('rootID', -1);
|
||||
$serverID = get_parameter('serverID', false);
|
||||
$childrenMethod = get_parameter('childrenMethod', 'on_demand');
|
||||
$hash = get_parameter('hash', false);
|
||||
if ($hash !== false) {
|
||||
enterprise_hook('dasboard_validate_public_hash', [$hash, 'tree_view']);
|
||||
}
|
||||
|
||||
$default_filters = [
|
||||
'searchAgent' => '',
|
||||
'statusAgent' => AGENT_STATUS_ALL,
|
||||
'searchModule' => '',
|
||||
'statusModule' => -1,
|
||||
'groupID' => 0,
|
||||
'tagID' => 0,
|
||||
];
|
||||
$filter = get_parameter('filter', $default_filters);
|
||||
|
||||
$agent_a = check_acl($config['id_user'], 0, 'AR');
|
||||
$agent_w = check_acl($config['id_user'], 0, 'AW');
|
||||
$access = ($agent_a == true) ? 'AR' : (($agent_w == true) ? 'AW' : 'AR');
|
||||
$switch_type = !empty($rootType) ? $rootType : $type;
|
||||
switch ($switch_type) {
|
||||
case 'os':
|
||||
$tree = new TreeOS($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
|
||||
case 'module_group':
|
||||
$tree = new TreeModuleGroup($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
|
||||
case 'module':
|
||||
$tree = new TreeModule($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
|
||||
case 'tag':
|
||||
$tree = new TreeTag($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
|
||||
case 'group':
|
||||
if (is_metaconsole()) {
|
||||
if (!class_exists('TreeGroupMeta')) {
|
||||
break;
|
||||
}
|
||||
|
||||
$tree = new TreeGroupMeta($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
} else {
|
||||
$tree = new TreeGroup($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'policies':
|
||||
if (!class_exists('TreePolicies')) {
|
||||
break;
|
||||
}
|
||||
|
||||
$tree = new TreePolicies($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
|
||||
case 'group_edition':
|
||||
$tree = new TreeGroupEdition($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
break;
|
||||
|
||||
default:
|
||||
// FIXME. No error handler
|
||||
return;
|
||||
}
|
||||
|
||||
$tree->setFilter($filter);
|
||||
ob_clean();
|
||||
echo json_encode(['success' => 1, 'tree' => $tree->getArray()]);
|
||||
return;
|
||||
}
|
||||
|
||||
if ($getDetail) {
|
||||
include_once $config['homedir'].'/include/functions_treeview.php';
|
||||
|
||||
$id = (int) get_parameter('id');
|
||||
$type = (string) get_parameter('type');
|
||||
|
||||
$server = [];
|
||||
if (is_metaconsole()) {
|
||||
$server_id = (int) get_parameter('serverID');
|
||||
$server = metaconsole_get_servers($server_id);
|
||||
}
|
||||
|
||||
ob_clean();
|
||||
|
||||
echo '<div class="left_align">';
|
||||
if (!empty($id) && !empty($type)) {
|
||||
switch ($type) {
|
||||
case 'agent':
|
||||
treeview_printTable($id, $server, true);
|
||||
break;
|
||||
|
||||
case 'module':
|
||||
treeview_printModuleTable($id, $server, true);
|
||||
break;
|
||||
|
||||
case 'alert':
|
||||
treeview_printAlertsTable($id, $server, true);
|
||||
break;
|
||||
|
||||
default:
|
||||
// Nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
echo '<br></div>';
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
echo json_encode(array('success' => 1, 'tree' => $tree->getArray()));
|
||||
return;
|
||||
}
|
||||
|
||||
if ($getDetail) {
|
||||
require_once($config['homedir']."/include/functions_treeview.php");
|
||||
|
||||
$id = (int) get_parameter('id');
|
||||
$type = (string) get_parameter('type');
|
||||
|
||||
$server = array();
|
||||
if (is_metaconsole()) {
|
||||
$server_id = (int) get_parameter('serverID');
|
||||
$server = metaconsole_get_servers($server_id);
|
||||
}
|
||||
|
||||
ob_clean();
|
||||
|
||||
echo '<div class="left_align">';
|
||||
if (!empty($id) && !empty($type)) {
|
||||
switch ($type) {
|
||||
case 'agent':
|
||||
treeview_printTable($id, $server, true);
|
||||
break;
|
||||
case 'module':
|
||||
treeview_printModuleTable($id, $server, true);
|
||||
break;
|
||||
case 'alert':
|
||||
treeview_printAlertsTable($id, $server, true);
|
||||
break;
|
||||
default:
|
||||
// Nothing
|
||||
break;
|
||||
}
|
||||
}
|
||||
echo '<br></div>';
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
?>
|
File diff suppressed because it is too large
Load Diff
|
@ -36,9 +36,9 @@ class TreeGroup extends Tree
|
|||
];
|
||||
|
||||
$this->L2conditionInside = 'AND (
|
||||
ta.id_grupo = '.$this->id.'
|
||||
OR tasg.id_group = '.$this->id.'
|
||||
)';
|
||||
ta.id_grupo = '.$this->id.'
|
||||
OR tasg.id_group = '.$this->id.'
|
||||
)';
|
||||
}
|
||||
|
||||
|
||||
|
@ -198,44 +198,44 @@ class TreeGroup extends Tree
|
|||
$module_search_filter = '';
|
||||
if (!empty($this->filter['searchModule'])) {
|
||||
$module_search_inner = '
|
||||
INNER JOIN tagente_modulo tam
|
||||
ON ta.id_agente = tam.id_agente
|
||||
INNER JOIN tagente_estado tae
|
||||
ON tae.id_agente_modulo = tam.id_agente_modulo';
|
||||
INNER JOIN tagente_modulo tam
|
||||
ON ta.id_agente = tam.id_agente
|
||||
INNER JOIN tagente_estado tae
|
||||
ON tae.id_agente_modulo = tam.id_agente_modulo';
|
||||
$module_search_filter = "AND tam.disabled = 0
|
||||
AND tam.nombre LIKE '%%".$this->filter['searchModule']."%%' ".$this->getModuleStatusFilterFromTestado();
|
||||
AND tam.nombre LIKE '%%".$this->filter['searchModule']."%%' ".$this->getModuleStatusFilterFromTestado();
|
||||
}
|
||||
|
||||
$table = is_metaconsole() ? 'tmetaconsole_agent' : 'tagente';
|
||||
$table_sec = is_metaconsole() ? 'tmetaconsole_agent_secondary_group' : 'tagent_secondary_group';
|
||||
|
||||
$sql_model = "SELECT %s FROM
|
||||
(
|
||||
SELECT COUNT(DISTINCT(ta.id_agente)) AS total, id_grupo AS g
|
||||
FROM $table ta
|
||||
$module_search_inner
|
||||
WHERE ta.disabled = 0
|
||||
%s
|
||||
$agent_search_filter
|
||||
$agent_status_filter
|
||||
$module_status_filter
|
||||
$module_search_filter
|
||||
$group_acl
|
||||
GROUP BY id_grupo
|
||||
UNION ALL
|
||||
SELECT COUNT(DISTINCT(ta.id_agente)) AS total, id_group AS g
|
||||
FROM $table ta INNER JOIN $table_sec tasg
|
||||
ON ta.id_agente = tasg.id_agent
|
||||
$module_search_inner
|
||||
WHERE ta.disabled = 0
|
||||
%s
|
||||
$agent_search_filter
|
||||
$agent_status_filter
|
||||
$module_status_filter
|
||||
$module_search_filter
|
||||
$secondary_group_acl
|
||||
GROUP BY id_group
|
||||
) x GROUP BY g";
|
||||
(
|
||||
SELECT COUNT(DISTINCT(ta.id_agente)) AS total, id_grupo AS g
|
||||
FROM $table ta
|
||||
$module_search_inner
|
||||
WHERE ta.disabled = 0
|
||||
%s
|
||||
$agent_search_filter
|
||||
$agent_status_filter
|
||||
$module_status_filter
|
||||
$module_search_filter
|
||||
$group_acl
|
||||
GROUP BY id_grupo
|
||||
UNION ALL
|
||||
SELECT COUNT(DISTINCT(ta.id_agente)) AS total, id_group AS g
|
||||
FROM $table ta INNER JOIN $table_sec tasg
|
||||
ON ta.id_agente = tasg.id_agent
|
||||
$module_search_inner
|
||||
WHERE ta.disabled = 0
|
||||
%s
|
||||
$agent_search_filter
|
||||
$agent_status_filter
|
||||
$module_status_filter
|
||||
$module_search_filter
|
||||
$secondary_group_acl
|
||||
GROUP BY id_group
|
||||
) x GROUP BY g";
|
||||
$sql_array = [];
|
||||
foreach ($inside_fields as $inside_field) {
|
||||
$sql_array[] = sprintf(
|
||||
|
@ -247,9 +247,9 @@ class TreeGroup extends Tree
|
|||
}
|
||||
|
||||
$sql = "SELECT $fields FROM (".implode(' UNION ALL ', $sql_array).') x2
|
||||
RIGHT JOIN tgrupo tg
|
||||
ON x2.g = tg.id_grupo
|
||||
GROUP BY tg.id_grupo';
|
||||
RIGHT JOIN tgrupo tg
|
||||
ON x2.g = tg.id_grupo
|
||||
GROUP BY tg.id_grupo';
|
||||
$stats = db_get_all_rows_sql($sql);
|
||||
|
||||
$group_stats = [];
|
||||
|
|
|
@ -0,0 +1,334 @@
|
|||
<?php
|
||||
//Pandora FMS- http://pandorafms.com
|
||||
// ==================================================
|
||||
// Copyright (c) 2005-2018 Artica Soluciones Tecnologicas
|
||||
// Please see http://pandorafms.org for full contribution list
|
||||
|
||||
// This program is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public License
|
||||
// as published by the Free Software Foundation; version 2
|
||||
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
|
||||
global $config;
|
||||
|
||||
require_once($config['homedir']."/include/class/Tree.class.php");
|
||||
|
||||
class TreeService extends Tree {
|
||||
|
||||
protected $propagateCounters = true;
|
||||
protected $displayAllGroups = false;
|
||||
|
||||
public function __construct($type, $rootType = '', $id = -1, $rootID = -1, $serverID = false, $childrenMethod = "on_demand", $access = 'AR') {
|
||||
global $config;
|
||||
|
||||
parent::__construct($type, $rootType, $id, $rootID, $serverID, $childrenMethod, $access);
|
||||
|
||||
$this->L1fieldName = "id_group";
|
||||
$this->L1extraFields = array(
|
||||
"ts.name AS `name`",
|
||||
"ts.id AS `sid`"
|
||||
);
|
||||
|
||||
$this->filter['statusAgent'] = AGENT_STATUS_ALL;
|
||||
|
||||
$this->avoid_condition = true;
|
||||
|
||||
$this->L2inner = 'LEFT JOIN tservice_element tse
|
||||
ON tse.id_agent = ta.id_agente';
|
||||
|
||||
$this->L2condition = 'AND tse.id_service='.$this->id;
|
||||
|
||||
}
|
||||
|
||||
public function setPropagateCounters($value) {
|
||||
$this->propagateCounters = (bool)$value;
|
||||
}
|
||||
|
||||
public function setDisplayAllGroups($value) {
|
||||
$this->displayAllGroups = (bool)$value;
|
||||
}
|
||||
|
||||
protected function getData() {
|
||||
if ($this->id == -1) {
|
||||
$this->getFirstLevel();
|
||||
} elseif ($this->type == 'services') {
|
||||
$this->getSecondLevel();
|
||||
} elseif ($this->type == 'agent') {
|
||||
$this->getThirdLevel();
|
||||
}
|
||||
}
|
||||
|
||||
protected function getFirstLevel() {
|
||||
$processed_items = $this->getProcessedServices();
|
||||
$ids = array_keys($processed_items);
|
||||
|
||||
|
||||
|
||||
$filter=array('id'=>$ids);
|
||||
|
||||
$own_info = get_user_info($config['id_user']);
|
||||
|
||||
if ($own_info['is_admin'] || check_acl($config['id_user'], 0, 'PM')) {
|
||||
$display_all_services = true;
|
||||
} else {
|
||||
$display_all_services = false;
|
||||
}
|
||||
|
||||
$this->tree = [];
|
||||
|
||||
$services = services_get_services($filter, false, $display_all_services);
|
||||
|
||||
foreach ($services as $row) {
|
||||
|
||||
|
||||
|
||||
$status = services_get_status($row, true);
|
||||
|
||||
switch ($status) {
|
||||
|
||||
case SERVICE_STATUS_NORMAL:
|
||||
$processed_items[$row['id']]['statusImageHTML']='<img src="images/status_sets/default/agent_ok_ball.png" data-title="NORMAL status." data-use_title_for_force_title="1" class="forced_title" alt="NORMAL status." />';
|
||||
break;
|
||||
|
||||
case SERVICE_STATUS_CRITICAL:
|
||||
$processed_items[$row['id']]['statusImageHTML']='<img src="images/status_sets/default/agent_critical_ball.png" data-title="CRITICAL status." data-use_title_for_force_title="1" class="forced_title" alt="CRITICAL status." />';
|
||||
break;
|
||||
|
||||
case SERVICE_STATUS_WARNING:
|
||||
$processed_items[$row['id']][$key]['statusImageHTML']='<img src="images/status_sets/default/agent_warning_ball.png" data-title="WARNING status." data-use_title_for_force_title="1" class="forced_title" alt="WARNING status." />';
|
||||
break;
|
||||
|
||||
case SERVICE_STATUS_UNKNOWN:
|
||||
default:
|
||||
$processed_items[$row['id']]['statusImageHTML']='<img src="images/status_sets/default/agent_no_data_ball.png" data-title="UNKNOWN status." data-use_title_for_force_title="1" class="forced_title" alt="UNKNOWN status." />';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$this->tree = $processed_items;
|
||||
}
|
||||
|
||||
protected function getProcessedServices () {
|
||||
$fields = $this->getFirstLevelFields();
|
||||
|
||||
if (users_can_manage_group_all("AR")){
|
||||
$groups_acl = "";
|
||||
}
|
||||
else{
|
||||
$groups_acl = "AND ts.id_group IN (".implode(',', $this->userGroupsArray).")";
|
||||
}
|
||||
|
||||
$sql = sprintf("SELECT t1.*
|
||||
FROM tservice_element tss
|
||||
RIGHT JOIN
|
||||
(SELECT ts.id, ts.id_agent_module, ts.name, ts.name AS `alias`, ts.id AS `rootID`,
|
||||
'services' AS rootType, 'services' AS type,
|
||||
0 AS quiet,
|
||||
SUM(if((tse.id_agent<>0), 1, 0)) AS `total_agents`,
|
||||
SUM(if((tse.id_agente_modulo<>0), 1, 0)) AS `total_modules`,
|
||||
SUM(if((tse.id_service_child<>0), 1, 0)) AS `total_services`
|
||||
FROM tservice ts
|
||||
LEFT JOIN tservice_element tse
|
||||
ON ts.id=tse.id_service
|
||||
GROUP BY id
|
||||
) as t1
|
||||
ON tss.id_service_child = t1.id
|
||||
WHERE tss.id_service_child IS NULL
|
||||
%s
|
||||
",
|
||||
$groups_acl
|
||||
);
|
||||
|
||||
|
||||
$stats = db_get_all_rows_sql($sql);
|
||||
|
||||
|
||||
|
||||
|
||||
$services = array();
|
||||
|
||||
foreach ($stats as $service) {
|
||||
$services[$service['id']] = $this->getProcessedItem($services[$service['id']]);
|
||||
if ($service['total_services']+$service['total_agents']+$service['total_modules'] > 0)
|
||||
$services[$service['id']]['searchChildren'] = 1;
|
||||
else
|
||||
$services[$service['id']]['searchChildren'] = 0;
|
||||
|
||||
$services[$service['id']]['counters'] = array('total_services'=>$service['total_services'], 'total_agents'=>$service['total_agents'], 'total_modules'=>$service['total_modules']);
|
||||
$services[$service['id']]['name'] = $service['name'];
|
||||
$services[$service['id']]['id'] = $service['id'];
|
||||
$services[$service['id']]['serviceDetail']='index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.(int)$service['id'];
|
||||
}
|
||||
|
||||
return $services;
|
||||
}
|
||||
|
||||
protected function getFirstLevelFields() {
|
||||
$fields = array();
|
||||
|
||||
return implode(",", array_merge($fields, $this->L1extraFields));
|
||||
}
|
||||
|
||||
protected function getSecondLevel() {
|
||||
$data = array();
|
||||
$data_agents = array();
|
||||
$data_modules = array();
|
||||
$data_services = array();
|
||||
|
||||
$sql = $this->getSecondLevelSql();
|
||||
$data_agents = db_process_sql($sql);
|
||||
|
||||
if (empty($data_agents))
|
||||
$data_agents = array();
|
||||
|
||||
$this->processAgents($data_agents);
|
||||
|
||||
foreach ($data_agents as $key => $agent) {
|
||||
$data_agents[$key]['showEventsBtn'] = 1;
|
||||
$data_agents[$key]['eventAgent'] = $agent['id'];
|
||||
}
|
||||
|
||||
$sql = $this->getSecondLevelModulesSql();
|
||||
$data_modules = db_process_sql($sql);
|
||||
|
||||
if (empty($data_modules))
|
||||
$data_modules = array();
|
||||
else {
|
||||
foreach ($data_modules as $key => $module) {
|
||||
switch ($module['estado']) {
|
||||
case '0':
|
||||
$data_modules[$key]['statusImageHTML'] = '<img src="images/status_sets/default/agent_ok_ball.png" data-title="NORMAL status." data-use_title_for_force_title="1" class="forced_title" alt="NORMAL status." />';
|
||||
break;
|
||||
case '1':
|
||||
$data_modules[$key]['statusImageHTML'] = '<img src="images/status_sets/default/agent_critical_ball.png" data-title="NORMAL status." data-use_title_for_force_title="1" class="forced_title" alt="CRITICAL status." />';
|
||||
break;
|
||||
case '2':
|
||||
$data_modules[$key]['statusImageHTML'] = '<img src="images/status_sets/default/agent_warning_ball.png" data-title="NORMAL status." data-use_title_for_force_title="1" class="forced_title" alt="WARNING status." />';
|
||||
break;
|
||||
case '4':
|
||||
$data_modules[$key]['statusImageHTML'] = '<img src="images/status_sets/default/agent_no_data_ball.png" data-title="NORMAL status." data-use_title_for_force_title="1" class="forced_title" alt="UNKNOWN status." />';
|
||||
break;
|
||||
default:
|
||||
# code...
|
||||
break;
|
||||
}
|
||||
|
||||
$data_modules[$key]['showEventsBtn'] = 1;
|
||||
$data_modules[$key]['eventModule'] = $module['id_agente_modulo'];
|
||||
}
|
||||
}
|
||||
|
||||
$sql = $this->getSecondLevelServicesSql();
|
||||
$data_services = db_process_sql($sql);
|
||||
|
||||
|
||||
$service_stats = array();
|
||||
|
||||
foreach ($data_services as $service) {
|
||||
$service_stats[$service['id']]['id'] = (int)$service['id'];
|
||||
$service_stats[$service['id']]['name'] = $service['name'];
|
||||
$service_stats[$service['id']]['alias'] = $service['name'];
|
||||
if ($service['total_services']+$service['total_agents']+$service['total_modules'] > 0)
|
||||
$service_stats[$service['id']]['searchChildren'] = 1;
|
||||
else
|
||||
$services[$service['id']]['searchChildren'] = 0;
|
||||
|
||||
$service_stats[$service['id']]['rootID'] = $service['rootID'];
|
||||
$service_stats[$service['id']]['rootType'] = $service['rootType'];
|
||||
$service_stats[$service['id']]['type'] = 'services';
|
||||
$service_stats[$service['id']]['children']=array();
|
||||
$service_stats[$service['id']]['serviceDetail']='index.php?sec=network&sec2=enterprise/operation/services/services&tab=service_map&id_service='.(int)$service['id'];
|
||||
$service_stats[$service['id']]['counters']=array('total_services'=>$service['total_services'], 'total_agents'=>$service['total_agents'], 'total_modules'=>$service['total_modules']);
|
||||
|
||||
}
|
||||
|
||||
$own_info = get_user_info($config['id_user']);
|
||||
|
||||
if ($own_info['is_admin'] || check_acl($config['id_user'], 0, 'PM')) {
|
||||
$display_all_services = true;
|
||||
} else {
|
||||
$display_all_services = false;
|
||||
}
|
||||
|
||||
$services = services_get_services($filter, false, $display_all_services);
|
||||
|
||||
foreach ($services as $row) {
|
||||
|
||||
if (!array_key_exists($row['id'], $service_stats))
|
||||
continue;
|
||||
|
||||
$status = services_get_status($row, true);
|
||||
|
||||
|
||||
switch ($status) {
|
||||
|
||||
case SERVICE_STATUS_NORMAL:
|
||||
$service_stats[$row['id']]['statusImageHTML']='<img src="images/status_sets/default/agent_ok_ball.png" data-title="NORMAL status." data-use_title_for_force_title="1" class="forced_title" alt="NORMAL status." />';
|
||||
break;
|
||||
|
||||
case SERVICE_STATUS_CRITICAL:
|
||||
$service_stats[$row['id']]['statusImageHTML']='<img src="images/status_sets/default/agent_critical_ball.png" data-title="CRITICAL status." data-use_title_for_force_title="1" class="forced_title" alt="CRITICAL status." />';
|
||||
break;
|
||||
|
||||
case SERVICE_STATUS_WARNING:
|
||||
$service_stats[$row['id']][$key]['statusImageHTML']='<img src="images/status_sets/default/agent_warning_ball.png" data-title="WARNING status." data-use_title_for_force_title="1" class="forced_title" alt="WARNING status." />';
|
||||
break;
|
||||
|
||||
case SERVICE_STATUS_UNKNOWN:
|
||||
default:
|
||||
$service_stats[$row['id']]['statusImageHTML']='<img src="images/status_sets/default/agent_no_data_ball.png" data-title="UNKNOWN status." data-use_title_for_force_title="1" class="forced_title" alt="UNKNOWN status." />';
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$data_services = array_values($service_stats);
|
||||
|
||||
$data = array_merge($data_services, $data_agents, $data_modules);
|
||||
|
||||
if (empty($data)) {
|
||||
$this->tree = array();
|
||||
return;
|
||||
}
|
||||
|
||||
$this->tree = $data;
|
||||
}
|
||||
|
||||
protected function getSecondLevelServicesSql() {
|
||||
$group_acl = $this->getGroupAclCondition();
|
||||
|
||||
$sql = "SELECT ts.id, ts.name, tse1.id_service AS `rootID`, 'services' AS rootType, 'services' AS type, 0 AS quiet, SUM(if((tse2.id_agent<>0), 1, 0)) AS `total_agents`, SUM(if((tse2.id_agente_modulo<>0), 1, 0)) AS `total_modules`, SUM(if((tse2.id_service_child<>0), 1, 0)) AS `total_services`, 0 AS fired_count, 0 AS normal_count, 0 AS warning_count, 0 AS critical_count, 0 AS unknown_count, 0 AS notinit_count, 0 AS state_critical, 0 AS state_warning, 0 AS state_unknown, 0 AS state_notinit, 0 AS state_normal, 0 AS state_total, '' AS statusImageHTML, '' AS alertImageHTML
|
||||
FROM tservice_element tse1
|
||||
LEFT JOIN tservice_element tse2 ON tse1.id_service_child=tse2.id_service
|
||||
LEFT JOIN tservice ts ON tse1.id_service_child=ts.id
|
||||
WHERE tse1.id_service=$this->id AND tse1.id_service_child<>0
|
||||
GROUP BY tse1.id_service_child
|
||||
";
|
||||
|
||||
return $sql;
|
||||
}
|
||||
|
||||
|
||||
protected function getSecondLevelModulesSql() {
|
||||
|
||||
$sql = "SELECT tse.id_agente_modulo, nombre AS `name`, nombre AS `alias`, tse.id_service AS `rootID`, 'services' AS `rootType`, 'modules' AS `type`, estado
|
||||
FROM tservice_element tse
|
||||
INNER JOIN tagente_modulo tam ON tse.id_agente_modulo=tam.id_agente_modulo
|
||||
INNER JOIN tagente_estado tae ON tam.id_agente_modulo=tae.id_agente_estado
|
||||
WHERE tse.id_service=$this->id AND tse.id_agente_modulo<>0
|
||||
";
|
||||
|
||||
return $sql;
|
||||
}
|
||||
|
||||
protected function getAgentStatusFilter ($status = self::TV_DEFAULT_AGENT_STATUS) {
|
||||
return '';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
?>
|
||||
|
File diff suppressed because it is too large
Load Diff
|
@ -278,226 +278,228 @@ enterprise_hook('close_meta_frame');
|
|||
<?php } ?>
|
||||
|
||||
<script type="text/javascript">
|
||||
var treeController = TreeController.getController();
|
||||
|
||||
processTreeSearch();
|
||||
|
||||
$("form#tree_search").submit(function(e) {
|
||||
e.preventDefault();
|
||||
processTreeSearch();
|
||||
});
|
||||
|
||||
function processTreeSearch () {
|
||||
// Clear the tree
|
||||
if (typeof treeController.recipient != 'undefined' && treeController.recipient.length > 0)
|
||||
treeController.recipient.empty();
|
||||
|
||||
$(".loading_tree").show();
|
||||
|
||||
var parameters = {};
|
||||
parameters['page'] = "include/ajax/tree.ajax";
|
||||
parameters['getChildren'] = 1;
|
||||
parameters['type'] = "<?php echo $tab; ?>";
|
||||
parameters['filter'] = {};
|
||||
parameters['filter']['searchGroup'] = $("input#text-search_group").val();
|
||||
parameters['filter']['searchAgent'] = $("input#text-search_agent").val();
|
||||
parameters['filter']['statusAgent'] = $("select#status_agent").val();
|
||||
parameters['filter']['searchModule'] = $("input#text-search_module").val();
|
||||
parameters['filter']['statusModule'] = $("select#status_module").val();
|
||||
parameters['filter']['groupID'] = $("input#hidden-group-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;
|
||||
}
|
||||
|
||||
if($("#checkbox-show_not_init_agents").is(':checked')){
|
||||
parameters['filter']['show_not_init_agents'] = 1;
|
||||
}
|
||||
else{
|
||||
parameters['filter']['show_not_init_agents'] = 0;
|
||||
}
|
||||
|
||||
if($("#checkbox-show_not_init_modules").is(':checked')){
|
||||
parameters['filter']['show_not_init_modules'] = 1;
|
||||
$('#hidden-show_not_init_modules_hidden').val(1);
|
||||
}
|
||||
else{
|
||||
parameters['filter']['show_not_init_modules'] = 0;
|
||||
$('#hidden-show_not_init_modules_hidden').val(0);
|
||||
}
|
||||
var treeController = TreeController.getController();
|
||||
|
||||
processTreeSearch();
|
||||
|
||||
$("form#tree_search").submit(function(e) {
|
||||
e.preventDefault();
|
||||
processTreeSearch();
|
||||
});
|
||||
|
||||
function processTreeSearch () {
|
||||
// Clear the tree
|
||||
if (typeof treeController.recipient != 'undefined' && treeController.recipient.length > 0)
|
||||
treeController.recipient.empty();
|
||||
|
||||
$(".loading_tree").show();
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
data: parameters,
|
||||
success: function(data) {
|
||||
if (data.success) {
|
||||
$(".loading_tree").hide();
|
||||
|
||||
treeController.init({
|
||||
recipient: $("div#tree-controller-recipient"),
|
||||
detailRecipient: $.fixedBottomBox({ width: 400, height: window.innerHeight * 0.9 }),
|
||||
page: parameters['page'],
|
||||
emptyMessage: "<?php echo __('No data found'); ?>",
|
||||
foundMessage: "<?php echo __('Found groups'); ?>",
|
||||
tree: data.tree,
|
||||
baseURL: "<?php echo ui_get_full_url(false, false, false, is_metaconsole()); ?>",
|
||||
ajaxURL: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
filter: parameters['filter'],
|
||||
counterTitles: {
|
||||
total: {
|
||||
agents: "<?php echo __('Total agents'); ?>",
|
||||
modules: "<?php echo __('Total modules'); ?>",
|
||||
none: "<?php echo __('Total'); ?>"
|
||||
},
|
||||
alerts: {
|
||||
agents: "<?php echo __('Fired alerts'); ?>",
|
||||
modules: "<?php echo __('Fired alerts'); ?>",
|
||||
none: "<?php echo __('Fired alerts'); ?>"
|
||||
},
|
||||
critical: {
|
||||
agents: "<?php echo __('Critical agents'); ?>",
|
||||
modules: "<?php echo __('Critical modules'); ?>",
|
||||
none: "<?php echo __('Critical'); ?>"
|
||||
},
|
||||
warning: {
|
||||
agents: "<?php echo __('Warning agents'); ?>",
|
||||
modules: "<?php echo __('Warning modules'); ?>",
|
||||
none: "<?php echo __('Warning'); ?>"
|
||||
},
|
||||
unknown: {
|
||||
agents: "<?php echo __('Unknown agents'); ?>",
|
||||
modules: "<?php echo __('Unknown modules'); ?>",
|
||||
none: "<?php echo __('Unknown'); ?>"
|
||||
},
|
||||
not_init: {
|
||||
agents: "<?php echo __('Not init agents'); ?>",
|
||||
modules: "<?php echo __('Not init modules'); ?>",
|
||||
none: "<?php echo __('Not init'); ?>"
|
||||
},
|
||||
ok: {
|
||||
agents: "<?php echo __('Normal agents'); ?>",
|
||||
modules: "<?php echo __('Normal modules'); ?>",
|
||||
none: "<?php echo __('Normal'); ?>"
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
|
||||
// Show the modal window of an module
|
||||
var moduleDetailsWindow = $("<div></div>");
|
||||
moduleDetailsWindow
|
||||
.hide()
|
||||
.prop("id", "module_details_window")
|
||||
.appendTo('body');
|
||||
|
||||
function show_module_detail_dialog(module_id, id_agent, server_name, offset, period, module_name) {
|
||||
var params = {};
|
||||
var f = new Date();
|
||||
period = $('#period').val();
|
||||
|
||||
params.selection_mode = $('input[name=selection_mode]:checked').val();
|
||||
if (!params.selection_mode) {
|
||||
params.selection_mode='fromnow';
|
||||
}
|
||||
|
||||
params.date_from = $('#text-date_from').val();
|
||||
if (!params.date_from) {
|
||||
params.date_from = f.getFullYear() + "/" + (f.getMonth() +1) + "/" + f.getDate();
|
||||
}
|
||||
|
||||
params.time_from = $('#text-time_from').val();
|
||||
if (!params.time_from) {
|
||||
params.time_from = f.getHours() + ":" + f.getMinutes();
|
||||
}
|
||||
|
||||
params.date_to = $('#text-date_to').val();
|
||||
if (!params.date_to) {
|
||||
params.date_to =f.getFullYear() + "/" + (f.getMonth() +1) + "/" + f.getDate();
|
||||
}
|
||||
|
||||
params.time_to = $('#text-time_to').val();
|
||||
if (!params.time_to) {
|
||||
params.time_to = f.getHours() + ":" + f.getMinutes();
|
||||
}
|
||||
|
||||
params.page = "include/ajax/module";
|
||||
params.get_module_detail = 1;
|
||||
params.server_name = server_name;
|
||||
params.id_agent = id_agent;
|
||||
params.id_module = module_id;
|
||||
params.offset = offset;
|
||||
params.period = period;
|
||||
title = <?php echo "'".__('Module: ')."'"; ?> ;
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
data: params,
|
||||
dataType: "html",
|
||||
success: function(data) {
|
||||
$("#module_details_window").hide ()
|
||||
.empty ()
|
||||
.append (data)
|
||||
.dialog ({
|
||||
resizable: true,
|
||||
draggable: true,
|
||||
modal: true,
|
||||
title: title + module_name,
|
||||
overlay: {
|
||||
opacity: 0.5,
|
||||
background: "black"
|
||||
},
|
||||
width: 650,
|
||||
height: 500
|
||||
})
|
||||
.show ();
|
||||
refresh_pagination_callback(module_id, id_agent, server_name, module_name);
|
||||
datetime_picker_callback();
|
||||
forced_title_callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function datetime_picker_callback() {
|
||||
$("#text-time_from, #text-time_to").timepicker({
|
||||
showSecond: true,
|
||||
timeFormat: '<?php echo TIME_FORMAT_JS; ?>',
|
||||
timeOnlyTitle: '<?php echo __('Choose time'); ?>',
|
||||
timeText: '<?php echo __('Time'); ?>',
|
||||
hourText: '<?php echo __('Hour'); ?>',
|
||||
minuteText: '<?php echo __('Minute'); ?>',
|
||||
secondText: '<?php echo __('Second'); ?>',
|
||||
currentText: '<?php echo __('Now'); ?>',
|
||||
closeText: '<?php echo __('Close'); ?>'});
|
||||
|
||||
$.datepicker.setDefaults($.datepicker.regional[ "<?php echo get_user_language(); ?>"]);
|
||||
$("#text-date_from, #text-date_to").datepicker({dateFormat: "<?php echo DATE_FORMAT_JS; ?>"});
|
||||
|
||||
}
|
||||
|
||||
function refresh_pagination_callback (module_id, id_agent, server_name,module_name) {
|
||||
|
||||
$(".binary_dialog").click( function() {
|
||||
|
||||
var classes = $(this).attr('class');
|
||||
classes = classes.split(' ');
|
||||
var offset_class = classes[2];
|
||||
offset_class = offset_class.split('_');
|
||||
var offset = offset_class[1];
|
||||
|
||||
var period = $('#period').val();
|
||||
|
||||
show_module_detail_dialog(module_id, id_agent, server_name, offset, period,module_name);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
var parameters = {};
|
||||
parameters['page'] = "include/ajax/tree.ajax";
|
||||
parameters['getChildren'] = 1;
|
||||
parameters['type'] = "<?php echo $tab; ?>";
|
||||
parameters['filter'] = {};
|
||||
parameters['filter']['searchGroup'] = $("input#text-search_group").val();
|
||||
parameters['filter']['searchAgent'] = $("input#text-search_agent").val();
|
||||
parameters['filter']['statusAgent'] = $("select#status_agent").val();
|
||||
parameters['filter']['searchModule'] = $("input#text-search_module").val();
|
||||
parameters['filter']['statusModule'] = $("select#status_module").val();
|
||||
parameters['filter']['groupID'] = $("input#hidden-group-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;
|
||||
}
|
||||
|
||||
if($("#checkbox-show_not_init_agents").is(':checked')){
|
||||
parameters['filter']['show_not_init_agents'] = 1;
|
||||
}
|
||||
else{
|
||||
parameters['filter']['show_not_init_agents'] = 0;
|
||||
}
|
||||
|
||||
if($("#checkbox-show_not_init_modules").is(':checked')){
|
||||
parameters['filter']['show_not_init_modules'] = 1;
|
||||
$('#hidden-show_not_init_modules_hidden').val(1);
|
||||
}
|
||||
else{
|
||||
parameters['filter']['show_not_init_modules'] = 0;
|
||||
$('#hidden-show_not_init_modules_hidden').val(0);
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
data: parameters,
|
||||
success: function(data) {
|
||||
if (data.success) {
|
||||
$(".loading_tree").hide();
|
||||
|
||||
treeController.init({
|
||||
recipient: $("div#tree-controller-recipient"),
|
||||
detailRecipient: $.fixedBottomBox({ width: 400, height: window.innerHeight * 0.9 }),
|
||||
page: parameters['page'],
|
||||
emptyMessage: "<?php echo __('No data found'); ?>",
|
||||
foundMessage: "<?php echo __('Found groups'); ?>",
|
||||
tree: data.tree,
|
||||
baseURL: "<?php echo ui_get_full_url(false, false, false, is_metaconsole()); ?>",
|
||||
ajaxURL: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
filter: parameters['filter'],
|
||||
counterTitles: {
|
||||
total: {
|
||||
agents: "<?php echo __('Total agents'); ?>",
|
||||
modules: "<?php echo __('Total modules'); ?>",
|
||||
none: "<?php echo __('Total'); ?>"
|
||||
},
|
||||
alerts: {
|
||||
agents: "<?php echo __('Fired alerts'); ?>",
|
||||
modules: "<?php echo __('Fired alerts'); ?>",
|
||||
none: "<?php echo __('Fired alerts'); ?>"
|
||||
},
|
||||
critical: {
|
||||
agents: "<?php echo __('Critical agents'); ?>",
|
||||
modules: "<?php echo __('Critical modules'); ?>",
|
||||
none: "<?php echo __('Critical'); ?>"
|
||||
},
|
||||
warning: {
|
||||
agents: "<?php echo __('Warning agents'); ?>",
|
||||
modules: "<?php echo __('Warning modules'); ?>",
|
||||
none: "<?php echo __('Warning'); ?>"
|
||||
},
|
||||
unknown: {
|
||||
agents: "<?php echo __('Unknown agents'); ?>",
|
||||
modules: "<?php echo __('Unknown modules'); ?>",
|
||||
none: "<?php echo __('Unknown'); ?>"
|
||||
},
|
||||
not_init: {
|
||||
agents: "<?php echo __('Not init agents'); ?>",
|
||||
modules: "<?php echo __('Not init modules'); ?>",
|
||||
none: "<?php echo __('Not init'); ?>"
|
||||
},
|
||||
ok: {
|
||||
agents: "<?php echo __('Normal agents'); ?>",
|
||||
modules: "<?php echo __('Normal modules'); ?>",
|
||||
none: "<?php echo __('Normal'); ?>"
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
},
|
||||
dataType: "json"
|
||||
});
|
||||
}
|
||||
|
||||
// Show the modal window of an module
|
||||
var moduleDetailsWindow = $("<div></div>");
|
||||
moduleDetailsWindow
|
||||
.hide()
|
||||
.prop("id", "module_details_window")
|
||||
.appendTo('body');
|
||||
|
||||
function show_module_detail_dialog(module_id, id_agent, server_name, offset, period, module_name) {
|
||||
var params = {};
|
||||
var f = new Date();
|
||||
period = $('#period').val();
|
||||
|
||||
params.selection_mode = $('input[name=selection_mode]:checked').val();
|
||||
if (!params.selection_mode) {
|
||||
params.selection_mode='fromnow';
|
||||
}
|
||||
|
||||
params.date_from = $('#text-date_from').val();
|
||||
if (!params.date_from) {
|
||||
params.date_from = f.getFullYear() + "/" + (f.getMonth() +1) + "/" + f.getDate();
|
||||
}
|
||||
|
||||
params.time_from = $('#text-time_from').val();
|
||||
if (!params.time_from) {
|
||||
params.time_from = f.getHours() + ":" + f.getMinutes();
|
||||
}
|
||||
|
||||
params.date_to = $('#text-date_to').val();
|
||||
if (!params.date_to) {
|
||||
params.date_to =f.getFullYear() + "/" + (f.getMonth() +1) + "/" + f.getDate();
|
||||
}
|
||||
|
||||
params.time_to = $('#text-time_to').val();
|
||||
if (!params.time_to) {
|
||||
params.time_to = f.getHours() + ":" + f.getMinutes();
|
||||
}
|
||||
|
||||
params.page = "include/ajax/module";
|
||||
params.get_module_detail = 1;
|
||||
params.server_name = server_name;
|
||||
params.id_agent = id_agent;
|
||||
params.id_module = module_id;
|
||||
params.offset = offset;
|
||||
params.period = period;
|
||||
title = <?php echo "'" . __("Module: ") . "'" ?> ;
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "<?php echo ui_get_full_url('ajax.php', false, false, false); ?>",
|
||||
data: params,
|
||||
dataType: "html",
|
||||
success: function(data) {
|
||||
$("#module_details_window").hide ()
|
||||
.empty ()
|
||||
.append (data)
|
||||
.dialog ({
|
||||
resizable: true,
|
||||
draggable: true,
|
||||
modal: true,
|
||||
title: title + module_name,
|
||||
overlay: {
|
||||
opacity: 0.5,
|
||||
background: "black"
|
||||
},
|
||||
width: 650,
|
||||
height: 500
|
||||
})
|
||||
.show ();
|
||||
refresh_pagination_callback(module_id, id_agent, server_name, module_name);
|
||||
datetime_picker_callback();
|
||||
forced_title_callback();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function datetime_picker_callback() {
|
||||
$("#text-time_from, #text-time_to").timepicker({
|
||||
showSecond: true,
|
||||
timeFormat: '<?php echo TIME_FORMAT_JS; ?>',
|
||||
timeOnlyTitle: '<?php echo __('Choose time');?>',
|
||||
timeText: '<?php echo __('Time');?>',
|
||||
hourText: '<?php echo __('Hour');?>',
|
||||
minuteText: '<?php echo __('Minute');?>',
|
||||
secondText: '<?php echo __('Second');?>',
|
||||
currentText: '<?php echo __('Now');?>',
|
||||
closeText: '<?php echo __('Close');?>'});
|
||||
|
||||
$.datepicker.setDefaults($.datepicker.regional[ "<?php echo get_user_language(); ?>"]);
|
||||
$("#text-date_from, #text-date_to").datepicker({dateFormat: "<?php echo DATE_FORMAT_JS; ?>"});
|
||||
|
||||
}
|
||||
|
||||
function refresh_pagination_callback (module_id, id_agent, server_name,module_name) {
|
||||
|
||||
$(".binary_dialog").click( function() {
|
||||
|
||||
var classes = $(this).attr('class');
|
||||
classes = classes.split(' ');
|
||||
var offset_class = classes[2];
|
||||
offset_class = offset_class.split('_');
|
||||
var offset = offset_class[1];
|
||||
|
||||
var period = $('#period').val();
|
||||
|
||||
show_module_detail_dialog(module_id, id_agent, server_name, offset, period,module_name);
|
||||
return false;
|
||||
});
|
||||
}
|
||||
|
||||
</script>
|
||||
|
|
Loading…
Reference in New Issue