mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-30 09:15:15 +02:00
Merge branch 'ent-2335-gis-group-items' into 'develop'
Grupos como elementos de mapa GIS See merge request artica/pandorafms!1693
This commit is contained in:
commit
e78fc93f17
@ -62,4 +62,17 @@ ALTER TABLE `tusuario_perfil` DROP COLUMN `is_secondary`;
|
|||||||
|
|
||||||
UPDATE `talert_commands` SET name='Monitoring Event' WHERE name='Pandora FMS Event';
|
UPDATE `talert_commands` SET name='Monitoring Event' WHERE name='Pandora FMS Event';
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table `tgis_map_layer_groups`
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
CREATE TABLE IF NOT EXISTS `tgis_map_layer_groups` (
|
||||||
|
`layer_id` INT NOT NULL,
|
||||||
|
`group_id` MEDIUMINT(4) UNSIGNED NOT NULL,
|
||||||
|
`agent_id` INT(10) UNSIGNED NOT NULL COMMENT 'Used to link the position to the group',
|
||||||
|
PRIMARY KEY (`layer_id`, `group_id`),
|
||||||
|
FOREIGN KEY (`layer_id`) REFERENCES `tgis_map_layer` (`id_tmap_layer`) ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (`group_id`) REFERENCES `tgrupo` (`id_grupo`) ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (`agent_id`) REFERENCES `tagente` (`id_agente`) ON DELETE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
File diff suppressed because it is too large
Load Diff
@ -91,7 +91,8 @@ function alerts_get_alerts($id_group = 0, $free_search = "", $status = "all", $s
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$sql = 'SELECT *, t2.nombre AS module_name,
|
$sql = 'SELECT *, t2.nombre AS module_name,
|
||||||
t3.nombre AS agent_name, t1.name AS template_name,
|
t3.nombre AS agent_name, t3.alias AS agent_alias,
|
||||||
|
t1.name AS template_name,
|
||||||
t0.disabled AS alert_disabled ';
|
t0.disabled AS alert_disabled ';
|
||||||
}
|
}
|
||||||
$sql .= '
|
$sql .= '
|
||||||
|
@ -172,6 +172,10 @@ function gis_make_layer($name, $visible = true, $dot = null, $idLayer = null, $p
|
|||||||
}
|
}
|
||||||
|
|
||||||
$visible = (bool)$visible;
|
$visible = (bool)$visible;
|
||||||
|
|
||||||
|
$ajax_url = $public_console
|
||||||
|
? ui_get_full_url('operation/gis_maps/ajax.php', false, false, false, false)
|
||||||
|
: ui_get_full_url('ajax.php', false, false, false, false);
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).ready (
|
$(document).ready (
|
||||||
@ -210,7 +214,9 @@ function gis_make_layer($name, $visible = true, $dot = null, $idLayer = null, $p
|
|||||||
.css("text-align", "center")
|
.css("text-align", "center")
|
||||||
.html('<img src="' + img_src + '" />')
|
.html('<img src="' + img_src + '" />')
|
||||||
.dialog({
|
.dialog({
|
||||||
title: "<?php echo __('Agent'); ?> #" + featureData.id,
|
title: featureData.type == "point_group_info"
|
||||||
|
? "<?php echo __('Group'); ?> #" + featureData.id_parent
|
||||||
|
: "<?php echo __('Agent'); ?> #" + featureData.id,
|
||||||
resizable: true,
|
resizable: true,
|
||||||
draggable: true,
|
draggable: true,
|
||||||
modal: true,
|
modal: true,
|
||||||
@ -224,11 +230,12 @@ function gis_make_layer($name, $visible = true, $dot = null, $idLayer = null, $p
|
|||||||
});
|
});
|
||||||
|
|
||||||
jQuery.ajax ({
|
jQuery.ajax ({
|
||||||
url: "<?php echo ui_get_full_url('ajax.php', false, false, false, false); ?>",
|
url: "<?php echo $ajax_url; ?>",
|
||||||
data: {
|
data: {
|
||||||
page: "operation/gis_maps/ajax",
|
page: "operation/gis_maps/ajax",
|
||||||
opt: featureData.type,
|
opt: featureData.type,
|
||||||
id: featureData.id,
|
id: featureData.id,
|
||||||
|
id_parent: featureData.id_parent,
|
||||||
hash: "<?php echo $hash; ?>",
|
hash: "<?php echo $hash; ?>",
|
||||||
id_user: "<?php echo $config['id_user']; ?>",
|
id_user: "<?php echo $config['id_user']; ?>",
|
||||||
map_id: <?php echo (int)$id_map; ?>
|
map_id: <?php echo (int)$id_map; ?>
|
||||||
@ -469,6 +476,38 @@ function gis_get_agents_layer($idLayer) {
|
|||||||
return $returned_agents;
|
return $returned_agents;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the groups into the layer by agent Id.
|
||||||
|
*
|
||||||
|
* @param integer $idLayer Layer Id.
|
||||||
|
*
|
||||||
|
* @return array.
|
||||||
|
*/
|
||||||
|
function gis_get_groups_layer_by_agent_id ($idLayer) {
|
||||||
|
$sql = sprintf(
|
||||||
|
"SELECT
|
||||||
|
tg.id_grupo AS id,
|
||||||
|
tg.nombre AS name,
|
||||||
|
ta.id_agente AS agent_id,
|
||||||
|
ta.alias AS agent_alias,
|
||||||
|
ta.nombre AS agent_name
|
||||||
|
FROM tgis_map_layer_groups tgmlg
|
||||||
|
INNER JOIN tgrupo tg
|
||||||
|
ON tgmlg.group_id = tg.id_grupo
|
||||||
|
INNER JOIN tagente ta
|
||||||
|
ON tgmlg.agent_id = ta.id_agente
|
||||||
|
WHERE tgmlg.layer_id = %d",
|
||||||
|
$idLayer
|
||||||
|
);
|
||||||
|
$groups = db_get_all_rows_sql($sql);
|
||||||
|
if ($groups === false) $groups = array();
|
||||||
|
|
||||||
|
return array_reduce($groups, function ($all, $item) {
|
||||||
|
$all[$item["agent_id"]] = $item;
|
||||||
|
return $all;
|
||||||
|
}, array());
|
||||||
|
}
|
||||||
|
|
||||||
function gis_add_point_path($layerName, $lat, $lon, $color, $manual = 1, $id) {
|
function gis_add_point_path($layerName, $lat, $lon, $color, $manual = 1, $id) {
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
@ -823,12 +862,25 @@ function gis_save_map($map_name, $map_initial_longitude, $map_initial_latitude,
|
|||||||
'tgrupo_id_grupo' => $layer['layer_group']
|
'tgrupo_id_grupo' => $layer['layer_group']
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
// Angent
|
||||||
if ((isset($layer['layer_agent_list'])) AND (count($layer['layer_agent_list']) > 0)) {
|
if ((isset($layer['layer_agent_list'])) AND (count($layer['layer_agent_list']) > 0)) {
|
||||||
foreach ($layer['layer_agent_list'] as $agent_name) {
|
foreach ($layer['layer_agent_list'] as $agent) {
|
||||||
db_process_sql_insert('tgis_map_layer_has_tagente',
|
db_process_sql_insert('tgis_map_layer_has_tagente',
|
||||||
array(
|
array(
|
||||||
'tgis_map_layer_id_tmap_layer' => $idLayer,
|
'tgis_map_layer_id_tmap_layer' => $idLayer,
|
||||||
'tagente_id_agente' => agents_get_agent_id(io_safe_input($agent_name))
|
'tagente_id_agente' => $agent["id"]
|
||||||
|
)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// Group
|
||||||
|
if ((isset($layer['layer_group_list'])) AND (count($layer['layer_group_list']) > 0)) {
|
||||||
|
foreach ($layer['layer_group_list'] as $group) {
|
||||||
|
db_process_sql_insert('tgis_map_layer_groups',
|
||||||
|
array(
|
||||||
|
"layer_id" => $idLayer,
|
||||||
|
"group_id" => $group["id"],
|
||||||
|
"agent_id" => $group["agent_id"]
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@ -880,11 +932,12 @@ function gis_update_map($idMap, $map_name, $map_initial_longitude, $map_initial_
|
|||||||
foreach ($listOldIdLayers as $idLayer) {
|
foreach ($listOldIdLayers as $idLayer) {
|
||||||
db_process_sql_delete('tgis_map_layer_has_tagente',
|
db_process_sql_delete('tgis_map_layer_has_tagente',
|
||||||
array('tgis_map_layer_id_tmap_layer' => $idLayer['id_tmap_layer']));
|
array('tgis_map_layer_id_tmap_layer' => $idLayer['id_tmap_layer']));
|
||||||
|
db_process_sql_delete('tgis_map_layer_groups',
|
||||||
|
array('layer_id' => $idLayer['id_tmap_layer']));
|
||||||
|
|
||||||
$list_onlyIDsLayers[$idLayer['id_tmap_layer']] = 0;
|
$list_onlyIDsLayers[$idLayer['id_tmap_layer']] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
foreach ($arrayLayers as $index => $layer) {
|
foreach ($arrayLayers as $index => $layer) {
|
||||||
|
|
||||||
if ($layer['id'] != 0) {
|
if ($layer['id'] != 0) {
|
||||||
@ -915,18 +968,28 @@ function gis_update_map($idMap, $map_name, $map_initial_longitude, $map_initial_
|
|||||||
|
|
||||||
if (array_key_exists('layer_agent_list', $layer)) {
|
if (array_key_exists('layer_agent_list', $layer)) {
|
||||||
if (count($layer['layer_agent_list']) > 0) {
|
if (count($layer['layer_agent_list']) > 0) {
|
||||||
foreach ($layer['layer_agent_list'] as $agent_name) {
|
foreach ($layer['layer_agent_list'] as $agent) {
|
||||||
|
$id = db_process_sql_insert('tgis_map_layer_has_tagente',
|
||||||
db_process_sql_insert('tgis_map_layer_has_tagente',
|
|
||||||
array(
|
array(
|
||||||
'tgis_map_layer_id_tmap_layer' => $idLayer,
|
'tgis_map_layer_id_tmap_layer' => $idLayer,
|
||||||
'tagente_id_agente' => agents_get_agent_id(
|
'tagente_id_agente' => $agent["id"]
|
||||||
io_safe_input($agent_name))
|
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (array_key_exists('layer_group_list', $layer)) {
|
||||||
|
if (count($layer['layer_group_list']) > 0) {
|
||||||
|
foreach ($layer['layer_group_list'] as $group) {
|
||||||
|
$id = db_process_sql_insert('tgis_map_layer_groups', array(
|
||||||
|
"layer_id" => $idLayer,
|
||||||
|
"group_id" => $group["id"],
|
||||||
|
"agent_id" => $group["agent_id"]
|
||||||
|
));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//Delete layers that not carry the $arrayLayers
|
//Delete layers that not carry the $arrayLayers
|
||||||
@ -1244,7 +1307,8 @@ function gis_get_map_data($idMap) {
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$sql = "SELECT id_tmap_layer, layer_name,
|
$sql = "SELECT id_tmap_layer AS id,
|
||||||
|
layer_name,
|
||||||
tgrupo_id_grupo AS layer_group,
|
tgrupo_id_grupo AS layer_group,
|
||||||
view_layer AS layer_visible
|
view_layer AS layer_visible
|
||||||
FROM tgis_map_layer
|
FROM tgis_map_layer
|
||||||
@ -1254,12 +1318,12 @@ function gis_get_map_data($idMap) {
|
|||||||
if ($layers === false) $layers = array();
|
if ($layers === false) $layers = array();
|
||||||
|
|
||||||
foreach ($layers as $index => $layer) {
|
foreach ($layers as $index => $layer) {
|
||||||
if (!isset($layer['id_tmap_layer']))
|
if (!isset($layer['id'])) continue;
|
||||||
continue;
|
|
||||||
|
|
||||||
$id_tmap_layer = (int) $layer['id_tmap_layer'];
|
$id_tmap_layer = (int) $layer['id'];
|
||||||
|
|
||||||
$sql = "SELECT nombre
|
// Agent list
|
||||||
|
$sql = "SELECT id_agente AS id, alias
|
||||||
FROM tagente
|
FROM tagente
|
||||||
WHERE id_agente IN (
|
WHERE id_agente IN (
|
||||||
SELECT tagente_id_agente
|
SELECT tagente_id_agente
|
||||||
@ -1269,6 +1333,26 @@ function gis_get_map_data($idMap) {
|
|||||||
if ($agents === false) $agents = array();
|
if ($agents === false) $agents = array();
|
||||||
|
|
||||||
$layers[$index]['layer_agent_list'] = $agents;
|
$layers[$index]['layer_agent_list'] = $agents;
|
||||||
|
|
||||||
|
// Group list
|
||||||
|
$sql = sprintf(
|
||||||
|
"SELECT
|
||||||
|
tg.id_grupo AS id,
|
||||||
|
tg.nombre AS name,
|
||||||
|
ta.id_agente AS agent_id,
|
||||||
|
ta.alias AS agent_alias
|
||||||
|
FROM tgis_map_layer_groups tgmlg
|
||||||
|
INNER JOIN tgrupo tg
|
||||||
|
ON tgmlg.group_id = tg.id_grupo
|
||||||
|
INNER JOIN tagente ta
|
||||||
|
ON tgmlg.agent_id = ta.id_agente
|
||||||
|
WHERE tgmlg.layer_id = %d",
|
||||||
|
$id_tmap_layer
|
||||||
|
);
|
||||||
|
$groups = db_get_all_rows_sql($sql);
|
||||||
|
if ($groups === false) $groups = array();
|
||||||
|
|
||||||
|
$layers[$index]['layer_group_list'] = $groups;
|
||||||
}
|
}
|
||||||
|
|
||||||
$returnVar['map'] = $map;
|
$returnVar['map'] = $map;
|
||||||
@ -1331,63 +1415,6 @@ function gis_get_num_zoom_levels_connection_default($map_connection_list) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This function use in form the "pandora_console/godmode/gis_maps/configure_gis_map.php"
|
|
||||||
* in the case of edit a map or when there are any error in save new map. Because this function
|
|
||||||
* return a html code that it has the rows of layers of map.
|
|
||||||
*
|
|
||||||
* @param Array $layer_list The list of layers for convert a html.
|
|
||||||
*
|
|
||||||
* @return String The html source code.
|
|
||||||
*/
|
|
||||||
function gis_add_layer_list($layer_list) {
|
|
||||||
$returnVar = '';
|
|
||||||
|
|
||||||
$count = 0;
|
|
||||||
foreach ($layer_list as $layer) {
|
|
||||||
//Create the layer temp form as it was in the form
|
|
||||||
$layerTempForm = array();
|
|
||||||
$layerTempForm['id'] = $layer['id'];
|
|
||||||
$layerTempForm['layer_name'] = $layer['layer_name'];
|
|
||||||
$layerTempForm['layer_group'] = $layer['layer_group'];
|
|
||||||
$layerTempForm['layer_visible'] = $layer['layer_visible'];
|
|
||||||
if (array_key_exists('layer_agent_list', $layer)) {
|
|
||||||
foreach ($layer['layer_agent_list'] as $agent) {
|
|
||||||
$layerTempForm['layer_agent_list'][] = $agent;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$layerDataJSON = json_encode($layerTempForm);
|
|
||||||
|
|
||||||
$returnVar .= '
|
|
||||||
<tbody id="layer_item_' . $count . '">
|
|
||||||
<tr>
|
|
||||||
<td class="col1">' .
|
|
||||||
$layer['layer_name'] .
|
|
||||||
'</td>
|
|
||||||
<td class="up_arrow"><a id="up_arrow" href="javascript: upLayer(' . $count . ');">' . html_print_image("images/up.png", true, array("alt" => "")) . '</a></td>
|
|
||||||
<td class="down_arrow"><a id="down_arrow" href="javascript: downLayer(' . $count . ');">' . html_print_image("images/down.png", true, array("alt" => "")) . '</a></td>
|
|
||||||
<td class="col3">
|
|
||||||
<a id="edit_layer" href="javascript: editLayer(' . $count . ');">' . html_print_image("images/config.png", true, array("alt" => "")) . '</a>
|
|
||||||
</td>
|
|
||||||
<td class="col4">
|
|
||||||
<input type="hidden" name="layer_values_' . $count . '" value=\'' . $layerDataJSON . '\' id="layer_values_' . $count . '" />
|
|
||||||
<a id="delete_row" href="javascript: deleteLayer(' . $count . ')">' . html_print_image("images/cross.png", true, array("alt" => "")) . '</a>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
<script type="text/javascript">
|
|
||||||
layerList.push(countLayer);
|
|
||||||
countLayer++;
|
|
||||||
updateArrowLayers();
|
|
||||||
</script>';
|
|
||||||
|
|
||||||
$count ++;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $returnVar;
|
|
||||||
}
|
|
||||||
|
|
||||||
function gis_calculate_distance($lat_start, $lon_start, $lat_end, $lon_end) {
|
function gis_calculate_distance($lat_start, $lon_start, $lat_end, $lon_end) {
|
||||||
//Use 3958.9=miles, 6371.0=Km;
|
//Use 3958.9=miles, 6371.0=Km;
|
||||||
$earthRadius = 6371;
|
$earthRadius = 6371;
|
||||||
|
@ -4658,3 +4658,20 @@ form ul.form_flex li ul li{
|
|||||||
.dialog-grayed .ui-dialog-buttonpane {
|
.dialog-grayed .ui-dialog-buttonpane {
|
||||||
background: #373737 !important;
|
background: #373737 !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a.down_arrow {
|
||||||
|
content: url("../../images/down.png");
|
||||||
|
max-width: 21px;
|
||||||
|
max-height: 21px;
|
||||||
|
}
|
||||||
|
|
||||||
|
a.up_arrow {
|
||||||
|
content: url("../../images/down.png");
|
||||||
|
transform: rotate(180deg);
|
||||||
|
max-width: 21px;
|
||||||
|
max-height: 21px;
|
||||||
|
}
|
||||||
|
|
||||||
|
tr:last-child > td > a.down_arrow, tr:first-child > td > a.up_arrow {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
@ -384,6 +384,123 @@ switch ($opt) {
|
|||||||
// Save table
|
// Save table
|
||||||
$returnJSON['content'] = html_print_table($table, true);
|
$returnJSON['content'] = html_print_table($table, true);
|
||||||
|
|
||||||
|
echo json_encode($returnJSON);
|
||||||
|
break;
|
||||||
|
case 'point_group_info':
|
||||||
|
$agent_id = (int) get_parameter('id');
|
||||||
|
$group_id = (int) get_parameter('id_parent');
|
||||||
|
$group = db_get_row_sql('SELECT * FROM tgrupo WHERE id_grupo = ' . $group_id);
|
||||||
|
$agent = db_get_row_sql('SELECT * FROM tagente WHERE id_agente = ' . $agent_id);
|
||||||
|
$agentDataGIS = gis_get_data_last_position_agent($agent['id_agente']);
|
||||||
|
|
||||||
|
$returnJSON = array();
|
||||||
|
$returnJSON['correct'] = 1;
|
||||||
|
$returnJSON['content'] = '';
|
||||||
|
|
||||||
|
$content = '';
|
||||||
|
|
||||||
|
$table = new StdClass();
|
||||||
|
$table->class = 'blank';
|
||||||
|
$table->style = array();
|
||||||
|
$table->style[0] = 'font-weight: bold';
|
||||||
|
$table->rowstyle = array();
|
||||||
|
$table->data = array();
|
||||||
|
|
||||||
|
// Group name
|
||||||
|
$row = array();
|
||||||
|
$row[] = __('Group');
|
||||||
|
$row[] = '<a style="font-weight: bolder;" href="?sec=estado&sec2=operation/agentes/estado_agente&group_id=' . $group_id . '">' . $group['nombre'] . '</a>';
|
||||||
|
$table->data[] = $row;
|
||||||
|
|
||||||
|
// Position
|
||||||
|
$row = array();
|
||||||
|
$row[] = __('Position (Lat, Long, Alt)');
|
||||||
|
|
||||||
|
//it's positioned in default position of map.
|
||||||
|
if ($agentDataGIS === false) {
|
||||||
|
$row[] = __("Default position of map.");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$row[] = '(' . $agentDataGIS['stored_latitude'] . ', ' . $agentDataGIS['stored_longitude'] . ', ' . $agentDataGIS['stored_altitude'] . ')';
|
||||||
|
}
|
||||||
|
$table->data[] = $row;
|
||||||
|
|
||||||
|
// Description
|
||||||
|
$group_description = $group['description'];
|
||||||
|
if ($group_description || $group_description != '') {
|
||||||
|
$row = array();
|
||||||
|
$row[] = __('Description');
|
||||||
|
$row[] = $group_description;
|
||||||
|
$table->data[] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Last contact
|
||||||
|
$row = array();
|
||||||
|
$row[] = __('Last contact');
|
||||||
|
if ($agent["ultimo_contacto"] == "01-01-1970 00:00:00") {
|
||||||
|
$row[] = __('Never');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$row[] = date_w_fixed_tz($agent["ultimo_contacto"]);
|
||||||
|
}
|
||||||
|
$table->data[] = $row;
|
||||||
|
|
||||||
|
// Last remote contact
|
||||||
|
$row = array();
|
||||||
|
$row[] = __('Remote');
|
||||||
|
if ($agent["ultimo_contacto_remoto"] == "01-01-1970 00:00:00") {
|
||||||
|
$row[] = __('Never');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$row[] = date_w_fixed_tz($agent["ultimo_contacto_remoto"]);
|
||||||
|
}
|
||||||
|
$table->data[] = $row;
|
||||||
|
|
||||||
|
// Critical && not validated events
|
||||||
|
$filter = array(
|
||||||
|
"id_grupo" => $group_id,
|
||||||
|
"criticity" => EVENT_CRIT_CRITICAL,
|
||||||
|
"estado" => array(EVENT_STATUS_NEW, EVENT_STATUS_INPROCESS)
|
||||||
|
);
|
||||||
|
$result = events_get_events($filter, "COUNT(*) as num");
|
||||||
|
|
||||||
|
if (!empty($result)) {
|
||||||
|
$number = (int) $result[0]["num"];
|
||||||
|
|
||||||
|
if ($number > 0) {
|
||||||
|
$row = array();
|
||||||
|
$row[] = __("Number of non-validated critical events");
|
||||||
|
$row[] = '<a href="?sec=estado&sec2=operation/events/events&status=3&severity=' . EVENT_CRIT_CRITICAL
|
||||||
|
. '&id_group=' . $group_id . '">' . $number . '</a>';
|
||||||
|
$table->data[] = $row;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Alerts fired
|
||||||
|
$alerts_fired = alerts_get_alerts($group_id, "", "fired", -1, $true);
|
||||||
|
if (!empty($alerts_fired)) {
|
||||||
|
$row = array();
|
||||||
|
$row[] = __("Alert(s) fired");
|
||||||
|
$alerts_detail = "";
|
||||||
|
foreach ($alerts_fired as $alert) {
|
||||||
|
$alerts_detail .= "<p>"
|
||||||
|
. $alert['agent_alias'] . " - "
|
||||||
|
. $alert['module_name'] . " - "
|
||||||
|
. $alert['template_name'] . " - "
|
||||||
|
. date($config["date_format"], $alert['last_fired'])
|
||||||
|
. "</p>";
|
||||||
|
}
|
||||||
|
$row[] = $alerts_detail;
|
||||||
|
$table->data[] = $row;
|
||||||
|
}
|
||||||
|
|
||||||
|
// To remove the grey background color of the classes datos and datos2
|
||||||
|
for ($i = 0; $i < count($table->data); $i++)
|
||||||
|
$table->rowstyle[] = 'background-color: inherit;';
|
||||||
|
|
||||||
|
// Save table
|
||||||
|
$returnJSON['content'] = html_print_table($table, true);
|
||||||
|
|
||||||
echo json_encode($returnJSON);
|
echo json_encode($returnJSON);
|
||||||
break;
|
break;
|
||||||
case 'get_map_connection_data':
|
case 'get_map_connection_data':
|
||||||
|
@ -148,7 +148,13 @@ if ($layers != false) {
|
|||||||
}
|
}
|
||||||
$agentNamesByLayer = gis_get_agents_layer($layer['id_tmap_layer']);
|
$agentNamesByLayer = gis_get_agents_layer($layer['id_tmap_layer']);
|
||||||
|
|
||||||
$agentNames = array_unique($agentNamesByGroup + $agentNamesByLayer);
|
$groupsByAgentId = gis_get_groups_layer_by_agent_id($layer['id_tmap_layer']);
|
||||||
|
$agentNamesOfGroupItems = array();
|
||||||
|
foreach ($groupsByAgentId as $agentId => $groupInfo) {
|
||||||
|
$agentNamesOfGroupItems[$agentId] = $groupInfo["agent_name"];
|
||||||
|
}
|
||||||
|
|
||||||
|
$agentNames = array_unique($agentNamesByGroup + $agentNamesByLayer + $agentNamesOfGroupItems);
|
||||||
|
|
||||||
foreach ($agentNames as $agentName) {
|
foreach ($agentNames as $agentName) {
|
||||||
$idAgent = agents_get_agent_id($agentName);
|
$idAgent = agents_get_agent_id($agentName);
|
||||||
@ -165,19 +171,33 @@ if ($layers != false) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$icon = gis_get_agent_icon_map($idAgent, true);
|
$status = agents_get_status($idAgent);
|
||||||
|
$icon = gis_get_agent_icon_map($idAgent, true, $status);
|
||||||
|
$icon = ui_get_full_url($icon);
|
||||||
$icon_size = getimagesize($icon);
|
$icon_size = getimagesize($icon);
|
||||||
$icon_width = $icon_size[0];
|
$icon_width = $icon_size[0];
|
||||||
$icon_height = $icon_size[1];
|
$icon_height = $icon_size[1];
|
||||||
$icon = ui_get_full_url($icon);
|
|
||||||
$status = agents_get_status($idAgent);
|
|
||||||
$parent = db_get_value('id_parent', 'tagente', 'id_agente', $idAgent);
|
|
||||||
|
|
||||||
gis_add_agent_point($layer['layer_name'],
|
// Is a group item
|
||||||
io_safe_output($agentName), $coords['stored_latitude'],
|
if (!empty($groupsByAgentId[$idAgent])) {
|
||||||
$coords['stored_longitude'], $icon, $icon_width,
|
$groupId = (int) $groupsByAgentId[$idAgent]["id"];
|
||||||
$icon_height, $idAgent, $status, 'point_agent_info',
|
$groupName = $groupsByAgentId[$idAgent]["name"];
|
||||||
$parent);
|
|
||||||
|
gis_add_agent_point($layer['layer_name'],
|
||||||
|
io_safe_output($groupName), $coords['stored_latitude'],
|
||||||
|
$coords['stored_longitude'], $icon, $icon_width,
|
||||||
|
$icon_height, $idAgent, $status, 'point_group_info',
|
||||||
|
$groupId);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$parent = db_get_value('id_parent', 'tagente', 'id_agente', $idAgent);
|
||||||
|
|
||||||
|
gis_add_agent_point($layer['layer_name'],
|
||||||
|
io_safe_output($agentName), $coords['stored_latitude'],
|
||||||
|
$coords['stored_longitude'], $icon, $icon_width,
|
||||||
|
$icon_height, $idAgent, $status, 'point_agent_info',
|
||||||
|
$parent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gis_add_parent_lines();
|
gis_add_parent_lines();
|
||||||
|
@ -184,7 +184,13 @@ if ($layers != false) {
|
|||||||
}
|
}
|
||||||
$agentNamesByLayer = gis_get_agents_layer($layer['id_tmap_layer']);
|
$agentNamesByLayer = gis_get_agents_layer($layer['id_tmap_layer']);
|
||||||
|
|
||||||
$agentNames = array_unique($agentNamesByGroup + $agentNamesByLayer);
|
$groupsByAgentId = gis_get_groups_layer_by_agent_id($layer['id_tmap_layer']);
|
||||||
|
$agentNamesOfGroupItems = array();
|
||||||
|
foreach ($groupsByAgentId as $agentId => $groupInfo) {
|
||||||
|
$agentNamesOfGroupItems[$agentId] = $groupInfo["agent_name"];
|
||||||
|
}
|
||||||
|
|
||||||
|
$agentNames = array_unique($agentNamesByGroup + $agentNamesByLayer + $agentNamesOfGroupItems);
|
||||||
|
|
||||||
foreach ($agentNames as $key => $agentName) {
|
foreach ($agentNames as $key => $agentName) {
|
||||||
$idAgent = $key;
|
$idAgent = $key;
|
||||||
@ -200,19 +206,33 @@ if ($layers != false) {
|
|||||||
gis_add_path($layer['layer_name'], $idAgent, $lastPosition);
|
gis_add_path($layer['layer_name'], $idAgent, $lastPosition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$icon = gis_get_agent_icon_map($idAgent, true);
|
$status = agents_get_status($idAgent, true);
|
||||||
|
$icon = gis_get_agent_icon_map($idAgent, true, $status);
|
||||||
$icon_size = getimagesize($icon);
|
$icon_size = getimagesize($icon);
|
||||||
$icon_width = $icon_size[0];
|
$icon_width = $icon_size[0];
|
||||||
$icon_height = $icon_size[1];
|
$icon_height = $icon_size[1];
|
||||||
$status = agents_get_status($idAgent,true);
|
|
||||||
$parent = db_get_value('id_parent', 'tagente', 'id_agente', $idAgent);
|
|
||||||
|
|
||||||
gis_add_agent_point($layer['layer_name'],
|
// Is a group item
|
||||||
io_safe_output($agentName), $coords['stored_latitude'],
|
if (!empty($groupsByAgentId[$idAgent])) {
|
||||||
$coords['stored_longitude'], $icon, $icon_width,
|
$groupId = (int) $groupsByAgentId[$idAgent]["id"];
|
||||||
$icon_height, $idAgent, $status, 'point_agent_info',
|
$groupName = $groupsByAgentId[$idAgent]["name"];
|
||||||
$parent);
|
|
||||||
|
gis_add_agent_point($layer['layer_name'],
|
||||||
|
io_safe_output($groupName), $coords['stored_latitude'],
|
||||||
|
$coords['stored_longitude'], $icon, $icon_width,
|
||||||
|
$icon_height, $idAgent, $status, 'point_group_info',
|
||||||
|
$groupId);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$parent = db_get_value('id_parent', 'tagente', 'id_agente', $idAgent);
|
||||||
|
|
||||||
|
gis_add_agent_point($layer['layer_name'],
|
||||||
|
io_safe_output($agentName), $coords['stored_latitude'],
|
||||||
|
$coords['stored_longitude'], $icon, $icon_width,
|
||||||
|
$icon_height, $idAgent, $status, 'point_agent_info',
|
||||||
|
$parent);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
gis_add_parent_lines();
|
gis_add_parent_lines();
|
||||||
|
@ -1669,6 +1669,25 @@ CREATE TABLE IF NOT EXISTS `tgis_map_layer_has_tagente` (
|
|||||||
ENGINE = InnoDB
|
ENGINE = InnoDB
|
||||||
COMMENT = 'Table to define wich agents are shown in a layer';
|
COMMENT = 'Table to define wich agents are shown in a layer';
|
||||||
|
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
-- Table `tgis_map_layer_groups`
|
||||||
|
-- -----------------------------------------------------
|
||||||
|
CREATE TABLE IF NOT EXISTS `tgis_map_layer_groups` (
|
||||||
|
`layer_id` INT NOT NULL,
|
||||||
|
`group_id` MEDIUMINT(4) UNSIGNED NOT NULL,
|
||||||
|
`agent_id` INT(10) UNSIGNED NOT NULL COMMENT 'Used to link the position to the group',
|
||||||
|
PRIMARY KEY (`layer_id`, `group_id`),
|
||||||
|
FOREIGN KEY (`layer_id`)
|
||||||
|
REFERENCES `tgis_map_layer` (`id_tmap_layer`)
|
||||||
|
ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (`group_id`)
|
||||||
|
REFERENCES `tgrupo` (`id_grupo`)
|
||||||
|
ON DELETE CASCADE,
|
||||||
|
FOREIGN KEY (`agent_id`)
|
||||||
|
REFERENCES `tagente` (`id_agente`)
|
||||||
|
ON DELETE CASCADE
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
-- Table `tgroup_stat`
|
-- Table `tgroup_stat`
|
||||||
-- ----------------------------------------------------------------------
|
-- ----------------------------------------------------------------------
|
||||||
|
Loading…
x
Reference in New Issue
Block a user