'.html_print_image('images/full_screen.png', true, ['title' => __('Full screen mode')]).'';
} else {
$buttons[]['text'] = ''.html_print_image('images/normalscreen.png', true, ['title' => __('Back to normal mode')]).'';
}
if ($has_management_acl) {
$hash = md5($config['dbpass'].$idMap.$config['id_user']);
$buttons['public_link']['text'] = ''.html_print_image('images/camera_mc.png', true, ['title' => __('Show link to public Visual Console')]).'';
}
$times = [
5 => __('5 seconds'),
10 => __('10 seconds'),
30 => __('30 seconds'),
SECONDS_1MINUTE => __('1 minute'),
SECONDS_2MINUTES => __('2 minutes'),
SECONDS_5MINUTES => __('5 minutes'),
SECONDS_10MINUTES => __('10 minutes'),
SECONDS_1HOUR => __('1 hour'),
SECONDS_2HOUR => __('2 hours'),
];
$buttons[]['text'] = "
".__('Refresh').': '.html_print_select($times, 'refresh_time', 60, 'changeRefreshTime(this.value);', '', 0, true, false, false).'
';
$status = [
'all' => __('None'),
'bad' => __('Critical'),
'warning' => __('Warning'),
'ok' => __('Ok'),
'default' => __('Other'),
];
$buttons[]['text'] = "".__('Filter by status').': '.html_print_select($status, 'show_status', 'all', 'changeShowStatus(this.value);', '', 0, true, false, false).'
';
if ($has_management_acl) {
$buttons['setup']['text'] = ''.html_print_image('images/setup.png', true, ['title' => __('Setup')]).'';
$buttons['setup']['godmode'] = 1;
}
ui_print_page_header(
__('Map').' » '.__('Map').' '.$map['map_name'],
'images/op_gis.png',
false,
'',
false,
$buttons
);
$map_inline_style = 'width: 100%; min-height:500px; height: calc(100vh - 80px);';
$map_inline_style .= $config['pure'] ? 'position:absolute; top: 80px; left: 0px;' : 'border: 1px solid black;';
echo '';
gis_print_map(
'map',
$map['zoom_level'],
$map['initial_latitude'],
$map['initial_longitude'],
$baselayers,
$controls
);
if ($layers != false) {
foreach ($layers as $layer) {
gis_make_layer(
$layer['layer_name'],
$layer['view_layer'],
null,
$layer['id_tmap_layer']
);
// calling agents_get_group_agents with none to obtain the names in the same case as they are in the DB.
$agentNamesByGroup = [];
if ($layer['tgrupo_id_grupo'] >= 0) {
$agentNamesByGroup = agents_get_group_agents(
$layer['tgrupo_id_grupo'],
false,
'none',
true,
true,
false
);
}
$agentNamesByLayer = gis_get_agents_layer($layer['id_tmap_layer']);
$groupsByAgentId = gis_get_groups_layer_by_agent_id($layer['id_tmap_layer']);
$agentNamesOfGroupItems = [];
foreach ($groupsByAgentId as $agentId => $groupInfo) {
$agentNamesOfGroupItems[$agentId] = $groupInfo['agent_name'];
}
$agentNames = array_unique($agentNamesByGroup + $agentNamesByLayer + $agentNamesOfGroupItems);
foreach ($agentNames as $key => $agentName) {
$idAgent = $key;
$coords = gis_get_data_last_position_agent($idAgent);
if ($coords === false) {
$coords['stored_latitude'] = $map['default_latitude'];
$coords['stored_longitude'] = $map['default_longitude'];
} else {
if ($show_history == 'y') {
$lastPosition = [
'longitude' => $coords['stored_longitude'],
'latitude' => $coords['stored_latitude'],
];
gis_add_path($layer['layer_name'], $idAgent, $lastPosition);
}
}
$status = agents_get_status($idAgent, true);
$icon = gis_get_agent_icon_map($idAgent, true, $status);
$icon_size = getimagesize($icon);
$icon_width = $icon_size[0];
$icon_height = $icon_size[1];
// Is a group item
if (!empty($groupsByAgentId[$idAgent])) {
$groupId = (int) $groupsByAgentId[$idAgent]['id'];
$groupName = $groupsByAgentId[$idAgent]['name'];
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();
switch ($config['dbtype']) {
case 'mysql':
$timestampLastOperation = db_get_value_sql('SELECT UNIX_TIMESTAMP()');
break;
case 'postgresql':
$timestampLastOperation = db_get_value_sql(
"SELECT ceil(date_part('epoch', CURRENT_TIMESTAMP))"
);
break;
case 'oracle':
$timestampLastOperation = db_get_value_sql(
"SELECT ceil((sysdate - to_date('19700101000000','YYYYMMDDHH24MISS')) * (".SECONDS_1DAY.')) FROM dual'
);
break;
}
gis_activate_select_control();
gis_activate_ajax_refresh($layers, $timestampLastOperation);
}
?>