2010-01-19 16:49:34 +01:00
< ? php
// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2009 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 General Public License
// as published by the Free Software Foundation for 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.
// Load global vars
require_once ( " include/config.php " );
check_login ();
require_once ( 'include/functions_gis.php' );
2010-01-27 20:52:53 +01:00
require_once ( 'include/functions_ui.php' );
2010-01-19 16:49:34 +01:00
$opt = get_parameter ( 'opt' );
switch ( $opt ) {
2010-02-10 19:27:24 +01:00
case 'get_data_conexion' :
$returnJSON [ 'correct' ] = 1 ;
$idConection = get_parameter ( 'id_conection' );
$row = get_db_row_filter ( 'tgis_map_connection' , array ( 'id_tmap_connection' => $idConection ));
$returnJSON [ 'content' ] = $row ;
echo json_encode ( $returnJSON );
break ;
2010-02-04 11:34:30 +01:00
case 'get_new_positions' :
$id_features = get_parameter ( 'id_features' , '' );
$last_time_of_data = get_parameter ( 'last_time_of_data' );
2010-02-17 18:27:25 +01:00
$layerId = get_parameter ( 'layer_id' );
2010-02-23 13:12:41 +01:00
$agentView = get_parameter ( 'agent_view' );
2010-02-04 11:34:30 +01:00
$returnJSON = array ();
$returnJSON [ 'correct' ] = 1 ;
2010-02-23 13:12:41 +01:00
if ( $agentView == 0 ) {
2010-04-27 17:42:49 +02:00
$flagGroupAll = get_db_all_rows_sql ( 'SELECT tgrupo_id_grupo FROM tgis_map_layer WHERE id_tmap_layer = ' . $layerId . ' AND tgrupo_id_grupo = 0;' ); //group 0 = all groups
2010-02-22 17:13:12 +01:00
2010-02-23 13:12:41 +01:00
$defaultCoords = get_db_row_sql ( ' SELECT default_longitude , default_latitude
FROM tgis_map
WHERE id_tgis_map IN ( SELECT tgis_map_id_tgis_map FROM tgis_map_layer WHERE id_tmap_layer = ' . $layerId . ' ) ' );
2010-02-22 17:13:12 +01:00
2010-02-23 13:12:41 +01:00
if ( $flagGroupAll === false ) {
$idAgentsWithGISTemp = get_db_all_rows_sql ( ' SELECT id_agente FROM tagente WHERE id_grupo IN
( SELECT tgrupo_id_grupo FROM tgis_map_layer WHERE id_tmap_layer = ' . $layerId . ' )
OR id_agente IN
2010-02-19 13:26:54 +01:00
( SELECT tagente_id_agente FROM tgis_map_layer_has_tagente WHERE tgis_map_layer_id_tmap_layer = ' . $layerId . ' ); ' );
2010-02-23 13:12:41 +01:00
}
else {
//All groups, all agents
$idAgentsWithGISTemp = get_db_all_rows_sql ( ' SELECT tagente_id_agente AS id_agente
FROM tgis_data_status
WHERE tagente_id_agente ' );
}
foreach ( $idAgentsWithGISTemp as $idAgent ) {
$idAgentsWithGIS [] = $idAgent [ 'id_agente' ];
}
2010-02-17 18:27:25 +01:00
}
2010-02-23 13:12:41 +01:00
else {
2010-02-25 13:46:47 +01:00
//Extract the agent GIS status for one agent.
2010-02-25 18:27:55 +01:00
$idAgentsWithGIS [] = $id_features ;
2010-02-22 17:13:12 +01:00
}
2010-03-02 11:19:09 +01:00
$agentsGISStatus = get_db_all_rows_sql ( ' SELECT t1 . nombre , id_parent , t1 . id_agente AS tagente_id_agente ,
2010-02-25 18:27:55 +01:00
IFNULL ( t2 . stored_longitude , ' . $defaultCoords[' default_longitude '] . ' ) AS stored_longitude ,
IFNULL ( t2 . stored_latitude , ' . $defaultCoords[' default_latitude '] . ' ) AS stored_latitude
FROM tagente AS t1
LEFT JOIN tgis_data_status AS t2 ON t1 . id_agente = t2 . tagente_id_agente
WHERE id_agente IN ( ' . implode(' , ', $idAgentsWithGIS) . ' ) ' );
2010-02-19 13:26:54 +01:00
if ( $agentsGISStatus === false ) {
$agentsGISStatus = array ();
2010-02-04 11:34:30 +01:00
}
2010-02-19 13:26:54 +01:00
$agents = null ;
foreach ( $agentsGISStatus as $row ) {
2010-02-25 18:27:55 +01:00
$status = get_agent_status ( $row [ 'tagente_id_agente' ]);
2010-02-19 13:26:54 +01:00
$agents [ $row [ 'tagente_id_agente' ]] = array (
2010-02-25 18:27:55 +01:00
'icon_path' => get_agent_icon_map ( $row [ 'tagente_id_agente' ], true , $status ),
'name' => $row [ 'nombre' ],
'status' => $status ,
2010-02-19 13:26:54 +01:00
'stored_longitude' => $row [ 'stored_longitude' ],
2010-02-25 18:27:55 +01:00
'stored_latitude' => $row [ 'stored_latitude' ],
'id_parent' => $row [ 'id_parent' ]
2010-02-19 13:26:54 +01:00
);
2010-02-17 18:27:25 +01:00
}
2010-02-19 13:26:54 +01:00
$returnJSON [ 'content' ] = json_encode ( $agents );
2010-02-04 11:34:30 +01:00
echo json_encode ( $returnJSON );
break ;
2010-01-27 20:52:53 +01:00
case 'point_path_info' :
2010-01-19 16:49:34 +01:00
$id = get_parameter ( 'id' );
2010-02-23 13:12:41 +01:00
$row = get_db_row_sql ( 'SELECT * FROM tgis_data_history WHERE id_tgis_data = ' . $id );
2010-01-19 16:49:34 +01:00
$returnJSON = array ();
$returnJSON [ 'correct' ] = 1 ;
2010-01-27 20:52:53 +01:00
$returnJSON [ 'content' ] = __ ( 'Agent' ) . ': <a style="font-weight: bolder;" href="?sec=estado&sec2=operation/agentes/ver_agente&id_agente=' . $row [ 'tagente_id_agente' ] . '">' . get_agent_name ( $row [ 'tagente_id_agente' ]) . '</a><br />' ;
$returnJSON [ 'content' ] .= __ ( 'Position (Long, Lat, Alt)' ) . ': (' . $row [ 'longitude' ] . ', ' . $row [ 'latitude' ] . ', ' . $row [ 'altitude' ] . ') <br />' ;
2010-01-19 16:49:34 +01:00
$returnJSON [ 'content' ] .= __ ( 'Start contact' ) . ': ' . $row [ 'start_timestamp' ] . '<br />' ;
$returnJSON [ 'content' ] .= __ ( 'Last contact' ) . ': ' . $row [ 'end_timestamp' ] . '<br />' ;
2010-01-27 20:52:53 +01:00
$returnJSON [ 'content' ] .= __ ( 'Num reports' ) . ': ' . $row [ 'number_of_packages' ] . '<br />' ;
2010-01-19 16:49:34 +01:00
if ( $row [ 'manual_placemen' ]) $returnJSON [ 'content' ] .= '<br />' . __ ( 'Manual placement' ) . '<br />' ;
2010-01-27 20:52:53 +01:00
echo json_encode ( $returnJSON );
break ;
case 'point_agent_info' :
$id = get_parameter ( 'id' );
$row = get_db_row_sql ( 'SELECT * FROM tagente WHERE id_agente = ' . $id );
2010-02-23 13:12:41 +01:00
$agentDataGIS = getDataLastPositionAgent ( $row [ 'id_agente' ]);
2010-01-27 20:52:53 +01:00
$returnJSON = array ();
$returnJSON [ 'correct' ] = 1 ;
$returnJSON [ 'content' ] = __ ( 'Agent' ) . ': <a style="font-weight: bolder;" href="?sec=estado&sec2=operation/agentes/ver_agente&id_agente=' . $row [ 'id_agente' ] . '">' . $row [ 'nombre' ] . '</a><br />' ;
2010-03-05 12:16:20 +01:00
//it's positioned in default position of map.
if ( $agentDataGIS === false ) {
$returnJSON [ 'content' ] .= __ ( 'Position (Long, Lat, Alt)' ) . ': ' . __ ( " Default position of map. " ) . '<br />' ;
}
else
{
$returnJSON [ 'content' ] .= __ ( 'Position (Long, Lat, Alt)' ) . ': (' . $agentDataGIS [ 'stored_longitude' ] . ', ' . $agentDataGIS [ 'stored_latitude' ] . ', ' . $agentDataGIS [ 'stored_altitude' ] . ') <br />' ;
}
2010-01-27 20:52:53 +01:00
$agent_ip_address = get_agent_address ( $id_agente );
if ( $agent_ip_address || $agent_ip_address != '' ) {
$returnJSON [ 'content' ] .= __ ( 'IP Address' ) . ': ' . get_agent_address ( $id_agente ) . '<br />' ;
}
$returnJSON [ 'content' ] .= __ ( 'OS' ) . ': ' . print_os_icon ( $row [ 'id_os' ], true , true );
$osversion_offset = strlen ( $row [ " os_version " ]);
if ( $osversion_offset > 15 ) {
$osversion_offset = $osversion_offset - 15 ;
}
else {
$osversion_offset = 0 ;
}
$returnJSON [ 'content' ] .= ' ( <i><span title="' . $row [ " os_version " ] . '">' . substr ( $row [ " os_version " ], $osversion_offset , 15 ) . '</span></i>)<br />' ;
$agent_description = $row [ 'comentarios' ];
if ( $agent_description || $agent_description != '' ) {
$returnJSON [ 'content' ] .= __ ( 'Description' ) . ': ' . $agent_description . '<br />' ;
}
$returnJSON [ 'content' ] .= __ ( 'Group' ) . ': ' . print_group_icon ( $row [ " id_grupo " ], true ) . ' (<strong>' . get_group_name ( $row [ " id_grupo " ]) . '</strong>)<br />' ;
$returnJSON [ 'content' ] .= __ ( 'Agent Version' ) . ': ' . $row [ " agent_version " ] . '<br />' ;
2010-03-05 12:16:20 +01:00
$returnJSON [ 'content' ] .= __ ( 'Last contact' ) . " : " ;
2010-01-27 20:52:53 +01:00
if ( $row [ " ultimo_contacto_remoto " ] == " 0000-00-00 00:00:00 " ) {
2010-03-05 12:16:20 +01:00
$returnJSON [ 'content' ] .= __ ( 'Never' ) . " <br /> " ;
2010-01-27 20:52:53 +01:00
}
2010-03-05 12:16:20 +01:00
else {
$returnJSON [ 'content' ] .= $row [ " ultimo_contacto_remoto " ] . " <br /> " ;
}
$returnJSON [ 'content' ] .= __ ( 'Remote' ) . ': ' . $row [ " ultimo_contacto " ];
2010-01-27 20:52:53 +01:00
2010-01-19 16:49:34 +01:00
echo json_encode ( $returnJSON );
2010-02-24 12:49:03 +01:00
break ;
case 'get_map_connection_data' :
$idConnection = get_parameter ( 'id_connection' );
$returnJSON = array ();
$returnJSON [ 'correct' ] = 1 ;
$returnJSON [ 'content' ] = get_db_row_sql ( 'SELECT * FROM tgis_map_connection WHERE id_tmap_connection = ' . $idConnection );
echo json_encode ( $returnJSON );
2010-01-19 16:49:34 +01:00
break ;
}
2010-04-27 19:43:32 +02:00
?>