Merge branch 'develop' into '253-bit-de-licencia-ux-para-pandora-7'
# Conflicts: # pandora_console/extras/pandoradb_migrate_6.0_to_6.1.mysql.sql # pandora_console/extras/pandoradb_migrate_6.0_to_6.1.oracle.sql
|
@ -1,5 +1,5 @@
|
||||||
package: pandorafms-agent-unix
|
package: pandorafms-agent-unix
|
||||||
Version: 7.0dev-170208
|
Version: 7.0dev-170215
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
pandora_version="7.0dev-170208"
|
pandora_version="7.0dev-170215"
|
||||||
|
|
||||||
echo "Test if you has the tools for to make the packages."
|
echo "Test if you has the tools for to make the packages."
|
||||||
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null
|
||||||
|
|
|
@ -41,7 +41,7 @@ my $Sem = undef;
|
||||||
my $ThreadSem = undef;
|
my $ThreadSem = undef;
|
||||||
|
|
||||||
use constant AGENT_VERSION => '7.0dev';
|
use constant AGENT_VERSION => '7.0dev';
|
||||||
use constant AGENT_BUILD => '170208';
|
use constant AGENT_BUILD => '170215';
|
||||||
|
|
||||||
# Agent log default file size maximum and instances
|
# Agent log default file size maximum and instances
|
||||||
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
use constant DEFAULT_MAX_LOG_SIZE => 600000;
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
%define name pandorafms_agent_unix
|
%define name pandorafms_agent_unix
|
||||||
%define version 7.0dev
|
%define version 7.0dev
|
||||||
%define release 170208
|
%define release 170215
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
%define name pandorafms_agent_unix
|
%define name pandorafms_agent_unix
|
||||||
%define version 7.0dev
|
%define version 7.0dev
|
||||||
%define release 170208
|
%define release 170215
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
PI_VERSION="7.0dev"
|
PI_VERSION="7.0dev"
|
||||||
PI_BUILD="170208"
|
PI_BUILD="170215"
|
||||||
OS_NAME=`uname -s`
|
OS_NAME=`uname -s`
|
||||||
|
|
||||||
FORCE=0
|
FORCE=0
|
||||||
|
|
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
||||||
{}
|
{}
|
||||||
|
|
||||||
Version
|
Version
|
||||||
{170208}
|
{170215}
|
||||||
|
|
||||||
ViewReadme
|
ViewReadme
|
||||||
{Yes}
|
{Yes}
|
||||||
|
|
|
@ -30,7 +30,7 @@ using namespace Pandora;
|
||||||
using namespace Pandora_Strutils;
|
using namespace Pandora_Strutils;
|
||||||
|
|
||||||
#define PATH_SIZE _MAX_PATH+1
|
#define PATH_SIZE _MAX_PATH+1
|
||||||
#define PANDORA_VERSION ("7.0dev(Build 170208)")
|
#define PANDORA_VERSION ("7.0dev(Build 170215)")
|
||||||
|
|
||||||
string pandora_path;
|
string pandora_path;
|
||||||
string pandora_dir;
|
string pandora_dir;
|
||||||
|
|
|
@ -11,7 +11,7 @@ BEGIN
|
||||||
VALUE "LegalCopyright", "Artica ST"
|
VALUE "LegalCopyright", "Artica ST"
|
||||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||||
VALUE "ProductVersion", "(7.0dev(Build 170208))"
|
VALUE "ProductVersion", "(7.0dev(Build 170215))"
|
||||||
VALUE "FileVersion", "1.0.0.0"
|
VALUE "FileVersion", "1.0.0.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
package: pandorafms-console
|
package: pandorafms-console
|
||||||
Version: 7.0dev-170208
|
Version: 7.0dev-170215
|
||||||
Architecture: all
|
Architecture: all
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Section: admin
|
Section: admin
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
|
|
||||||
pandora_version="7.0dev-170208"
|
pandora_version="7.0dev-170215"
|
||||||
|
|
||||||
package_pear=0
|
package_pear=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
|
|
@ -69,19 +69,33 @@ function mainAgentsModules() {
|
||||||
$offset = (int)get_parameter('offset', 0);
|
$offset = (int)get_parameter('offset', 0);
|
||||||
$hor_offset = (int)get_parameter('hor_offset', 0);
|
$hor_offset = (int)get_parameter('hor_offset', 0);
|
||||||
$block = $config['block_size'];
|
$block = $config['block_size'];
|
||||||
|
$agents_id = (array)get_parameter('id_agents2', -1);
|
||||||
|
$selection_a_m = (int)get_parameter('selection_agent_module');
|
||||||
|
$modules_selected = (array)get_parameter('module', 0);
|
||||||
|
$update_item = (string)get_parameter('edit_item','');
|
||||||
|
$save_serialize = (int)get_parameter('save_serialize', 0);
|
||||||
|
|
||||||
$groups = users_get_groups ();
|
if($save_serialize && $update_item == ''){
|
||||||
|
$unserialize_modules_selected = unserialize_in_temp($config['id_user']."_agent_module", true, 1);
|
||||||
|
$unserialize_agents_id = unserialize_in_temp($config['id_user']."_agents", true, 1);
|
||||||
|
if($unserialize_modules_selected){
|
||||||
|
$modules_selected = $unserialize_modules_selected;
|
||||||
|
}
|
||||||
|
if($unserialize_agents_id){
|
||||||
|
$agents_id = $unserialize_agents_id;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
unserialize_in_temp($config['id_user']."_agent_module", true, 1);
|
||||||
|
unserialize_in_temp($config['id_user']."_agents", true, 1);
|
||||||
|
}
|
||||||
|
|
||||||
$filter_module_groups = '<form method="post" action="' . ui_get_url_refresh (array ('offset' => $offset, 'hor_offset' => $offset,'group_id' => $group_id, 'modulegroup' => $modulegroup)).'">';
|
if($modules_selected[0]){
|
||||||
$filter_module_groups .= '<b>'.__('Module group').'</b>';
|
serialize_in_temp($modules_selected, $config['id_user']."_agent_module", 1);
|
||||||
$filter_module_groups .= html_print_select_from_sql ("SELECT * FROM tmodule_group ORDER BY name",
|
}
|
||||||
'modulegroup', $modulegroup, 'this.form.submit()',__('All'), 0, true, false, true, false, 'width: auto;');
|
if($agents_id[0] != -1 ){
|
||||||
$filter_module_groups .= '</form>';
|
serialize_in_temp($agents_id, $config['id_user']."_agents", 1);
|
||||||
|
}
|
||||||
$filter_groups = '<form method="post" action="' . ui_get_url_refresh (array ('offset' => $offset, 'hor_offset' => $offset,'group_id' => $group_id, 'modulegroup' => $modulegroup)).'">';
|
|
||||||
$filter_groups .= '<b>'.__('Group').'</b>';
|
|
||||||
$filter_groups .= html_print_select_groups(false, "AR", true, 'group_id', $group_id, 'this.form.submit()', '', '', true, false, true, '', false , 'width: auto;');
|
|
||||||
$filter_groups .= '</form>';
|
|
||||||
|
|
||||||
$comborefr = '<form method="post" action="' . ui_get_url_refresh (array ('offset' => $offset, 'hor_offset' => $offset,'group_id' => $group_id, 'modulegroup' => $modulegroup)).'">';
|
$comborefr = '<form method="post" action="' . ui_get_url_refresh (array ('offset' => $offset, 'hor_offset' => $offset,'group_id' => $group_id, 'modulegroup' => $modulegroup)).'">';
|
||||||
$comborefr .= '<b>'.__('Refresh').'</b>';
|
$comborefr .= '<b>'.__('Refresh').'</b>';
|
||||||
|
@ -108,6 +122,49 @@ function mainAgentsModules() {
|
||||||
$config['refr'] = $refr;
|
$config['refr'] = $refr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$groups = users_get_groups ();
|
||||||
|
|
||||||
|
//groups
|
||||||
|
$filter_groups_label = '<b>'.__('Group').'</b>';
|
||||||
|
$filter_groups = html_print_select_groups(false, "AR", true, 'group_id', $group_id, '', '', '', true, false, true, '', false , 'width: auto;');
|
||||||
|
|
||||||
|
//groups module
|
||||||
|
$filter_module_groups_label = '<b>'.__('Module group').'</b>';
|
||||||
|
$filter_module_groups = html_print_select_from_sql ("SELECT * FROM tmodule_group ORDER BY name",
|
||||||
|
'modulegroup', $modulegroup, '',__('All'), 0, true, false, true, false, 'width: auto;');
|
||||||
|
|
||||||
|
$agents_select = array();
|
||||||
|
if (is_array($id_agents) || is_object($id_agents)){
|
||||||
|
foreach ($id_agents as $id) {
|
||||||
|
foreach ($agents as $key => $a) {
|
||||||
|
if ($key == (int)$id) {
|
||||||
|
$agents_select[$key] = $key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//agent
|
||||||
|
$agents = agents_get_group_agents($group_id);
|
||||||
|
if ((empty($agents)) || $agents == -1) $agents = array();
|
||||||
|
$filter_agents_label = '<b>'.__('Agents').'</b>';
|
||||||
|
$filter_agents = html_print_select($agents, 'id_agents2[]', $agents_id, '', '', 0, true, true, true, '', false, "min-width: 180px");
|
||||||
|
|
||||||
|
//type show
|
||||||
|
$selection = array(0 => __('Show common modules'),
|
||||||
|
1=> __('Show all modules'));
|
||||||
|
$filter_type_show_label = '<b>'.__('Show common modules').'</b>';
|
||||||
|
$filter_type_show = html_print_select($selection, 'selection_agent_module', $selection_a_m, '', "", 0, true, false, true, '', false, "min-width: 180px");
|
||||||
|
|
||||||
|
//modules
|
||||||
|
$all_modules = db_get_all_rows_sql("SELECT DISTINCT nombre, id_agente_modulo FROM tagente_modulo WHERE id_agente IN (" . implode(',', array_keys($agents)) . ")");
|
||||||
|
|
||||||
|
$filter_modules_label = '<b>'.__('Module').'</b>';
|
||||||
|
$filter_modules = html_print_select($all_modules, 'module[]', $modules_selected, '', __('None'), 0, true, true, true, '', false, "min-width: 180px");
|
||||||
|
|
||||||
|
//update
|
||||||
|
$filter_update = html_print_submit_button(__('Update item'), 'edit_item', false, 'class="sub upd"', true);
|
||||||
|
|
||||||
$onheader = array('updated_time' => $updated_time, 'fullscreen' => $fullscreen,
|
$onheader = array('updated_time' => $updated_time, 'fullscreen' => $fullscreen,
|
||||||
'combo_module_groups' => $filter_module_groups,
|
'combo_module_groups' => $filter_module_groups,
|
||||||
'combo_groups' => $filter_groups);
|
'combo_groups' => $filter_groups);
|
||||||
|
@ -121,37 +178,76 @@ function mainAgentsModules() {
|
||||||
|
|
||||||
// Old style table, we need a lot of special formatting,don't use table function
|
// Old style table, we need a lot of special formatting,don't use table function
|
||||||
// Prepare old-style table
|
// Prepare old-style table
|
||||||
echo '<table class="databox filters" cellpadding="0" cellspacing="0" border="0" style="width:100%;">';
|
echo '<table style="width:100%;">';
|
||||||
echo "<tr>";
|
echo "<tr>";
|
||||||
echo "<td>" . $filter_module_groups . "</td>";
|
if ($config['pure'] == 1){
|
||||||
echo "<td>" . $filter_groups . "</td>";
|
echo "<td>" . $comborefr . "</td>";
|
||||||
if ($config['pure'] == 1)
|
echo "<td>" . $fullscreen['text'] . "</td>";
|
||||||
echo "<td>" . $comborefr . "</td>";
|
}
|
||||||
echo "<td> <strong>" . __("Full screen") . "</strong>" . $fullscreen['text'] . "</td>";
|
else{
|
||||||
|
echo "<td> <span style='float: right;'>" . $fullscreen['text'] . "</span> </td>";
|
||||||
|
}
|
||||||
echo "</tr>";
|
echo "</tr>";
|
||||||
echo "</table>";
|
echo "</table>";
|
||||||
|
|
||||||
$agents = '';
|
if($config['pure'] != 1){
|
||||||
$agents = agents_get_group_agents($group_id,array('disabled' => 0));
|
echo '<form method="post" action="' . ui_get_url_refresh (array ('offset' => $offset, 'hor_offset' => $offset,'group_id' => $group_id, 'modulegroup' => $modulegroup)).'">';
|
||||||
$agents = array_keys($agents);
|
echo '<table class="databox filters" cellpadding="0" cellspacing="0" border="0" style="width:100%;">';
|
||||||
|
echo "<tr>";
|
||||||
$filter_module_group = array('disabled' => 0);
|
echo "<td>" . $filter_groups_label . "</td>";
|
||||||
|
echo "<td>" . $filter_groups . "</td>";
|
||||||
if ($modulegroup > 0) {
|
echo "<td></td>";
|
||||||
$filter_module_group['id_module_group'] = $modulegroup;
|
echo "<td></td>";
|
||||||
|
echo "<td>" . $filter_module_groups_label . "</td>";
|
||||||
|
echo "<td>" . $filter_module_groups . "</td>";
|
||||||
|
echo "</tr>";
|
||||||
|
echo "<tr>";
|
||||||
|
echo "<td>" . $filter_agents_label . "</td>";
|
||||||
|
echo "<td>" . $filter_agents . "</td>";
|
||||||
|
echo "<td>" . $filter_type_show_label . "</td>";
|
||||||
|
echo "<td>" . $filter_type_show . "</td>";
|
||||||
|
echo "<td>" . $filter_modules_label . "</td>";
|
||||||
|
echo "<td>" . $filter_modules . "</td>";
|
||||||
|
echo "</tr>";
|
||||||
|
echo "<tr>";
|
||||||
|
echo "<td colspan=6 ><span style='float: right; padding-right: 20px;'>" . $filter_update . "</sapn></td>";
|
||||||
|
echo "</tr>";
|
||||||
|
echo "</table>";
|
||||||
|
echo '</form>';
|
||||||
}
|
}
|
||||||
$count = 0;
|
|
||||||
foreach ($agents as $agent) {
|
if($agents_id[0] != -1){
|
||||||
$module = agents_get_modules($agent, false,
|
$agents = $agents_id;
|
||||||
$filter_module_group, true, false);
|
$all_modules = array();
|
||||||
if ($module == false) {
|
$total_pagination = count($agents);
|
||||||
unset($agents[$count]);
|
foreach ($modules_selected as $key => $value) {
|
||||||
|
$all_modules[$value] = io_safe_output(modules_get_agentmodule_name($value));
|
||||||
}
|
}
|
||||||
$count++;
|
|
||||||
}
|
}
|
||||||
$total_pagination = count($agents);
|
else {
|
||||||
$all_modules = agents_get_modules($agents, false,
|
$agents = '';
|
||||||
$filter_module_group, true, false);
|
$agents = agents_get_group_agents($group_id,array('disabled' => 0));
|
||||||
|
$agents = array_keys($agents);
|
||||||
|
$filter_module_group = array('disabled' => 0);
|
||||||
|
|
||||||
|
if ($modulegroup > 0) {
|
||||||
|
$filter_module_group['id_module_group'] = $modulegroup;
|
||||||
|
}
|
||||||
|
$count = 0;
|
||||||
|
foreach ($agents as $agent) {
|
||||||
|
$module = agents_get_modules($agent, false,
|
||||||
|
$filter_module_group, true, false);
|
||||||
|
if ($module == false) {
|
||||||
|
unset($agents[$count]);
|
||||||
|
}
|
||||||
|
$count++;
|
||||||
|
}
|
||||||
|
$total_pagination = count($agents);
|
||||||
|
|
||||||
|
|
||||||
|
$all_modules = agents_get_modules($agents, false,
|
||||||
|
$filter_module_group, true, false);
|
||||||
|
}
|
||||||
|
|
||||||
$modules_by_name = array();
|
$modules_by_name = array();
|
||||||
$name = '';
|
$name = '';
|
||||||
|
@ -173,8 +269,14 @@ function mainAgentsModules() {
|
||||||
$block = count($modules_by_name);
|
$block = count($modules_by_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
$filter_groups = array ('offset' => (int) $offset,
|
if($update_item == ''){
|
||||||
'limit' => (int) $config['block_size'], 'disabled' => 0,'id_agente'=>$agents);
|
$filter_groups = array ('offset' => (int) $offset,
|
||||||
|
'limit' => (int) $config['block_size'], 'disabled' => 0,'id_agente'=>$agents);
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$filter_groups = array ('offset' => 0,
|
||||||
|
'limit' => (int) $config['block_size'], 'disabled' => 0,'id_agente'=>$agents);
|
||||||
|
}
|
||||||
|
|
||||||
if ($group_id > 0) {
|
if ($group_id > 0) {
|
||||||
$filter_groups['id_grupo'] = $group_id;
|
$filter_groups['id_grupo'] = $group_id;
|
||||||
|
@ -204,10 +306,11 @@ function mainAgentsModules() {
|
||||||
"sec=extensions&" .
|
"sec=extensions&" .
|
||||||
"sec2=extensions/agents_modules&" .
|
"sec2=extensions/agents_modules&" .
|
||||||
"refr=0&" .
|
"refr=0&" .
|
||||||
|
"save_serialize=1&" .
|
||||||
|
"selection_a_m=" . $selection_a_m . "&" .
|
||||||
"hor_offset=" . $new_hor_offset . "&" .
|
"hor_offset=" . $new_hor_offset . "&" .
|
||||||
"offset=" . $offset . "&" .
|
"offset=" . $offset .
|
||||||
"group_id=" . $group_id . "&" .
|
"'>" .
|
||||||
"modulegroup=" . $modulegroup . "'>" .
|
|
||||||
html_print_image("images/arrow_left.png", true,
|
html_print_image("images/arrow_left.png", true,
|
||||||
array('title' => __('Previous modules'))) .
|
array('title' => __('Previous modules'))) .
|
||||||
"</a>" .
|
"</a>" .
|
||||||
|
@ -241,10 +344,11 @@ function mainAgentsModules() {
|
||||||
"extension_in_menu=estado&" .
|
"extension_in_menu=estado&" .
|
||||||
"sec=extensions&".
|
"sec=extensions&".
|
||||||
"sec2=extensions/agents_modules&".
|
"sec2=extensions/agents_modules&".
|
||||||
|
"save_serialize=1&" .
|
||||||
|
"selection_a_m=" . $selection_a_m . "&" .
|
||||||
"hor_offset=" . $new_hor_offset . "&".
|
"hor_offset=" . $new_hor_offset . "&".
|
||||||
"offset=" . $offset . "&" .
|
"offset=" . $offset .
|
||||||
"group_id=" . $group_id . "&" .
|
"'>" .
|
||||||
"modulegroup=" . $modulegroup . "'>" .
|
|
||||||
html_print_image(
|
html_print_image(
|
||||||
"images/arrow.png", true,
|
"images/arrow.png", true,
|
||||||
array('title' => __('More modules'))) .
|
array('title' => __('More modules'))) .
|
||||||
|
@ -259,7 +363,8 @@ function mainAgentsModules() {
|
||||||
$filter_agents['id_grupo'] = $group_id;
|
$filter_agents['id_grupo'] = $group_id;
|
||||||
}
|
}
|
||||||
// Prepare pagination
|
// Prepare pagination
|
||||||
ui_pagination ($total_pagination);
|
$url = 'index.php?extension_in_menu=estado&sec=extensions&sec2=extensions/agents_modules&save_serialize=1&' . "hor_offset=" . $hor_offset ."&selection_a_m=" . $selection_a_m;
|
||||||
|
ui_pagination ($total_pagination, $url);
|
||||||
|
|
||||||
foreach ($agents as $agent) {
|
foreach ($agents as $agent) {
|
||||||
// Get stats for this group
|
// Get stats for this group
|
||||||
|
@ -407,3 +512,108 @@ extensions_add_operation_menu_option(__("Agents/Modules view"), 'estado', 'agent
|
||||||
extensions_add_main_function('mainAgentsModules');
|
extensions_add_main_function('mainAgentsModules');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
<script type="text/javascript">
|
||||||
|
$(document).ready (function () {
|
||||||
|
$("#group_id").change (function () {
|
||||||
|
jQuery.post ("ajax.php",
|
||||||
|
{"page" : "operation/agentes/ver_agente",
|
||||||
|
"get_agents_group_json" : 1,
|
||||||
|
"id_group" : this.value,
|
||||||
|
"privilege" : "AW",
|
||||||
|
"keys_prefix" : "_"
|
||||||
|
},
|
||||||
|
function (data, status) {
|
||||||
|
$("#id_agents2").html('');
|
||||||
|
$("#module").html('');
|
||||||
|
jQuery.each (data, function (id, value) {
|
||||||
|
// Remove keys_prefix from the index
|
||||||
|
id = id.substring(1);
|
||||||
|
|
||||||
|
option = $("<option></option>")
|
||||||
|
.attr ("value", value["id_agente"])
|
||||||
|
.html (value["nombre"]);
|
||||||
|
$("#id_agents").append (option);
|
||||||
|
$("#id_agents2").append (option);
|
||||||
|
});
|
||||||
|
},
|
||||||
|
"json"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#modulegroup").change (function () {
|
||||||
|
jQuery.post ("ajax.php",
|
||||||
|
{"page" : "operation/agentes/ver_agente",
|
||||||
|
"get_modules_group_json" : 1,
|
||||||
|
"id_module_group" : this.value,
|
||||||
|
"id_agents" : $("#id_agents2").val(),
|
||||||
|
"selection" : $("#selection_agent_module").val()
|
||||||
|
},
|
||||||
|
function (data, status) {
|
||||||
|
$("#module").html('');
|
||||||
|
if(data){
|
||||||
|
jQuery.each (data, function (id, value) {
|
||||||
|
option = $("<option></option>")
|
||||||
|
.attr ("value", value["id_agente_modulo"])
|
||||||
|
.html (value["nombre"]);
|
||||||
|
$("#module").append (option);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"json"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#id_agents2").change (function(){
|
||||||
|
selection_agent_module();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#selection_agent_module").change(function() {
|
||||||
|
jQuery.post ("ajax.php",
|
||||||
|
{"page" : "operation/agentes/ver_agente",
|
||||||
|
"get_modules_group_json" : 1,
|
||||||
|
"id_module_group" : $("#modulegroup").val(),
|
||||||
|
"id_agents" : $("#id_agents2").val(),
|
||||||
|
"selection" : $("#selection_agent_module").val()
|
||||||
|
},
|
||||||
|
function (data, status) {
|
||||||
|
$("#module").html('');
|
||||||
|
if(data){
|
||||||
|
jQuery.each (data, function (id, value) {
|
||||||
|
option = $("<option></option>")
|
||||||
|
.attr ("value", value["id_agente_modulo"])
|
||||||
|
.html (value["nombre"]);
|
||||||
|
$("#module").append (option);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"json"
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
selection_agent_module();
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
function selection_agent_module() {
|
||||||
|
jQuery.post ("ajax.php",
|
||||||
|
{"page" : "operation/agentes/ver_agente",
|
||||||
|
"get_modules_group_json" : 1,
|
||||||
|
"id_module_group" : $("#modulegroup").val(),
|
||||||
|
"id_agents" : $("#id_agents2").val(),
|
||||||
|
"selection" : $("#selection_agent_module").val()
|
||||||
|
},
|
||||||
|
function (data, status) {
|
||||||
|
$("#module").html('');
|
||||||
|
if(data){
|
||||||
|
jQuery.each (data, function (id, value) {
|
||||||
|
option = $("<option></option>")
|
||||||
|
.attr ("value", value["id_agente_modulo"])
|
||||||
|
.html (value["nombre"]);
|
||||||
|
$("#module").append (option);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"json"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
</script>
|
|
@ -0,0 +1,4 @@
|
||||||
|
# Ignorar todo en este directorio
|
||||||
|
*
|
||||||
|
# Excepto este archivo
|
||||||
|
!.gitignore
|
|
@ -156,6 +156,7 @@ ALTER TABLE trel_item ADD `id_map` int(11) NOT NULL DEFAULT 0;
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('big_operation_step_datos_purge', '100');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('small_operation_step_datos_purge', '1000');
|
||||||
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('days_autodisable_deletion', '30');
|
||||||
|
INSERT INTO `tconfig` (`token`, `value`) VALUES ('MR', 0);
|
||||||
UPDATE tconfig SET value = 'https://firefly.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
UPDATE tconfig SET value = 'https://firefly.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
|
@ -244,3 +245,8 @@ UPDATE tagente_modulo SET cron_interval = '' WHERE cron_interval LIKE '% %';
|
||||||
-- Table `tgraph`
|
-- Table `tgraph`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tgraph ADD COLUMN `percentil` int(4) unsigned default '0';
|
ALTER TABLE tgraph ADD COLUMN `percentil` int(4) unsigned default '0';
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `tnetflow_filter`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE tnetflow_filter ADD COLUMN `router_ip` TEXT NOT NULL DEFAULT "";
|
||||||
|
|
|
@ -79,6 +79,7 @@ UPDATE talert_commands SET fields_descriptions = '[\"Integria IMS API&
|
||||||
INSERT INTO tconfig (token, value) VALUES ('big_operation_step_datos_purge', '100');
|
INSERT INTO tconfig (token, value) VALUES ('big_operation_step_datos_purge', '100');
|
||||||
INSERT INTO tconfig (token, value) VALUES ('small_operation_step_datos_purge', '1000');
|
INSERT INTO tconfig (token, value) VALUES ('small_operation_step_datos_purge', '1000');
|
||||||
INSERT INTO tconfig (token, value) VALUES ('days_autodisable_deletion', '30');
|
INSERT INTO tconfig (token, value) VALUES ('days_autodisable_deletion', '30');
|
||||||
|
INSERT INTO tconfig (token, value) VALUES ('MR', 0);
|
||||||
UPDATE tconfig SET value = 'https://firefly.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
UPDATE tconfig SET value = 'https://firefly.artica.es/pandoraupdate7/server.php' WHERE token='url_update_manager';
|
||||||
|
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
|
@ -153,3 +154,8 @@ INSERT INTO tagent_custom_fields (name) VALUES ('eHorusID');
|
||||||
-- Table `tgraph`
|
-- Table `tgraph`
|
||||||
-- ---------------------------------------------------------------------
|
-- ---------------------------------------------------------------------
|
||||||
ALTER TABLE tgraph ADD COLUMN percentil int(4) unsigned default '0';
|
ALTER TABLE tgraph ADD COLUMN percentil int(4) unsigned default '0';
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `tnetflow_filter`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE tnetflow_filter ADD COLUMN router_ip CLOB DEFAULT "";
|
||||||
|
|
|
@ -86,3 +86,8 @@ ALTER TABLE talert_actions ADD COLUMN field12_recovery TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_actions ADD COLUMN field13_recovery TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN field13_recovery TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_actions ADD COLUMN field14_recovery TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN field14_recovery TEXT NOT NULL DEFAULT "";
|
||||||
ALTER TABLE talert_actions ADD COLUMN field15_recovery TEXT NOT NULL DEFAULT "";
|
ALTER TABLE talert_actions ADD COLUMN field15_recovery TEXT NOT NULL DEFAULT "";
|
||||||
|
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
-- Table `tnetflow_filter`
|
||||||
|
-- ---------------------------------------------------------------------
|
||||||
|
ALTER TABLE tnetflow_filter ADD COLUMN router_ip TEXT NOT NULL DEFAULT "";
|
||||||
|
|
|
@ -26,8 +26,14 @@ if (! file_exists ($config["homedir"] . $license_file)) {
|
||||||
$license_file = 'general/license/pandora_info_en.html';
|
$license_file = 'general/license/pandora_info_en.html';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!$config["MR"]) {
|
||||||
|
$config["MR"] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
echo '<a class="white_bold footer" target="_blank" href="' . $config["homeurl"] . $license_file. '">';
|
echo '<a class="white_bold footer" target="_blank" href="' . $config["homeurl"] . $license_file. '">';
|
||||||
echo sprintf(__('Pandora FMS %s - Build %s', $pandora_version, $build_version));
|
|
||||||
|
echo sprintf(__('Pandora FMS %s - Build %s - MR %s', $pandora_version, $build_version, $config["MR"]));
|
||||||
|
|
||||||
echo '</a><br />';
|
echo '</a><br />';
|
||||||
echo '<a class="white footer">'. __('Page generated at') . ' '. ui_print_timestamp ($time, true, array ("prominent" => "timestamp")); //Always use timestamp here
|
echo '<a class="white footer">'. __('Page generated at') . ' '. ui_print_timestamp ($time, true, array ("prominent" => "timestamp")); //Always use timestamp here
|
||||||
echo '</a>';
|
echo '</a>';
|
||||||
|
|
|
@ -233,9 +233,15 @@ config_check();
|
||||||
//======================================================
|
//======================================================
|
||||||
|
|
||||||
|
|
||||||
|
$check_minor_release_available = false;
|
||||||
$pandora_management = check_acl($config['id_user'], 0, "PM");
|
$pandora_management = check_acl($config['id_user'], 0, "PM");
|
||||||
|
|
||||||
|
$check_minor_release_available = db_check_minor_relase_available ();
|
||||||
|
|
||||||
|
if ($check_minor_release_available) {
|
||||||
|
set_pandora_error_for_header('There are one or more minor releases waiting for update, there are required administrator permissions', 'minor release/s available');
|
||||||
|
}
|
||||||
|
|
||||||
echo '<div id="alert_messages" style="display: none"></div>';
|
echo '<div id="alert_messages" style="display: none"></div>';
|
||||||
|
|
||||||
if ($config["alert_cnt"] > 0) {
|
if ($config["alert_cnt"] > 0) {
|
||||||
|
|
|
@ -75,10 +75,17 @@ var id_user = "<?php echo $config['id_user']; ?>";
|
||||||
var cookie_name = id_user + '-pandora_menu_state';
|
var cookie_name = id_user + '-pandora_menu_state';
|
||||||
var cookie_name_encoded = btoa(cookie_name);
|
var cookie_name_encoded = btoa(cookie_name);
|
||||||
var click_display = "<?php echo $config["click_display"]; ?>";
|
var click_display = "<?php echo $config["click_display"]; ?>";
|
||||||
var classic_menu = "<?php echo $config["classic_menu"]; ?>";
|
var classic_menu = parseInt("<?php echo $config["classic_menu"]; ?>");
|
||||||
|
|
||||||
|
if ((isNaN(classic_menu)) || (classic_menu == 0)) {
|
||||||
|
classic_menu = false;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
classic_menu = true;
|
||||||
|
}
|
||||||
|
|
||||||
if (classic_menu) {
|
if (classic_menu) {
|
||||||
autohidden_menu = true;
|
autohidden_menu = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
var menuState = $.cookie(cookie_name_encoded);
|
var menuState = $.cookie(cookie_name_encoded);
|
||||||
|
@ -239,6 +246,19 @@ $(document).ready( function() {
|
||||||
$('#menu').css('position', 'block');
|
$('#menu').css('position', 'block');
|
||||||
$('li.menu_icon').addClass( " no_hidden_menu" );
|
$('li.menu_icon').addClass( " no_hidden_menu" );
|
||||||
$('ul.submenu').css('left', '144px');
|
$('ul.submenu').css('left', '144px');
|
||||||
|
|
||||||
|
$('#menu').mouseleave(function() {
|
||||||
|
handsInMenu = 0;
|
||||||
|
setTimeout(function() {
|
||||||
|
openedMenu = new Date().getTime() - openTimeMenu;
|
||||||
|
if(openedMenu > 1000 && handsInMenu == 0) {
|
||||||
|
$('#menu').css('width', '145px');
|
||||||
|
$('#menu').css('position', 'block');
|
||||||
|
$('li.menu_icon').addClass( " no_hidden_menu" );
|
||||||
|
$('ul.submenu').css('left', '144px');
|
||||||
|
}
|
||||||
|
}, 2500);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if(!click_display){
|
if(!click_display){
|
||||||
|
@ -289,26 +309,6 @@ $(document).ready( function() {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*$('#menu').mouseenter(function() {
|
|
||||||
$('div#title_menu').show();
|
|
||||||
handsInMenu = 1;
|
|
||||||
openTimeMenu = new Date().getTime();
|
|
||||||
$('#menu').css('width', '145px');
|
|
||||||
$('li.menu_icon').addClass( " no_hidden_menu" );
|
|
||||||
$('ul.submenu').css('left', '144px');
|
|
||||||
}).mouseleave(function() {
|
|
||||||
handsInMenu = 0;
|
|
||||||
setTimeout(function() {
|
|
||||||
openedMenu = new Date().getTime() - openTimeMenu;
|
|
||||||
if(openedMenu > 1000 && handsInMenu == 0) {
|
|
||||||
$('#menu').css('width', '45px');
|
|
||||||
$('li.menu_icon').removeClass( " no_hidden_menu");
|
|
||||||
$('ul.submenu').css('left', '44px');
|
|
||||||
$('div#title_menu').hide();
|
|
||||||
}
|
|
||||||
}, 1500);
|
|
||||||
});*/
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$('div#title_menu').hide();
|
$('div#title_menu').hide();
|
||||||
|
@ -465,23 +465,27 @@ $(document).ready( function() {
|
||||||
//Daniel maya 02/06/2016 Display menu with click --END
|
//Daniel maya 02/06/2016 Display menu with click --END
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$('#container').click(function() {
|
if(!click_display){
|
||||||
openTime = 4000;
|
$('#container').click(function() {
|
||||||
if( typeof(table_hover) != 'undefined')
|
openTime = 4000;
|
||||||
$("ul#sub"+table_hover[0].id).hide();
|
if( typeof(table_hover) != 'undefined')
|
||||||
if( typeof(table_hover2) != 'undefined')
|
$("ul#sub"+table_hover[0].id).hide();
|
||||||
$("ul#sub"+table_hover2[0].id).hide();
|
if( typeof(table_hover2) != 'undefined')
|
||||||
$('ul.submenu').css('left', '144px');
|
$("ul#sub"+table_hover2[0].id).hide();
|
||||||
});
|
$('#menu').css('width', '145px');
|
||||||
|
$('ul.submenu').css('left', '144px');
|
||||||
$('#main').click(function() {
|
});
|
||||||
openTime = 4000;
|
}else{
|
||||||
if( typeof(table_hover) != 'undefined')
|
$('#main').click(function() {
|
||||||
$("ul#sub"+table_hover[0].id).hide();
|
openTime = 4000;
|
||||||
if( typeof(table_hover2) != 'undefined')
|
if( typeof(table_hover) != 'undefined')
|
||||||
$("ul#sub"+table_hover2[0].id).hide();
|
$("ul#sub"+table_hover[0].id).hide();
|
||||||
$('ul.submenu').css('left', '144px');
|
if( typeof(table_hover2) != 'undefined')
|
||||||
});
|
$("ul#sub"+table_hover2[0].id).hide();
|
||||||
|
$('#menu').css('width', '145px');
|
||||||
|
$('ul.submenu').css('left', '144px');
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (classic_menu) {
|
if (classic_menu) {
|
||||||
|
|
|
@ -1014,13 +1014,51 @@ if ($update_module || $create_module) {
|
||||||
|
|
||||||
$id_category = (int) get_parameter('id_category');
|
$id_category = (int) get_parameter('id_category');
|
||||||
|
|
||||||
$hour = get_parameter('hour');
|
$hour_from = get_parameter('hour_from');
|
||||||
$minute = get_parameter('minute');
|
$minute_from = get_parameter('minute_from');
|
||||||
$mday = get_parameter('mday');
|
$mday_from = get_parameter('mday_from');
|
||||||
$month = get_parameter('month');
|
$month_from = get_parameter('month_from');
|
||||||
$wday = get_parameter('wday');
|
$wday_from = get_parameter('wday_from');
|
||||||
$cron_interval = "$minute $hour $mday $month $wday";
|
|
||||||
if (!cron_check_syntax($cron)) {
|
$hour_to = get_parameter('hour_to');
|
||||||
|
$minute_to = get_parameter('minute_to');
|
||||||
|
$mday_to = get_parameter('mday_to');
|
||||||
|
$month_to = get_parameter('month_to');
|
||||||
|
$wday_to = get_parameter('wday_to');
|
||||||
|
|
||||||
|
if ($hour_to != "*") {
|
||||||
|
$hour_to = "-" . $hour_to;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$hour_to = "";
|
||||||
|
}
|
||||||
|
if ($minute_to != "*") {
|
||||||
|
$minute_to = "-" . $minute_to;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$minute_to = "";
|
||||||
|
}
|
||||||
|
if ($mday_to != "*") {
|
||||||
|
$mday_to = "-" . $mday_to;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$mday_to = "";
|
||||||
|
}
|
||||||
|
if ($month_to != "*") {
|
||||||
|
$month_to = "-" . $month_to;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$month_to = "";
|
||||||
|
}
|
||||||
|
if ($wday_to != "*") {
|
||||||
|
$wday_to = "-" . $wday_to;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$wday_to = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
$cron_interval = $minute_from . $minute_to . " " . $hour_from . $hour_to . " " . $mday_from . $mday_to . " " . $month_from . $month_to . " " . $wday_from . $wday_to;
|
||||||
|
if (!cron_check_syntax($cron_interval)) {
|
||||||
$cron_interval = '';
|
$cron_interval = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -499,7 +499,7 @@ if ($agents !== false) {
|
||||||
|
|
||||||
/* Begin Update tagente.remote 0/1 with remote agent function return */
|
/* Begin Update tagente.remote 0/1 with remote agent function return */
|
||||||
|
|
||||||
if(enterprise_hook('config_agents_has_remote_configuration',$agent['id_agente'])){
|
if(enterprise_hook('config_agents_has_remote_configuration',array($agent['id_agente']))){
|
||||||
db_process_sql_update('tagente', array('remote' => 1),'id_agente = '.$agent['id_agente'].'');
|
db_process_sql_update('tagente', array('remote' => 1),'id_agente = '.$agent['id_agente'].'');
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -584,7 +584,7 @@ if ($agents !== false) {
|
||||||
// Has remote configuration ?
|
// Has remote configuration ?
|
||||||
if (enterprise_installed()) {
|
if (enterprise_installed()) {
|
||||||
enterprise_include_once('include/functions_config_agents.php');
|
enterprise_include_once('include/functions_config_agents.php');
|
||||||
if (enterprise_hook('config_agents_has_remote_configuration',$agent["id_agente"])) {
|
if (enterprise_hook('config_agents_has_remote_configuration',array($agent["id_agente"]))) {
|
||||||
echo "<a href='index.php?" .
|
echo "<a href='index.php?" .
|
||||||
"sec=gagente&" .
|
"sec=gagente&" .
|
||||||
"sec2=godmode/agentes/configurar_agente&" .
|
"sec2=godmode/agentes/configurar_agente&" .
|
||||||
|
|
|
@ -229,18 +229,53 @@ if ($id_agent_module) {
|
||||||
|
|
||||||
$cron_interval = explode (" ", $module['cron_interval']);
|
$cron_interval = explode (" ", $module['cron_interval']);
|
||||||
if (isset ($cron_interval[4])) {
|
if (isset ($cron_interval[4])) {
|
||||||
$minute = $cron_interval[0];
|
$minute_from = $cron_interval[0];
|
||||||
$hour = $cron_interval[1];
|
$min = explode("-", $minute_from);
|
||||||
$mday = $cron_interval[2];
|
$minute_from = $min[0];
|
||||||
$month = $cron_interval[3];
|
if (isset($min[1])) {
|
||||||
$wday = $cron_interval[4];
|
$minute_to = $min[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
$hour_from = $cron_interval[1];
|
||||||
|
$h = explode("-", $hour_from);
|
||||||
|
$hour_from = $h[0];
|
||||||
|
if (isset($h[1])) {
|
||||||
|
$hour_to = $h[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
$mday_from = $cron_interval[2];
|
||||||
|
$md = explode("-", $mday_from);
|
||||||
|
$mday_from = $md[0];
|
||||||
|
if (isset($md[1])) {
|
||||||
|
$mday_to = $md[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
$month_from = $cron_interval[3];
|
||||||
|
$m = explode("-", $month_from);
|
||||||
|
$month_from = $m[0];
|
||||||
|
if (isset($m[1])) {
|
||||||
|
$month_to = $m[1];
|
||||||
|
}
|
||||||
|
|
||||||
|
$wday_from = $cron_interval[4];
|
||||||
|
$wd = explode("-", $wday_from);
|
||||||
|
$wday_from = $wd[0];
|
||||||
|
if (isset($wd[1])) {
|
||||||
|
$wday_to = $wd[1];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$minute = '*';
|
$minute_from = '*';
|
||||||
$hour = '*';
|
$hour_from = '*';
|
||||||
$mday = '*';
|
$mday_from = '*';
|
||||||
$month = '*';
|
$month_from = '*';
|
||||||
$wday = '*';
|
$wday_from = '*';
|
||||||
|
|
||||||
|
$minute_to = '*';
|
||||||
|
$hour_to = '*';
|
||||||
|
$mday_to = '*';
|
||||||
|
$month_to = '*';
|
||||||
|
$wday_to = '*';
|
||||||
}
|
}
|
||||||
|
|
||||||
$module_macros = null;
|
$module_macros = null;
|
||||||
|
@ -322,11 +357,16 @@ else {
|
||||||
$id_category = 0;
|
$id_category = 0;
|
||||||
|
|
||||||
$cron_interval = '* * * * *';
|
$cron_interval = '* * * * *';
|
||||||
$hour = '*';
|
$hour_from = '*';
|
||||||
$minute = '*';
|
$minute_from = '*';
|
||||||
$mday = '*';
|
$mday_from = '*';
|
||||||
$month = '*';
|
$month_from = '*';
|
||||||
$wday = '*';
|
$wday_from = '*';
|
||||||
|
$hour_to = '*';
|
||||||
|
$minute_to = '*';
|
||||||
|
$mday_to = '*';
|
||||||
|
$month_to = '*';
|
||||||
|
$wday_to = '*';
|
||||||
|
|
||||||
$ff_interval = 0;
|
$ff_interval = 0;
|
||||||
|
|
||||||
|
@ -396,7 +436,7 @@ switch ($moduletype) {
|
||||||
$remote_conf = false;
|
$remote_conf = false;
|
||||||
if (enterprise_installed()) {
|
if (enterprise_installed()) {
|
||||||
enterprise_include_once('include/functions_config_agents.php');
|
enterprise_include_once('include/functions_config_agents.php');
|
||||||
$remote_conf = enterprise_hook('config_agents_has_remote_configuration',$id_agente);
|
$remote_conf = enterprise_hook('config_agents_has_remote_configuration',array($id_agente));
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Categories is an array containing the allowed module types
|
/* Categories is an array containing the allowed module types
|
||||||
|
|
|
@ -108,7 +108,12 @@ $page = get_parameter('page', '');
|
||||||
|
|
||||||
if (strstr($page, "policy_modules") === false && $id_agent_module) {
|
if (strstr($page, "policy_modules") === false && $id_agent_module) {
|
||||||
if ($config['enterprise_installed'])
|
if ($config['enterprise_installed'])
|
||||||
$disabledBecauseInPolicy = policies_is_module_in_policy($id_agent_module) && policies_is_module_linked($id_agent_module);
|
if(policies_is_module_linked($id_agent_module) == 1){
|
||||||
|
$disabledBecauseInPolicy = 1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$disabledBecauseInPolicy = 0;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
$disabledBecauseInPolicy = false;
|
$disabledBecauseInPolicy = false;
|
||||||
if ($disabledBecauseInPolicy)
|
if ($disabledBecauseInPolicy)
|
||||||
|
@ -571,34 +576,55 @@ $table_advanced->data[10][1] = html_print_textarea ('unknown_instructions', 2, 6
|
||||||
$table_advanced->colspan[10][1] = 6;
|
$table_advanced->colspan[10][1] = 6;
|
||||||
|
|
||||||
if (isset($id_agente) && $moduletype == MODULE_DATA) {
|
if (isset($id_agente) && $moduletype == MODULE_DATA) {
|
||||||
$table_advanced->data[11][0] = __('Cron') .
|
$has_remote_conf = enterprise_hook('config_agents_has_remote_configuration',array($agent["id_agente"]));
|
||||||
ui_print_help_tip (__('If cron is set the module interval is ignored and the module runs on the specified date and time'), true);
|
if ($has_remote_conf) {
|
||||||
$table_advanced->data[11][1] = html_print_extended_select_for_cron ($hour, $minute, $mday, $month, $wday, true, true);
|
$table_advanced->data[11][0] = __('Cron from') .
|
||||||
$table_advanced->colspan[11][1] = 6;
|
ui_print_help_tip (__('If cron is set the module interval is ignored and the module runs on the specified date and time'), true);
|
||||||
|
$table_advanced->data[11][1] = html_print_extended_select_for_cron ($hour_from, $minute_from, $mday_from, $month_from, $wday_from, true, $disabledBecauseInPolicy);
|
||||||
|
$table_advanced->colspan[11][1] = 6;
|
||||||
|
|
||||||
|
$table_advanced->data[12][0] = __('Cron to');
|
||||||
|
$table_advanced->data[12][1] = html_print_extended_select_for_cron ($hour_to, $minute_to, $mday_to, $month_to, $wday_to, true, $disabledBecauseInPolicy, true);
|
||||||
|
$table_advanced->colspan[12][1] = 6;
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
$table_advanced->data[11][0] = __('Cron from') .
|
||||||
|
ui_print_help_tip (__('If cron is set the module interval is ignored and the module runs on the specified date and time'), true);
|
||||||
|
$table_advanced->data[11][1] = html_print_extended_select_for_cron ($hour_from, $minute_from, $mday_from, $month_from, $wday_from, true, true);
|
||||||
|
$table_advanced->colspan[11][1] = 6;
|
||||||
|
|
||||||
|
$table_advanced->data[12][0] = __('Cron to');
|
||||||
|
$table_advanced->data[12][1] = html_print_extended_select_for_cron ($hour_to, $minute_to, $mday_to, $month_to, $wday_to, true, true, true);
|
||||||
|
$table_advanced->colspan[12][1] = 6;
|
||||||
|
}
|
||||||
|
}
|
||||||
else {
|
else {
|
||||||
$table_advanced->data[11][0] = __('Cron') .
|
$table_advanced->data[11][0] = __('Cron from') .
|
||||||
ui_print_help_tip (__('If cron is set the module interval is ignored and the module runs on the specified date and time'), true);
|
ui_print_help_tip (__('If cron is set the module interval is ignored and the module runs on the specified date and time'), true);
|
||||||
$table_advanced->data[11][1] = html_print_extended_select_for_cron ($hour, $minute, $mday, $month, $wday, true, $disabledBecauseInPolicy);
|
$table_advanced->data[11][1] = html_print_extended_select_for_cron ($hour_from, $minute_from, $mday_from, $month_from, $wday_from, true, $disabledBecauseInPolicy);
|
||||||
$table_advanced->colspan[11][1] = 6;
|
$table_advanced->colspan[11][1] = 6;
|
||||||
|
|
||||||
|
$table_advanced->data[12][0] = __('Cron to');
|
||||||
|
$table_advanced->data[12][1] = html_print_extended_select_for_cron ($hour_to, $minute_to, $mday_to, $month_to, $wday_to, true, $disabledBecauseInPolicy, true);
|
||||||
|
$table_advanced->colspan[12][1] = 6;
|
||||||
}
|
}
|
||||||
|
|
||||||
$table_advanced->data[12][0] = __('Timeout');
|
$table_advanced->data[13][0] = __('Timeout');
|
||||||
$table_advanced->data[12][1] = html_print_input_text ('max_timeout', $max_timeout, '', 5, 10, true, $disabledBecauseInPolicy, false, '', $classdisabledBecauseInPolicy). ' ' . ui_print_help_tip (__('Seconds that agent will wait for the execution of the module.'), true);
|
$table_advanced->data[13][1] = html_print_input_text ('max_timeout', $max_timeout, '', 5, 10, true, $disabledBecauseInPolicy, false, '', $classdisabledBecauseInPolicy). ' ' . ui_print_help_tip (__('Seconds that agent will wait for the execution of the module.'), true);
|
||||||
$table_advanced->data[12][2] = '';
|
$table_advanced->data[13][2] = '';
|
||||||
$table_advanced->data[12][3] = __('Retries');
|
$table_advanced->data[13][3] = __('Retries');
|
||||||
$table_advanced->data[12][4] = html_print_input_text ('max_retries', $max_retries, '', 5, 10, true, $disabledBecauseInPolicy, false, '', $classdisabledBecauseInPolicy). ' ' . ui_print_help_tip (__('Number of retries that the module will attempt to run.'), true);
|
$table_advanced->data[13][4] = html_print_input_text ('max_retries', $max_retries, '', 5, 10, true, $disabledBecauseInPolicy, false, '', $classdisabledBecauseInPolicy). ' ' . ui_print_help_tip (__('Number of retries that the module will attempt to run.'), true);
|
||||||
$table_advanced->colspan[12][4] = 3;
|
$table_advanced->colspan[13][4] = 3;
|
||||||
|
|
||||||
if (check_acl ($config['id_user'], 0, "PM")) {
|
if (check_acl ($config['id_user'], 0, "PM")) {
|
||||||
$table_advanced->data[13][0] = __('Category');
|
$table_advanced->data[14][0] = __('Category');
|
||||||
$table_advanced->data[13][1] = html_print_select(
|
$table_advanced->data[14][1] = html_print_select(
|
||||||
categories_get_all_categories('forselect'), 'id_category', $id_category, '', __('None'), 0, true, false, true, "", $disabledBecauseInPolicy);
|
categories_get_all_categories('forselect'), 'id_category', $id_category, '', __('None'), 0, true, false, true, "", $disabledBecauseInPolicy);
|
||||||
$table_advanced->colspan[13][1] = 6;
|
$table_advanced->colspan[14][1] = 6;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// Store in a hidden field if is not visible to avoid delete the value
|
// Store in a hidden field if is not visible to avoid delete the value
|
||||||
$table_advanced->data[12][4] .= html_print_input_hidden ('id_category', $id_category, true);
|
$table_advanced->data[13][4] .= html_print_input_hidden ('id_category', $id_category, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Advanced form part */
|
/* Advanced form part */
|
||||||
|
|
|
@ -98,7 +98,7 @@ else {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$table = new stdClass();
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
$table->class = 'databox filters';
|
$table->class = 'databox filters';
|
||||||
if (defined("METACONSOLE")) {
|
if (defined("METACONSOLE")) {
|
||||||
|
@ -203,7 +203,9 @@ else
|
||||||
$sec = "gagente";
|
$sec = "gagente";
|
||||||
|
|
||||||
if (isset($config['metaconsole_node_id']) && $config['metaconsole_node_id'] > 0) {
|
if (isset($config['metaconsole_node_id']) && $config['metaconsole_node_id'] > 0) {
|
||||||
$confirm_bottom = " onsubmit=' return message_check_create();'";
|
if(isset($config['metaconsole_agent_cache']) && $config['metaconsole_agent_cache'] == 1){
|
||||||
|
$confirm_bottom = " onsubmit=' return message_check_create();'";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -187,6 +187,7 @@ foreach ($groups as $group_key => $group_val) {
|
||||||
// Format component groups in tree form
|
// Format component groups in tree form
|
||||||
$groups = component_groups_get_groups_tree_recursive($groups_clean,0,0);
|
$groups = component_groups_get_groups_tree_recursive($groups_clean,0,0);
|
||||||
|
|
||||||
|
$table = new stdClass();
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
$table->class = 'databox data';
|
$table->class = 'databox data';
|
||||||
$table->head = array ();
|
$table->head = array ();
|
||||||
|
|
|
@ -44,6 +44,7 @@ else {
|
||||||
$parent = '';
|
$parent = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$table = new stdClass();
|
||||||
$table->width = '100%';
|
$table->width = '100%';
|
||||||
$table->class = 'databox filters';
|
$table->class = 'databox filters';
|
||||||
|
|
||||||
|
|
|
@ -239,7 +239,7 @@ switch ($action) {
|
||||||
case 'SLA_weekly':
|
case 'SLA_weekly':
|
||||||
case 'SLA_monthly':
|
case 'SLA_monthly':
|
||||||
case 'SLA_hourly':
|
case 'SLA_hourly':
|
||||||
case 'availability_graph';
|
case 'availability_graph':
|
||||||
$description = $item['description'];
|
$description = $item['description'];
|
||||||
$only_display_wrong = $item['only_display_wrong'];
|
$only_display_wrong = $item['only_display_wrong'];
|
||||||
$monday = $item['monday'];
|
$monday = $item['monday'];
|
||||||
|
@ -257,6 +257,13 @@ switch ($action) {
|
||||||
$period = $item['period'];
|
$period = $item['period'];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'module_histogram_graph':
|
||||||
|
$description = $item['description'];
|
||||||
|
$period = $item['period'];
|
||||||
|
$idAgentModule = $item['id_agent_module'];
|
||||||
|
$idAgent = db_get_value_filter('id_agente', 'tagente_modulo', array('id_agente_modulo' => $idAgentModule));
|
||||||
|
break;
|
||||||
|
|
||||||
case 'SLA_services':
|
case 'SLA_services':
|
||||||
$description = $item['description'];
|
$description = $item['description'];
|
||||||
$period = $item['period'];
|
$period = $item['period'];
|
||||||
|
@ -1912,12 +1919,14 @@ $(document).ready (function () {
|
||||||
},
|
},
|
||||||
function (data, status) {
|
function (data, status) {
|
||||||
$("#module").html('');
|
$("#module").html('');
|
||||||
jQuery.each (data, function (id, value) {
|
if(data){
|
||||||
option = $("<option></option>")
|
jQuery.each (data, function (id, value) {
|
||||||
.attr ("value", value["id_agente_modulo"])
|
option = $("<option></option>")
|
||||||
.html (value["nombre"]);
|
.attr ("value", value["id_agente_modulo"])
|
||||||
$("#module").append (option);
|
.html (value["nombre"]);
|
||||||
});
|
$("#module").append (option);
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"json"
|
"json"
|
||||||
);
|
);
|
||||||
|
@ -1935,12 +1944,14 @@ $(document).ready (function () {
|
||||||
},
|
},
|
||||||
function (data, status) {
|
function (data, status) {
|
||||||
$("#module").html('');
|
$("#module").html('');
|
||||||
jQuery.each (data, function (id, value) {
|
if(data){
|
||||||
option = $("<option></option>")
|
jQuery.each (data, function (id, value) {
|
||||||
.attr ("value", value["id_agente_modulo"])
|
option = $("<option></option>")
|
||||||
.html (value["nombre"]);
|
.attr ("value", value["id_agente_modulo"])
|
||||||
$("#module").append (option);
|
.html (value["nombre"]);
|
||||||
});
|
$("#module").append (option);
|
||||||
|
});
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"json"
|
"json"
|
||||||
);
|
);
|
||||||
|
@ -1988,7 +1999,6 @@ $(document).ready (function () {
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
$("#submit-create_item").click(function () {
|
$("#submit-create_item").click(function () {
|
||||||
var type = $('#type').val();
|
var type = $('#type').val();
|
||||||
switch (type){
|
switch (type){
|
||||||
|
@ -1998,7 +2008,7 @@ $(document).ready (function () {
|
||||||
case 'MTBF': case 'MTTR': case 'prediction_date': case 'projection_graph':
|
case 'MTBF': case 'MTTR': case 'prediction_date': case 'projection_graph':
|
||||||
case 'avg_value': case 'max_value': case 'min_value': case 'monitor_report':
|
case 'avg_value': case 'max_value': case 'min_value': case 'monitor_report':
|
||||||
case 'database_serialized': case 'sumatory': case 'historical_data':
|
case 'database_serialized': case 'sumatory': case 'historical_data':
|
||||||
case 'agent_configuration':
|
case 'agent_configuration': case 'module_histogram_graph':
|
||||||
if ($("#hidden-id_agent").val() == 0) {
|
if ($("#hidden-id_agent").val() == 0) {
|
||||||
alert( <?php echo "'" . __('Please select Agent'). "'"; ?> );
|
alert( <?php echo "'" . __('Please select Agent'). "'"; ?> );
|
||||||
return false;
|
return false;
|
||||||
|
@ -2018,7 +2028,7 @@ $(document).ready (function () {
|
||||||
case 'MTBF': case 'MTTR': case 'prediction_date': case 'projection_graph':
|
case 'MTBF': case 'MTTR': case 'prediction_date': case 'projection_graph':
|
||||||
case 'avg_value': case 'max_value': case 'min_value': case 'monitor_report':
|
case 'avg_value': case 'max_value': case 'min_value': case 'monitor_report':
|
||||||
case 'database_serialized': case 'sumatory': case 'historical_data':
|
case 'database_serialized': case 'sumatory': case 'historical_data':
|
||||||
case 'agent_configuration':
|
case 'agent_configuration': case 'module_histogram_graph':
|
||||||
if ($("#hidden-id_agent").val() == 0) {
|
if ($("#hidden-id_agent").val() == 0) {
|
||||||
alert( <?php echo "'" . __('Please select Agent'). "'"; ?> );
|
alert( <?php echo "'" . __('Please select Agent'). "'"; ?> );
|
||||||
return false;
|
return false;
|
||||||
|
@ -2609,6 +2619,13 @@ function chooseType() {
|
||||||
$("#row_working_time").show();
|
$("#row_working_time").show();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'module_histogram_graph':
|
||||||
|
$("#row_description").show();
|
||||||
|
$("#row_period").show();
|
||||||
|
$("#row_agent").show();
|
||||||
|
$("#row_module").show();
|
||||||
|
break;
|
||||||
|
|
||||||
case 'SLA_monthly':
|
case 'SLA_monthly':
|
||||||
case 'SLA_weekly':
|
case 'SLA_weekly':
|
||||||
case 'SLA_hourly':
|
case 'SLA_hourly':
|
||||||
|
|
|
@ -1162,6 +1162,7 @@ switch ($action) {
|
||||||
else
|
else
|
||||||
$style['label'] = '';
|
$style['label'] = '';
|
||||||
break;
|
break;
|
||||||
|
case 'module_histogram_graph':
|
||||||
case 'agent_configuration':
|
case 'agent_configuration':
|
||||||
case 'alert_report_agent':
|
case 'alert_report_agent':
|
||||||
case 'alert_report_module':
|
case 'alert_report_module':
|
||||||
|
@ -1489,6 +1490,7 @@ switch ($action) {
|
||||||
else
|
else
|
||||||
$style['label'] = '';
|
$style['label'] = '';
|
||||||
break;
|
break;
|
||||||
|
case 'module_histogram_graph':
|
||||||
case 'agent_configuration':
|
case 'agent_configuration':
|
||||||
case 'alert_report_agent':
|
case 'alert_report_agent':
|
||||||
case 'alert_report_module':
|
case 'alert_report_module':
|
||||||
|
|
|
@ -1109,13 +1109,12 @@ function loadFieldsFromDB(item) {
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
if (data.type == 6 || data.type == 7 || data.type == 8) {
|
|
||||||
|
|
||||||
$("#period_row").css('display', '');
|
if (data.type == 6 || data.type == 7 || data.type == 8 || data.type == 1) {
|
||||||
|
|
||||||
$("#period_row." + item).css('display', '');
|
$("#period_row." + item).css('display', '');
|
||||||
}
|
}
|
||||||
else if (data.type == 2) {
|
else if (data.type == 2) {
|
||||||
$("#period_row").css('display', 'none');
|
|
||||||
$("#period_row." + item).css('display', 'none');
|
$("#period_row." + item).css('display', 'none');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1265,7 +1264,7 @@ function hiddenFields(item) {
|
||||||
$("#percentile_item_row_4." + item).css('display', '');
|
$("#percentile_item_row_4." + item).css('display', '');
|
||||||
|
|
||||||
$("#period_row").css('display', 'none');
|
$("#period_row").css('display', 'none');
|
||||||
$("#period_row." + item).css('display', 'none');
|
$("#period_row." + item).css('display', '');
|
||||||
|
|
||||||
$("#size_row").css('display', 'none');
|
$("#size_row").css('display', 'none');
|
||||||
$("#size_row." + item).css('display', '');
|
$("#size_row." + item).css('display', '');
|
||||||
|
@ -3070,7 +3069,6 @@ function unselectAll() {
|
||||||
|
|
||||||
function click_button_toolbox(id) {
|
function click_button_toolbox(id) {
|
||||||
unselectAll();
|
unselectAll();
|
||||||
selectedItem = null;
|
|
||||||
switch (id) {
|
switch (id) {
|
||||||
case 'static_graph':
|
case 'static_graph':
|
||||||
toolbuttonActive = creationItem = 'static_graph';
|
toolbuttonActive = creationItem = 'static_graph';
|
||||||
|
@ -3088,6 +3086,7 @@ function click_button_toolbox(id) {
|
||||||
case 'simple_value':
|
case 'simple_value':
|
||||||
toolbuttonActive = creationItem = 'simple_value';
|
toolbuttonActive = creationItem = 'simple_value';
|
||||||
toggle_item_palette();
|
toggle_item_palette();
|
||||||
|
$("#period_row." + id).css('display', 'none');
|
||||||
break;
|
break;
|
||||||
case 'label':
|
case 'label':
|
||||||
toolbuttonActive = creationItem = 'label';
|
toolbuttonActive = creationItem = 'label';
|
||||||
|
|
|
@ -186,14 +186,14 @@ $row++;
|
||||||
$table_styles->data[$row][0] = __('Custom logo') . ui_print_help_icon("custom_logo", true);
|
$table_styles->data[$row][0] = __('Custom logo') . ui_print_help_icon("custom_logo", true);
|
||||||
|
|
||||||
if(enterprise_installed()){
|
if(enterprise_installed()){
|
||||||
|
$ent_files = list_files('enterprise/images/custom_logo', "png", 1, 0);
|
||||||
|
$open_files = list_files('images/custom_logo', "png", 1, 0);
|
||||||
|
|
||||||
$table_styles->data[$row][1] = html_print_select(
|
$table_styles->data[$row][1] = html_print_select(
|
||||||
list_files('enterprise/images/custom_logo', "png", 1, 0), 'custom_logo',
|
array_merge($ent_files, $open_files), 'custom_logo',
|
||||||
$config["custom_logo"], '', '', '',true,false,true,'',$open,'width:240px');
|
$config["custom_logo"], '', '', '',true,false,true,'',$open,'width:240px');
|
||||||
|
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
|
||||||
$table_styles->data[$row][1] = html_print_select(
|
$table_styles->data[$row][1] = html_print_select(
|
||||||
list_files('images/custom_logo', "png", 1, 0), 'custom_logo',
|
list_files('images/custom_logo', "png", 1, 0), 'custom_logo',
|
||||||
$config["custom_logo"], '', '', '',true,false,true,'',$open,'width:240px');
|
$config["custom_logo"], '', '', '',true,false,true,'',$open,'width:240px');
|
||||||
|
@ -214,7 +214,7 @@ $table_styles->data[$row][0] = __('Custom logo in login') . ui_print_help_icon("
|
||||||
$row++;
|
$row++;
|
||||||
|
|
||||||
|
|
||||||
$table_styles->data[$row][0] = __('Disable Pandora FMS on graphs');
|
$table_styles->data[$row][0] = __('Disable logo in graphs');
|
||||||
$table_styles->data[$row][1] = __('Yes') . ' ' .
|
$table_styles->data[$row][1] = __('Yes') . ' ' .
|
||||||
html_print_radio_button_extended ('fixed_graph', 1, '', $config["fixed_graph"], $open, '','',true) .
|
html_print_radio_button_extended ('fixed_graph', 1, '', $config["fixed_graph"], $open, '','',true) .
|
||||||
' ';
|
' ';
|
||||||
|
|
After Width: | Height: | Size: 369 B |
After Width: | Height: | Size: 708 B |
After Width: | Height: | Size: 203 B |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 1.1 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 3.0 KiB |
After Width: | Height: | Size: 3.8 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 2.8 KiB |
After Width: | Height: | Size: 7.0 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 900 B |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 1.6 KiB |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 2.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1014 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 930 B |
After Width: | Height: | Size: 167 B |
|
@ -0,0 +1,105 @@
|
||||||
|
<?php
|
||||||
|
// Pandora FMS - http://pandorafms.com
|
||||||
|
// ==================================================
|
||||||
|
// 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 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.
|
||||||
|
|
||||||
|
// Only accesible by ajax
|
||||||
|
if (is_ajax ()) {
|
||||||
|
global $config;
|
||||||
|
check_login();
|
||||||
|
|
||||||
|
$updare_rr = get_parameter('updare_rr', 0);
|
||||||
|
|
||||||
|
if ($updare_rr) {
|
||||||
|
$number = get_parameter('number');
|
||||||
|
|
||||||
|
$dir = $config["homedir"]."/extras/mr";
|
||||||
|
|
||||||
|
$file = "$dir/$number.sql";
|
||||||
|
|
||||||
|
$dangerous_query = false;
|
||||||
|
$mr_file = fopen($file, "r");
|
||||||
|
while (!feof($mr_file)) {
|
||||||
|
$line = fgets($mr_file);
|
||||||
|
if ((preg_match("/^drop/", $line)) ||
|
||||||
|
(preg_match("/^truncate table/", $line))) {
|
||||||
|
$dangerous_query = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($dangerous_query) {
|
||||||
|
$error_file = fopen($config["homedir"] . "/extras/mr/error.txt", "w");
|
||||||
|
$message = "The sql file contains a dangerous query";
|
||||||
|
fwrite($error_file, $message);
|
||||||
|
fclose($error_file);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if (file_exists($dir) && is_dir($dir)) {
|
||||||
|
if (is_readable($dir)) {
|
||||||
|
if ($config["MR"] >= $number) {
|
||||||
|
if (!file_exists($dir."/updated") || !is_dir($dir."/updated")) {
|
||||||
|
mkdir($dir."/updated");
|
||||||
|
}
|
||||||
|
$file_dest = "$dir/updated/$number.sql";
|
||||||
|
if (copy($file, $file_dest)) {
|
||||||
|
unlink($file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$result = db_run_sql_file($file);
|
||||||
|
if ($result) {
|
||||||
|
$update_config = update_config_token("MR", $number);
|
||||||
|
if ($update_config) {
|
||||||
|
$config["MR"] = $number;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($config["MR"] == $number) {
|
||||||
|
if (!file_exists($dir."/updated") || !is_dir($dir."/updated")) {
|
||||||
|
mkdir($dir."/updated");
|
||||||
|
}
|
||||||
|
|
||||||
|
$file_dest = "$dir/updated/$number.sql";
|
||||||
|
|
||||||
|
if (copy($file, $file_dest)) {
|
||||||
|
unlink($file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$error_file = fopen($config["homedir"] . "/extras/mr/error.txt", "w");
|
||||||
|
$message = "An error occurred while updating the database schema to the minor release " . $number;
|
||||||
|
fwrite($error_file, $message);
|
||||||
|
fclose($error_file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$error_file = fopen($config["homedir"] . "/extras/mr/error.txt", "w");
|
||||||
|
$message = "The directory ' . $dir . ' should have read permissions in order to update the database schema";
|
||||||
|
fwrite($error_file, $message);
|
||||||
|
fclose($error_file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$error_file = fopen($config["homedir"] . "/extras/mr/error.txt", "w");
|
||||||
|
$message = "The directory ' . $dir . ' does not exist";
|
||||||
|
fwrite($error_file, $message);
|
||||||
|
fclose($error_file);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
echo $message;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
|
@ -56,7 +56,12 @@ $no_login_msg = "";
|
||||||
// Don't change the format, it is parsed by applications
|
// Don't change the format, it is parsed by applications
|
||||||
switch($info) {
|
switch($info) {
|
||||||
case 'version':
|
case 'version':
|
||||||
echo 'Pandora FMS ' . $pandora_version . ' - ' . $build_version;
|
if (!$config["MR"]) {
|
||||||
|
$config["MR"] = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
echo 'Pandora FMS ' . $pandora_version . ' - ' . $build_version . " MR" . $config["MR"];
|
||||||
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
/**
|
/**
|
||||||
* Pandora build version and version
|
* Pandora build version and version
|
||||||
*/
|
*/
|
||||||
$build_version = 'PC170208';
|
$build_version = 'PC170215';
|
||||||
$pandora_version = 'v7.0dev';
|
$pandora_version = 'v7.0dev';
|
||||||
|
|
||||||
// Do not overwrite default timezone set if defined.
|
// Do not overwrite default timezone set if defined.
|
||||||
|
|
|
@ -37,9 +37,9 @@ function mysql_connect_db($host = null, $db = null, $user = null, $pass = null,
|
||||||
|
|
||||||
// Non-persistent connection: This will help to avoid mysql errors like "has gone away" or locking problems
|
// Non-persistent connection: This will help to avoid mysql errors like "has gone away" or locking problems
|
||||||
// If you want persistent connections change it to mysql_pconnect().
|
// If you want persistent connections change it to mysql_pconnect().
|
||||||
if ($config["mysqli"] === true) {
|
if ($config["mysqli"]) {
|
||||||
$connect_id = mysqli_connect($host, $user, $pass, $db, $port);
|
$connect_id = mysqli_connect($host, $user, $pass, $db, $port);
|
||||||
if (mysqli_connect_error() > 0) {
|
if (mysqli_connect_errno() > 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
db_change_cache_id ($db, $host);
|
db_change_cache_id ($db, $host);
|
||||||
|
@ -1080,7 +1080,7 @@ function mysql_db_get_all_row_by_steps_sql($new = true, &$result, $sql = null) {
|
||||||
function mysql_db_process_sql_begin() {
|
function mysql_db_process_sql_begin() {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
if ($config["mysqli"] === true) {
|
if ($config["mysqli"]) {
|
||||||
mysqli_query ($config['dbconnection'], 'SET AUTOCOMMIT = 0');
|
mysqli_query ($config['dbconnection'], 'SET AUTOCOMMIT = 0');
|
||||||
mysqli_query ($config['dbconnection'], 'START TRANSACTION');
|
mysqli_query ($config['dbconnection'], 'START TRANSACTION');
|
||||||
}
|
}
|
||||||
|
@ -1096,7 +1096,7 @@ function mysql_db_process_sql_begin() {
|
||||||
function mysql_db_process_sql_commit() {
|
function mysql_db_process_sql_commit() {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
if ($config["mysqli"] === true) {
|
if ($config["mysqli"]) {
|
||||||
mysqli_query ($config['dbconnection'], 'COMMIT');
|
mysqli_query ($config['dbconnection'], 'COMMIT');
|
||||||
mysqli_query ($config['dbconnection'], 'SET AUTOCOMMIT = 1');
|
mysqli_query ($config['dbconnection'], 'SET AUTOCOMMIT = 1');
|
||||||
}
|
}
|
||||||
|
@ -1112,7 +1112,7 @@ function mysql_db_process_sql_commit() {
|
||||||
function mysql_db_process_sql_rollback() {
|
function mysql_db_process_sql_rollback() {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
if ($config["mysqli"] === true) {
|
if ($config["mysqli"]) {
|
||||||
mysqli_query ($config['dbconnection'], 'ROLLBACK ');
|
mysqli_query ($config['dbconnection'], 'ROLLBACK ');
|
||||||
mysqli_query ($config['dbconnection'], 'SET AUTOCOMMIT = 1');
|
mysqli_query ($config['dbconnection'], 'SET AUTOCOMMIT = 1');
|
||||||
}
|
}
|
||||||
|
@ -1144,7 +1144,7 @@ function mysql_safe_sql_string($string) {
|
||||||
function mysql_db_get_last_error() {
|
function mysql_db_get_last_error() {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
if ($config["mysqli"] === true) {
|
if ($config["mysqli"]) {
|
||||||
return mysqli_error();
|
return mysqli_error();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -1188,7 +1188,7 @@ function mysql_get_system_time() {
|
||||||
function mysql_db_get_type_field_table($table, $field) {
|
function mysql_db_get_type_field_table($table, $field) {
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
if ($config["mysqli"] === true) {
|
if ($config["mysqli"]) {
|
||||||
$result = mysqli_query($config['dbconnection'], 'SELECT parameters FROM ' . $table);
|
$result = mysqli_query($config['dbconnection'], 'SELECT parameters FROM ' . $table);
|
||||||
|
|
||||||
return mysqli_fetch_field_direct($result, $field);
|
return mysqli_fetch_field_direct($result, $field);
|
||||||
|
@ -1221,7 +1221,7 @@ function mysql_db_get_table_count($sql, $search_history_db = false) {
|
||||||
|
|
||||||
// Connect to the history DB
|
// Connect to the history DB
|
||||||
if (! isset ($config['history_db_connection']) || $config['history_db_connection'] === false) {
|
if (! isset ($config['history_db_connection']) || $config['history_db_connection'] === false) {
|
||||||
if ($config["mysqli"] === true) {
|
if ($config["mysqli"]) {
|
||||||
$config['history_db_connection'] = mysqli_connect_db ($config['history_db_host'], $config['history_db_user'], io_output_password($config['history_db_pass']), $config['history_db_name'], $config['history_db_port'], false);
|
$config['history_db_connection'] = mysqli_connect_db ($config['history_db_host'], $config['history_db_user'], io_output_password($config['history_db_pass']), $config['history_db_name'], $config['history_db_port'], false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -1272,7 +1272,7 @@ function mysql_db_process_file ($path, $handle_error = true) {
|
||||||
$query .= $sql_line;
|
$query .= $sql_line;
|
||||||
|
|
||||||
if (preg_match("/;[\040]*\$/", $sql_line)) {
|
if (preg_match("/;[\040]*\$/", $sql_line)) {
|
||||||
if ($config["mysqli"] === true) {
|
if ($config["mysqli"]) {
|
||||||
$query_result = mysqli_query($config['dbconnection'], $query);
|
$query_result = mysqli_query($config['dbconnection'], $query);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -1315,4 +1315,76 @@ function mysql_db_process_file ($path, $handle_error = true) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
// Initiates a transaction and run the queries of an sql file
|
||||||
|
// ---------------------------------------------------------------
|
||||||
|
|
||||||
|
function db_run_sql_file ($location) {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
// Load file
|
||||||
|
$commands = file_get_contents($location);
|
||||||
|
// Delete comments
|
||||||
|
$lines = explode("\n", $commands);
|
||||||
|
$commands = '';
|
||||||
|
foreach ($lines as $line) {
|
||||||
|
$line = trim($line);
|
||||||
|
if ($line && !preg_match('/^--/', $line) && !preg_match('/^\/\*/', $line)) {
|
||||||
|
$commands .= $line;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert to array
|
||||||
|
$commands = explode(";", $commands);
|
||||||
|
|
||||||
|
if ($config['mysqli']) {
|
||||||
|
$mysqli = new mysqli($config["dbhost"], $config["dbuser"], $config["dbpass"], $config["dbname"], $config["dbport"]);
|
||||||
|
|
||||||
|
// Run commands
|
||||||
|
$mysqli->query($config['dbconnection'], 'SET AUTOCOMMIT = 0');
|
||||||
|
$mysqli->query($config['dbconnection'], 'START TRANSACTION');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// Run commands
|
||||||
|
mysql_db_process_sql_begin(); // Begin transaction
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach ($commands as $command) {
|
||||||
|
if (trim($command)) {
|
||||||
|
if ($config['mysqli']) {
|
||||||
|
$result = $mysqli->query($command);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$result = mysql_query($command);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$result) {
|
||||||
|
break; // Error
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($result) {
|
||||||
|
if ($config['mysqli']) {
|
||||||
|
$mysqli->query($config['dbconnection'], 'COMMIT');
|
||||||
|
$mysqli->query($config['dbconnection'], 'SET AUTOCOMMIT = 1');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mysql_db_process_sql_commit(); // Save results
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
if ($config['mysqli']) {
|
||||||
|
$mysqli->query($config['dbconnection'], 'ROLLBACK ');
|
||||||
|
$mysqli->query($config['dbconnection'], 'SET AUTOCOMMIT = 1');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
mysql_db_process_sql_rollback(); // Undo results
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -2616,6 +2616,7 @@ function date2strftime_format($date_format) {
|
||||||
'O' => '%z',
|
'O' => '%z',
|
||||||
'T' => '%Z',
|
'T' => '%Z',
|
||||||
'%' => '%%',
|
'%' => '%%',
|
||||||
|
'G' => '%k',
|
||||||
);
|
);
|
||||||
|
|
||||||
$return = "";
|
$return = "";
|
||||||
|
@ -2666,6 +2667,46 @@ function pandora_setlocale() {
|
||||||
str_replace(array_keys($replace_locale), $replace_locale, $user_language));
|
str_replace(array_keys($replace_locale), $replace_locale, $user_language));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function update_config_token ($cfgtoken, $cfgvalue) {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
$delete = db_process_sql ("DELETE FROM tconfig WHERE token = '$cfgtoken'");
|
||||||
|
$insert = db_process_sql ("INSERT INTO tconfig (token, value) VALUES ('$cfgtoken', '$cfgvalue')");
|
||||||
|
|
||||||
|
if ($delete && $insert) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function get_number_of_mr() {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
$dir = $config["homedir"]."/extras/mr";
|
||||||
|
$mr_size = array();
|
||||||
|
|
||||||
|
if (file_exists($dir) && is_dir($dir)) {
|
||||||
|
if (is_readable($dir)) {
|
||||||
|
$files = scandir($dir); // Get all the files from the directory ordered by asc
|
||||||
|
|
||||||
|
if ($files !== false) {
|
||||||
|
$pattern = "/^\d+\.sql$/";
|
||||||
|
$sqlfiles = preg_grep($pattern, $files); // Get the name of the correct files
|
||||||
|
$pattern = "/\.sql$/";
|
||||||
|
$replacement = "";
|
||||||
|
$sqlfiles_num = preg_replace($pattern, $replacement, $sqlfiles);
|
||||||
|
|
||||||
|
foreach ($sqlfiles_num as $num) {
|
||||||
|
$mr_size[] = $num;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return $mr_size;
|
||||||
|
}
|
||||||
|
|
||||||
function remove_right_zeros ($value) {
|
function remove_right_zeros ($value) {
|
||||||
$is_decimal = explode(".", $value);
|
$is_decimal = explode(".", $value);
|
||||||
if (isset($is_decimal[1])) {
|
if (isset($is_decimal[1])) {
|
||||||
|
|
|
@ -1672,4 +1672,47 @@ function db_process_file ($path, $handle_error = true) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search for minor release files.
|
||||||
|
*
|
||||||
|
* @return bool Return if minor release is available or not
|
||||||
|
*/
|
||||||
|
function db_check_minor_relase_available () {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
$dir = $config["homedir"]."/extras/mr";
|
||||||
|
|
||||||
|
$have_minor_release = false;
|
||||||
|
|
||||||
|
if (file_exists($dir) && is_dir($dir)) {
|
||||||
|
if (is_readable($dir)) {
|
||||||
|
$files = scandir($dir); // Get all the files from the directory ordered by asc
|
||||||
|
|
||||||
|
if ($files !== false) {
|
||||||
|
$pattern = "/^\d+\.sql$/";
|
||||||
|
$sqlfiles = preg_grep($pattern, $files); // Get the name of the correct files
|
||||||
|
$files = null;
|
||||||
|
$pattern = "/\.sql$/";
|
||||||
|
$replacement = "";
|
||||||
|
$sqlfiles_num = preg_replace($pattern, $replacement, $sqlfiles); // Get the number of the file
|
||||||
|
|
||||||
|
if ($sqlfiles_num) {
|
||||||
|
foreach ($sqlfiles_num as $sqlfile_num) {
|
||||||
|
if ($config["MR"] < $sqlfile_num) {
|
||||||
|
$have_minor_release = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($have_minor_release) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
?>
|
?>
|
|
@ -581,7 +581,7 @@ function groups_get_status ($id_group = 0, $strict_user = false) {
|
||||||
$data['agent_unknown'] = $groups_status['_agents_unknown_'];
|
$data['agent_unknown'] = $groups_status['_agents_unknown_'];
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$data = reporting_get_group_stats($id_group);
|
$data = reporting_get_group_stats_resume($id_group);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($data['monitor_alerts_fired'] > 0) {
|
if ($data['monitor_alerts_fired'] > 0) {
|
||||||
|
|
|
@ -819,7 +819,7 @@ function html_print_extended_select_for_time ($name, $selected = '',
|
||||||
*
|
*
|
||||||
* @return string HTML code if return parameter is true.
|
* @return string HTML code if return parameter is true.
|
||||||
*/
|
*/
|
||||||
function html_print_extended_select_for_cron ($hour = '*', $minute = '*', $mday = '*', $month = '*', $wday = '*', $return = false, $disabled = false) {
|
function html_print_extended_select_for_cron ($hour = '*', $minute = '*', $mday = '*', $month = '*', $wday = '*', $return = false, $disabled = false, $to = false) {
|
||||||
|
|
||||||
# Hours
|
# Hours
|
||||||
for ($i = 0; $i < 24; $i++) {
|
for ($i = 0; $i < 24; $i++) {
|
||||||
|
@ -862,11 +862,20 @@ function html_print_extended_select_for_cron ($hour = '*', $minute = '*', $mday
|
||||||
$table->head[3] = __('Month');
|
$table->head[3] = __('Month');
|
||||||
$table->head[4] = __('Week day');
|
$table->head[4] = __('Week day');
|
||||||
|
|
||||||
$table->data[0][0] = html_print_select ($hours, 'hour', $hour, '', __('Any'), '*', true, false, false,'',$disabled);
|
if ($to) {
|
||||||
$table->data[0][1] = html_print_select ($minutes, 'minute', $minute, '', __('Any'), '*', true, false, false,'',$disabled);
|
$table->data[0][0] = html_print_select ($hours, 'hour_to', $hour, '', __('Any'), '*', true, false, false,'',$disabled);
|
||||||
$table->data[0][2] = html_print_select ($mdays, 'mday', $mday, '', __('Any'), '*', true, false, false,'',$disabled);
|
$table->data[0][1] = html_print_select ($minutes, 'minute_to', $minute, '', __('Any'), '*', true, false, false,'',$disabled);
|
||||||
$table->data[0][3] = html_print_select ($months, 'month', $month, '', __('Any'), '*', true, false, false,'',$disabled);
|
$table->data[0][2] = html_print_select ($mdays, 'mday_to', $mday, '', __('Any'), '*', true, false, false,'',$disabled);
|
||||||
$table->data[0][4] = html_print_select ($wdays, 'wday', $wday, '', __('Any'), '*', true, false, false,'',$disabled);
|
$table->data[0][3] = html_print_select ($months, 'month_to', $month, '', __('Any'), '*', true, false, false,'',$disabled);
|
||||||
|
$table->data[0][4] = html_print_select ($wdays, 'wday_to', $wday, '', __('Any'), '*', true, false, false,'',$disabled);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$table->data[0][0] = html_print_select ($hours, 'hour_from', $hour, '', __('Any'), '*', true, false, false,'',$disabled);
|
||||||
|
$table->data[0][1] = html_print_select ($minutes, 'minute_from', $minute, '', __('Any'), '*', true, false, false,'',$disabled);
|
||||||
|
$table->data[0][2] = html_print_select ($mdays, 'mday_from', $mday, '', __('Any'), '*', true, false, false,'',$disabled);
|
||||||
|
$table->data[0][3] = html_print_select ($months, 'month_from', $month, '', __('Any'), '*', true, false, false,'',$disabled);
|
||||||
|
$table->data[0][4] = html_print_select ($wdays, 'wday_from', $wday, '', __('Any'), '*', true, false, false,'',$disabled);
|
||||||
|
}
|
||||||
|
|
||||||
return html_print_table ($table, $return);
|
return html_print_table ($table, $return);
|
||||||
}
|
}
|
||||||
|
|
|
@ -231,7 +231,7 @@ function modules_copy_agent_module_to_agent ($id_agent_module, $id_destiny_agent
|
||||||
|
|
||||||
if ($module['id_modulo'] == MODULE_DATA) {
|
if ($module['id_modulo'] == MODULE_DATA) {
|
||||||
if (enterprise_installed()) {
|
if (enterprise_installed()) {
|
||||||
if (enterprise_hook('config_agents_has_remote_configuration',$id_agente)) {
|
if (enterprise_hook('config_agents_has_remote_configuration',array($id_agente))) {
|
||||||
$result = enterprise_hook(
|
$result = enterprise_hook(
|
||||||
'config_agents_copy_agent_module_to_agent',
|
'config_agents_copy_agent_module_to_agent',
|
||||||
array($id_agent_module, $id_new_module));
|
array($id_agent_module, $id_new_module));
|
||||||
|
|
|
@ -295,6 +295,7 @@ function netflow_data_table ($data, $start_date, $end_date, $aggregate, $unit) {
|
||||||
foreach ($data['sources'] as $source => $null) {
|
foreach ($data['sources'] as $source => $null) {
|
||||||
$table->style[$j+1] = 'padding: 4px';
|
$table->style[$j+1] = 'padding: 4px';
|
||||||
$table->align[$j+1] = "right";
|
$table->align[$j+1] = "right";
|
||||||
|
$table->headstyle[$j+1] = 'text-align: right;';
|
||||||
$table->head[$j+1] = $source;
|
$table->head[$j+1] = $source;
|
||||||
$source_index[$j] = $source;
|
$source_index[$j] = $source;
|
||||||
$source_count++;
|
$source_count++;
|
||||||
|
|
|
@ -448,6 +448,7 @@ function networkmap_links_to_js_links($relations, $nodes_graph) {
|
||||||
enterprise_include_once('include/functions_pandora_networkmap.php');
|
enterprise_include_once('include/functions_pandora_networkmap.php');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$count = 0;
|
||||||
foreach ($relations as $key => $relation) {
|
foreach ($relations as $key => $relation) {
|
||||||
if (($relation['parent_type'] == 1) && ($relation['child_type'] == 1)) {
|
if (($relation['parent_type'] == 1) && ($relation['child_type'] == 1)) {
|
||||||
$id_target_agent = agents_get_agent_id_by_module_id($relation['id_parent_source_data']);
|
$id_target_agent = agents_get_agent_id_by_module_id($relation['id_parent_source_data']);
|
||||||
|
@ -471,6 +472,8 @@ function networkmap_links_to_js_links($relations, $nodes_graph) {
|
||||||
}
|
}
|
||||||
|
|
||||||
$item = array();
|
$item = array();
|
||||||
|
$item['id'] = $count;
|
||||||
|
$count++;
|
||||||
if (enterprise_installed()) {
|
if (enterprise_installed()) {
|
||||||
$item['id_db'] = get_relation_id($relation);
|
$item['id_db'] = get_relation_id($relation);
|
||||||
}
|
}
|
||||||
|
|
|
@ -500,6 +500,12 @@ function reporting_make_reporting_data($report = null, $id_report,
|
||||||
$force_width_chart,
|
$force_width_chart,
|
||||||
$force_height_chart);
|
$force_height_chart);
|
||||||
break;
|
break;
|
||||||
|
case 'module_histogram_graph':
|
||||||
|
$report['contents'][] = reporting_enterprise_module_histogram_graph(
|
||||||
|
$report,
|
||||||
|
$content,
|
||||||
|
$pdf);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5258,7 +5264,12 @@ function reporting_availability_graph($report, $content, $pdf=false) {
|
||||||
}
|
}
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
$data['sla_value'] = ($data['time_ok']/($data['time_ok']+$data['time_error']))*100;
|
if (($data['time_ok']+$data['time_error']) > 0 ) {
|
||||||
|
$data['sla_value'] = ($data['time_ok']/($data['time_ok']+$data['time_error']))*100;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$data['sla_value'] = 0;
|
||||||
|
}
|
||||||
$data['sla_fixed'] = sla_truncate($data['sla_value'], $config['graph_precision'] );
|
$data['sla_fixed'] = sla_truncate($data['sla_value'], $config['graph_precision'] );
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
|
@ -6726,22 +6737,104 @@ function reporting_get_group_stats_resume ($id_group = 0, $access = 'AR') {
|
||||||
else {
|
else {
|
||||||
|
|
||||||
if (!empty($id_group)) {
|
if (!empty($id_group)) {
|
||||||
|
//check tags for user
|
||||||
|
$tags = db_get_value("tags", "tusuario_perfil", "id_usuario" , $config['id_user']);
|
||||||
|
if($tags){
|
||||||
|
$tags_sql = " AND tae.id_agente_modulo IN ( SELECT id_agente_modulo
|
||||||
|
FROM ttag_module
|
||||||
|
WHERE id_tag IN ($tags) ) ";
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$tags_sql = "";
|
||||||
|
}
|
||||||
|
|
||||||
|
if(is_array($id_group)){
|
||||||
|
$id_group = implode("," , $id_group);
|
||||||
|
}
|
||||||
|
|
||||||
|
//for stats modules
|
||||||
$sql = "SELECT tg.id_grupo as id, tg.nombre as name,
|
$sql = "SELECT tg.id_grupo as id, tg.nombre as name,
|
||||||
SUM(ta.normal_count) as monitor_ok,
|
SUM(tae.estado=0) as monitor_ok,
|
||||||
SUM(ta.warning_count) as monitor_warning,
|
SUM(tae.estado=1) as monitor_critical,
|
||||||
SUM(ta.critical_count) as monitor_critical,
|
SUM(tae.estado=2) as monitor_warning,
|
||||||
SUM(ta.unknown_count) as monitor_unknown,
|
SUM(tae.estado=3) as monitor_unknown,
|
||||||
SUM(ta.notinit_count) as monitor_not_init,
|
SUM(tae.estado=4) as monitor_not_init,
|
||||||
count(ta.nombre) as total_agents
|
COUNT(tae.estado) as monitor_total
|
||||||
FROM tagente ta, tgrupo tg
|
|
||||||
WHERE tg.id_grupo = ta.id_grupo
|
|
||||||
AND ta.id_grupo = ". $id_group ."
|
|
||||||
GROUP BY ta.id_grupo;";
|
|
||||||
|
|
||||||
|
FROM
|
||||||
|
tagente_estado tae,
|
||||||
|
tagente ta,
|
||||||
|
tagente_modulo tam,
|
||||||
|
tgrupo tg
|
||||||
|
|
||||||
|
WHERE 1=1
|
||||||
|
AND tae.id_agente = ta.id_agente
|
||||||
|
AND tae.id_agente_modulo = tam.id_agente_modulo
|
||||||
|
AND ta.id_grupo = tg.id_grupo
|
||||||
|
AND tam.disabled = 0
|
||||||
|
AND ta.disabled = 0
|
||||||
|
AND ta.id_grupo IN ($id_group) $tags_sql
|
||||||
|
GROUP BY tg.id_grupo;";
|
||||||
$data_array = db_get_all_rows_sql($sql);
|
$data_array = db_get_all_rows_sql($sql);
|
||||||
|
|
||||||
$data = $data_array[0];
|
$data = $data_array[0];
|
||||||
|
|
||||||
|
// Get alerts configured, except disabled
|
||||||
|
$data["monitor_alerts"] += groups_monitor_alerts ($group_array) ;
|
||||||
|
|
||||||
|
// Get alert configured currently FIRED, except disabled
|
||||||
|
$data["monitor_alerts_fired"] += groups_monitor_fired_alerts ($group_array);
|
||||||
|
|
||||||
|
//for stats agents
|
||||||
|
$sql = "SELECT tae.id_agente id_agente, tg.id_grupo id_grupo,
|
||||||
|
SUM(tae.estado=0) as monitor_agent_ok,
|
||||||
|
SUM(tae.estado=1) as monitor_agent_critical,
|
||||||
|
SUM(tae.estado=2) as monitor_agent_warning,
|
||||||
|
SUM(tae.estado=3) as monitor_agent_unknown,
|
||||||
|
SUM(tae.estado=4) as monitor_agent_not_init,
|
||||||
|
COUNT(tae.estado) as monitor_agent_total
|
||||||
|
|
||||||
|
FROM
|
||||||
|
tagente_estado tae,
|
||||||
|
tagente ta,
|
||||||
|
tagente_modulo tam,
|
||||||
|
tgrupo tg
|
||||||
|
|
||||||
|
WHERE 1=1
|
||||||
|
AND tae.id_agente = ta.id_agente
|
||||||
|
AND tae.id_agente_modulo = tam.id_agente_modulo
|
||||||
|
AND ta.id_grupo = tg.id_grupo
|
||||||
|
AND tam.disabled = 0
|
||||||
|
AND ta.disabled = 0
|
||||||
|
AND ta.id_grupo IN ($id_group) $tags_sql
|
||||||
|
GROUP BY tae.id_agente;";
|
||||||
|
$data_array_2 = db_get_all_rows_sql($sql);
|
||||||
|
|
||||||
|
if (is_array($data_array_2) || is_object($data_array_2)){
|
||||||
|
foreach ($data_array_2 as $key => $value) {
|
||||||
|
if($value['monitor_agent_critical'] != 0){
|
||||||
|
$data['agent_critical'] ++;
|
||||||
|
}
|
||||||
|
elseif($value['monitor_agent_critical'] == 0 && $value['monitor_agent_warning'] != 0){
|
||||||
|
$data['agent_warning'] ++;
|
||||||
|
}
|
||||||
|
elseif($value['monitor_agent_critical'] == 0 && $value['monitor_agent_warning'] == 0 &&
|
||||||
|
$value['monitor_agent_unknown'] != 0){
|
||||||
|
$data['agent_unknown'] ++;
|
||||||
|
}
|
||||||
|
elseif($value['monitor_agent_critical'] == 0 && $value['monitor_agent_warning'] == 0 &&
|
||||||
|
$value['monitor_agent_unknown'] == 0 && $value['monitor_agent_ok'] != 0){
|
||||||
|
$data['agent_ok'] ++;
|
||||||
|
}
|
||||||
|
elseif($value['monitor_agent_critical'] == 0 && $value['monitor_agent_warning'] == 0 &&
|
||||||
|
$value['monitor_agent_unknown'] == 0 && $value['monitor_agent_ok'] == 0 &&
|
||||||
|
$value['monitor_agent_not_init'] != 0){
|
||||||
|
$data['agent_not_init'] ++;
|
||||||
|
}
|
||||||
|
$data['total_agents'] ++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get total count of monitors for this group, except disabled.
|
// Get total count of monitors for this group, except disabled.
|
||||||
$data["monitor_checks"] = $data["monitor_not_init"] + $data["monitor_unknown"] + $data["monitor_warning"] + $data["monitor_critical"] + $data["monitor_ok"];
|
$data["monitor_checks"] = $data["monitor_not_init"] + $data["monitor_unknown"] + $data["monitor_warning"] + $data["monitor_critical"] + $data["monitor_ok"];
|
||||||
|
|
||||||
|
@ -10244,6 +10337,7 @@ function reporting_label_macro ($item, $label) {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'simple_graph':
|
case 'simple_graph':
|
||||||
|
case 'module_histogram_graph':
|
||||||
case 'custom_graph':
|
case 'custom_graph':
|
||||||
case 'simple_baseline_graph':
|
case 'simple_baseline_graph':
|
||||||
case 'event_report_module':
|
case 'event_report_module':
|
||||||
|
|
|
@ -318,6 +318,9 @@ function reporting_html_print_report($report, $mini = false, $report_info = 1) {
|
||||||
case 'SLA_services':
|
case 'SLA_services':
|
||||||
reporting_enterprise_html_SLA_services($table, $item, $mini);
|
reporting_enterprise_html_SLA_services($table, $item, $mini);
|
||||||
break;
|
break;
|
||||||
|
case 'module_histogram_graph':
|
||||||
|
reporting_enterprise_html_module_histogram_graph($table, $item, $mini);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($item['type'] == 'agent_module')
|
if ($item['type'] == 'agent_module')
|
||||||
|
|
|
@ -522,7 +522,8 @@ function reports_get_report_types ($template = false, $not_editor = false) {
|
||||||
$types['availability_graph'] = array('optgroup' => __('Graphs'),
|
$types['availability_graph'] = array('optgroup' => __('Graphs'),
|
||||||
'name' => __('Availability graph'));
|
'name' => __('Availability graph'));
|
||||||
|
|
||||||
|
$types['module_histogram_graph'] = array('optgroup' => __('Graphs'),
|
||||||
|
'name' => __('Module Histogram graph'));
|
||||||
|
|
||||||
$types['TTRT'] = array('optgroup' => __('ITIL'),
|
$types['TTRT'] = array('optgroup' => __('ITIL'),
|
||||||
'name' => __('TTRT'));
|
'name' => __('TTRT'));
|
||||||
|
|
|
@ -615,20 +615,20 @@ function ui_print_group_icon_path ($id_group, $return = false, $path = "images/g
|
||||||
*/
|
*/
|
||||||
function ui_print_os_icon ($id_os, $name = true, $return = false,
|
function ui_print_os_icon ($id_os, $name = true, $return = false,
|
||||||
$apply_skin = true, $networkmap = false, $only_src = false,
|
$apply_skin = true, $networkmap = false, $only_src = false,
|
||||||
$relative = false, $options = false) {
|
$relative = false, $options = false, $big_icons = false) {
|
||||||
|
|
||||||
|
$subfolder = 'os_icons';
|
||||||
|
|
||||||
$subfolter = 'os_icons';
|
|
||||||
if ($networkmap) {
|
if ($networkmap) {
|
||||||
$subfolter = 'networkmap';
|
$subfolder = 'networkmap';
|
||||||
}
|
}
|
||||||
|
if ($big_icons)
|
||||||
|
$subfolder .= '/so_big_icons';
|
||||||
|
|
||||||
$icon = (string) db_get_value ('icon_name', 'tconfig_os', 'id_os', (int) $id_os);
|
$icon = (string) db_get_value ('icon_name', 'tconfig_os', 'id_os', (int) $id_os);
|
||||||
$os_name = get_os_name ($id_os);
|
$os_name = get_os_name ($id_os);
|
||||||
if (empty ($icon)) {
|
if (empty ($icon)) {
|
||||||
if ($only_src) {
|
if ($only_src) {
|
||||||
$output = html_print_image("images/" . $subfolter . "/unknown.png",
|
$output = html_print_image("images/" . $subfolder . "/unknown.png",
|
||||||
true, $options, true, $relative, false, true);
|
true, $options, true, $relative, false, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -637,18 +637,18 @@ function ui_print_os_icon ($id_os, $name = true, $return = false,
|
||||||
}
|
}
|
||||||
else if ($apply_skin) {
|
else if ($apply_skin) {
|
||||||
if ($only_src) {
|
if ($only_src) {
|
||||||
$output = html_print_image("images/" . $subfolter . "/" . $icon, true, $options, true, $relative, false, true);
|
$output = html_print_image("images/" . $subfolder . "/" . $icon, true, $options, true, $relative, false, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (!isset($options['title'])) {
|
if (!isset($options['title'])) {
|
||||||
$options['title'] = $os_name;
|
$options['title'] = $os_name;
|
||||||
}
|
}
|
||||||
$output = html_print_image("images/" . $subfolter . "/" . $icon, true, $options, false, $relative, false, true);
|
$output = html_print_image("images/" . $subfolder . "/" . $icon, true, $options, false, $relative, false, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
//$output = "<img src='images/os_icons/" . $icon . "' alt='" . $os_name . "' title='" . $os_name . "'>";
|
//$output = "<img src='images/os_icons/" . $icon . "' alt='" . $os_name . "' title='" . $os_name . "'>";
|
||||||
$output = "images/" . $subfolter . "/" . $icon;
|
$output = "images/" . $subfolder . "/" . $icon;
|
||||||
|
|
||||||
if ($name === true) {
|
if ($name === true) {
|
||||||
$output .= ' ' . $os_name;
|
$output .= ' ' . $os_name;
|
||||||
|
|
|
@ -273,17 +273,29 @@ if (empty($colors)) {
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($colors as $i => $color) {
|
foreach ($colors as $i => $color) {
|
||||||
$rgb['border'] = html_html2rgb($color['border']);
|
if (isset ($color['border'])) {
|
||||||
$rgb_color[$i]['border']['R'] = $rgb['border'][0];
|
$rgb['border'] = html_html2rgb($color['border']);
|
||||||
$rgb_color[$i]['border']['G'] = $rgb['border'][1];
|
|
||||||
$rgb_color[$i]['border']['B'] = $rgb['border'][2];
|
|
||||||
|
|
||||||
$rgb['color'] = html_html2rgb($color['color']);
|
if (isset($rgb['border'])) {
|
||||||
$rgb_color[$i]['color']['R'] = $rgb['color'][0];
|
$rgb_color[$i]['border']['R'] = $rgb['border'][0];
|
||||||
$rgb_color[$i]['color']['G'] = $rgb['color'][1];
|
$rgb_color[$i]['border']['G'] = $rgb['border'][1];
|
||||||
$rgb_color[$i]['color']['B'] = $rgb['color'][2];
|
$rgb_color[$i]['border']['B'] = $rgb['border'][2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$rgb_color[$i]['alpha'] = $color['alpha'];
|
if (isset ($color['color'])) {
|
||||||
|
$rgb['color'] = html_html2rgb($color['color']);
|
||||||
|
|
||||||
|
if (isset($rgb['color'])) {
|
||||||
|
$rgb_color[$i]['color']['R'] = $rgb['color'][0];
|
||||||
|
$rgb_color[$i]['color']['G'] = $rgb['color'][1];
|
||||||
|
$rgb_color[$i]['color']['B'] = $rgb['color'][2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isset ($color['alpha'])) {
|
||||||
|
$rgb_color[$i]['alpha'] = $color['alpha'];
|
||||||
|
}
|
||||||
}
|
}
|
||||||
//add for report with max 15 modules comparation repeat
|
//add for report with max 15 modules comparation repeat
|
||||||
$countlegend = count($legend);
|
$countlegend = count($legend);
|
||||||
|
|
|
@ -141,19 +141,37 @@ function delete_link(source_id, source_module_id, target_id, target_module_id, i
|
||||||
url: action="ajax.php",
|
url: action="ajax.php",
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data['correct']) {
|
if (data['correct']) {
|
||||||
do {
|
var found = -1;
|
||||||
found = -1;
|
|
||||||
|
|
||||||
jQuery.each(graph.links, function(i, element) {
|
jQuery.each(graph.links, function(i, element) {
|
||||||
if ((element.source.id_db == source_id)
|
if (element.id_db == id_link) {
|
||||||
&& (element.target.id_db == target_id)) {
|
found = i;
|
||||||
found = i;
|
}
|
||||||
}
|
});
|
||||||
});
|
if (found != -1) {
|
||||||
if (found != -1)
|
graph.links.splice(found, 1);
|
||||||
graph.links.splice(found, 1);
|
|
||||||
}
|
}
|
||||||
while (found != -1);
|
|
||||||
|
$("#layer_graph_links_" + networkmap_id).remove();
|
||||||
|
$("#layer_graph_nodes_" + networkmap_id).remove();
|
||||||
|
|
||||||
|
window.layer_graph_links = window.layer_graph
|
||||||
|
.append("g")
|
||||||
|
.attr("id", "layer_graph_links_" + networkmap_id);
|
||||||
|
window.layer_graph_nodes = window.layer_graph
|
||||||
|
.append("g")
|
||||||
|
.attr("id", "layer_graph_nodes_" + networkmap_id);
|
||||||
|
|
||||||
|
force.nodes(graph.nodes)
|
||||||
|
.links(graph.links)
|
||||||
|
.start();
|
||||||
|
|
||||||
|
window.node = layer_graph_nodes.selectAll(".node");
|
||||||
|
window.link = layer_graph_links.selectAll(".link");
|
||||||
|
|
||||||
|
draw_elements_graph();
|
||||||
|
init_drag_and_drop();
|
||||||
|
set_positions_graph();
|
||||||
|
|
||||||
draw_elements_graph();
|
draw_elements_graph();
|
||||||
set_positions_graph();
|
set_positions_graph();
|
||||||
|
@ -163,6 +181,7 @@ function delete_link(source_id, source_module_id, target_id, target_module_id, i
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
else {
|
else {
|
||||||
do {
|
do {
|
||||||
found = -1;
|
found = -1;
|
||||||
|
@ -181,7 +200,7 @@ function delete_link(source_id, source_module_id, target_id, target_module_id, i
|
||||||
draw_elements_graph();
|
draw_elements_graph();
|
||||||
set_positions_graph();
|
set_positions_graph();
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_fictional_node(id_db_node) {
|
function update_fictional_node(id_db_node) {
|
||||||
|
@ -483,6 +502,8 @@ function update_link(row_index, id_link) {
|
||||||
params.push("id_link=" + id_link);
|
params.push("id_link=" + id_link);
|
||||||
params.push("interface_source=" + interface_source);
|
params.push("interface_source=" + interface_source);
|
||||||
params.push("interface_target=" + interface_target);
|
params.push("interface_target=" + interface_target);
|
||||||
|
params.push("source_text=" + text_source_interface);
|
||||||
|
params.push("target_text=" + text_target_interface);
|
||||||
params.push("page=enterprise/operation/agentes/pandora_networkmap.view");
|
params.push("page=enterprise/operation/agentes/pandora_networkmap.view");
|
||||||
|
|
||||||
jQuery.ajax ({
|
jQuery.ajax ({
|
||||||
|
@ -501,116 +522,70 @@ function update_link(row_index, id_link) {
|
||||||
$("select[name='interface_target_" + row_index + "'] option[value='" + interface_target + "']")
|
$("select[name='interface_target_" + row_index + "'] option[value='" + interface_target + "']")
|
||||||
.prop("selected", true);
|
.prop("selected", true);
|
||||||
|
|
||||||
if (interface_source == 0) {
|
var id = "";
|
||||||
jQuery.each(graph.links, function(i, link_each) {
|
var index = -1;
|
||||||
if (link_each.id_db == id_link) {
|
$.each(graph.links, function(j, link) {
|
||||||
//Found
|
if (link['id_db'] == id_link) {
|
||||||
graph.links[i].arrow_start = "";
|
index = j;
|
||||||
graph.links[i].arrow_start = "";
|
id = String(id_link);
|
||||||
graph.links[i].text_start = text_source_interface;
|
}
|
||||||
|
});
|
||||||
|
|
||||||
//Remove the arrow
|
delete_link_from_id(index);
|
||||||
$("#link_id_" + id_link)
|
|
||||||
.attr("marker-start", "");
|
|
||||||
|
|
||||||
$("tspan")
|
var temp_link = {};
|
||||||
.filter(function() {
|
temp_link["id_db"] = String(data['id_db_link']);
|
||||||
var textPath = $(this).parent();
|
if (data['type_source'] == 1) {
|
||||||
if ($(textPath).attr('href') == "#link_id_" + id_link)
|
temp_link["arrow_start"] = "module";
|
||||||
return true;
|
temp_link["id_module_start"] = interface_source;
|
||||||
else return false;
|
|
||||||
})
|
|
||||||
.html(Array(25).join(" ") + text_source_interface);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
jQuery.each(graph.links, function(i, link_each) {
|
temp_link["arrow_start"] = "";
|
||||||
if (link_each.id_db == id_link) {
|
temp_link["id_agent_start"] = interface_source;
|
||||||
//Found
|
temp_link["id_module_start"] = 0;
|
||||||
if (link_each.arrow_start == "") {
|
|
||||||
graph.links[i].id_db = data['id_link_change'];
|
|
||||||
}
|
|
||||||
|
|
||||||
graph.links[i].arrow_start = "module";
|
|
||||||
graph.links[i].id_module_start = interface_source;
|
|
||||||
graph.links[i].text_start = text_source_interface;
|
|
||||||
|
|
||||||
//Added th arrow
|
|
||||||
$("#link_id_" + id_link)
|
|
||||||
.attr("marker-start",
|
|
||||||
"url(#interface_start_1)");
|
|
||||||
|
|
||||||
$("tspan")
|
|
||||||
.filter(function() {
|
|
||||||
var textPath = $(this).parent();
|
|
||||||
|
|
||||||
if ($(textPath).attr('href') == "#link_id_" + id_link)
|
|
||||||
return true;
|
|
||||||
else return false;
|
|
||||||
})
|
|
||||||
.html(Array(25).join(" ") + text_source_interface);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
if (data['type_target'] == 1) {
|
||||||
if (interface_target == 0) {
|
temp_link["arrow_end"] = "module";
|
||||||
jQuery.each(graph.links, function(i, link_each) {
|
temp_link["id_module_end"] = interface_target;
|
||||||
if (link_each.id_db == id_link) {
|
|
||||||
//Found
|
|
||||||
graph.links[i].arrow_end = "";
|
|
||||||
graph.links[i].id_module_end = 0;
|
|
||||||
graph.links[i].text_end = text_target_interface;
|
|
||||||
|
|
||||||
//Remove the arrow
|
|
||||||
$("#link_id_" + id_link)
|
|
||||||
.attr("marker-end", "");
|
|
||||||
|
|
||||||
$("tspan")
|
|
||||||
.filter(function() {
|
|
||||||
var textPath = $(this).parent();
|
|
||||||
|
|
||||||
if ($(textPath).attr('href') == "#link_reverse_id_" + id_link)
|
|
||||||
return true;
|
|
||||||
else return false;
|
|
||||||
})
|
|
||||||
.html(Array(25).join(" ") + text_target_interface);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
jQuery.each(graph.links, function(i, link_each) {
|
temp_link["arrow_end"] = "";
|
||||||
if (link_each.id_db == id_link) {
|
temp_link["id_agent_end"] = interface_target;
|
||||||
|
temp_link["id_module_end"] = 0;
|
||||||
//Found
|
|
||||||
|
|
||||||
if (link_each.arrow_end == "") {
|
|
||||||
graph.links[i].id_db = data['id_link_change'];
|
|
||||||
}
|
|
||||||
|
|
||||||
graph.links[i].arrow_end = "module";
|
|
||||||
graph.links[i].id_module_end = interface_target;
|
|
||||||
graph.links[i].text_end = text_target_interface;
|
|
||||||
|
|
||||||
//Added th arrow
|
|
||||||
$("#link_id_" + id_link)
|
|
||||||
.attr("marker-end",
|
|
||||||
"url(#interface_end_1)");
|
|
||||||
|
|
||||||
$("tspan")
|
|
||||||
.filter(function() {
|
|
||||||
var textPath = $(this).parent();
|
|
||||||
|
|
||||||
if ($(textPath).attr('href') == "#link_reverse_id_" + id_link)
|
|
||||||
return true;
|
|
||||||
else return false;
|
|
||||||
})
|
|
||||||
.html(Array(25).join(" ") + text_target_interface);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
temp_link["status_start"] = "0";
|
||||||
|
temp_link["status_end"] = "0";
|
||||||
|
|
||||||
|
$.each(graph.nodes, function(k, node) {
|
||||||
|
if (node['id_agent'] == data['id_db_target']) {
|
||||||
|
temp_link["target"] = graph.nodes[k];
|
||||||
|
}
|
||||||
|
if (node['id_agent'] == data['id_db_source']) {
|
||||||
|
temp_link["source"] = graph.nodes[k];
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
add_new_link(temp_link);
|
||||||
|
|
||||||
|
$("#layer_graph_links_" + networkmap_id).remove();
|
||||||
|
$("#layer_graph_nodes_" + networkmap_id).remove();
|
||||||
|
|
||||||
|
window.layer_graph_links = window.layer_graph
|
||||||
|
.append("g")
|
||||||
|
.attr("id", "layer_graph_links_" + networkmap_id);
|
||||||
|
window.layer_graph_nodes = window.layer_graph
|
||||||
|
.append("g")
|
||||||
|
.attr("id", "layer_graph_nodes_" + networkmap_id);
|
||||||
|
|
||||||
|
force.nodes(graph.nodes)
|
||||||
|
.links(graph.links)
|
||||||
|
.start();
|
||||||
|
|
||||||
|
window.node = layer_graph_nodes.selectAll(".node");
|
||||||
|
window.link = layer_graph_links.selectAll(".link");
|
||||||
|
|
||||||
draw_elements_graph();
|
draw_elements_graph();
|
||||||
|
init_drag_and_drop();
|
||||||
set_positions_graph();
|
set_positions_graph();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -620,6 +595,14 @@ function update_link(row_index, id_link) {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function delete_link_from_id (index) {
|
||||||
|
graph.links.splice(index, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
function add_new_link (new_link) {
|
||||||
|
graph.links.push(new_link);
|
||||||
|
}
|
||||||
|
|
||||||
function edit_node(data, dblClick) {
|
function edit_node(data, dblClick) {
|
||||||
if (enterprise_installed) {
|
if (enterprise_installed) {
|
||||||
var flag_edit_node = true;
|
var flag_edit_node = true;
|
||||||
|
@ -661,7 +644,7 @@ function edit_node(data, dblClick) {
|
||||||
$("#node_options-fictional_node_update_button-1 input")
|
$("#node_options-fictional_node_update_button-1 input")
|
||||||
.attr("onclick", "update_fictional_node(" + data.id_db + ");");
|
.attr("onclick", "update_fictional_node(" + data.id_db + ");");
|
||||||
|
|
||||||
$("#node_details-0-1").html(data["text"]);
|
$("#node_details-0-1").html('<a href="index.php?sec=estado&sec2=operation/agentes/ver_agente&id_agente=' + data["id_agent"] + '">' + data["text"] + '</a>');
|
||||||
var params = [];
|
var params = [];
|
||||||
params.push("get_agent_info=1");
|
params.push("get_agent_info=1");
|
||||||
params.push("id_agent=" + data["id_agent"]);
|
params.push("id_agent=" + data["id_agent"]);
|
||||||
|
@ -671,7 +654,6 @@ function edit_node(data, dblClick) {
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: action="ajax.php",
|
url: action="ajax.php",
|
||||||
async: false,
|
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
var adressess = "";
|
var adressess = "";
|
||||||
for (adress in data['adressess']) {
|
for (adress in data['adressess']) {
|
||||||
|
@ -694,7 +676,6 @@ function edit_node(data, dblClick) {
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: action="ajax.php",
|
url: action="ajax.php",
|
||||||
async: false,
|
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data.length == 0) {
|
if (data.length == 0) {
|
||||||
$("#interface_information").find('tbody')
|
$("#interface_information").find('tbody')
|
||||||
|
@ -786,8 +767,10 @@ function edit_node(data, dblClick) {
|
||||||
.attr('class', "edit_icon_fail_" + i);
|
.attr('class', "edit_icon_fail_" + i);
|
||||||
$(".edit_icon_link", template_relation_row)
|
$(".edit_icon_link", template_relation_row)
|
||||||
.attr('class', "edit_icon_link_" + i)
|
.attr('class', "edit_icon_link_" + i)
|
||||||
.attr('href', 'javascript: update_link(' + i + "," + link_each.id_db + ');');
|
.click(function() {
|
||||||
|
update_link(i, link_each.id_db);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
var params = [];
|
var params = [];
|
||||||
params.push("get_intefaces=1");
|
params.push("get_intefaces=1");
|
||||||
|
@ -799,9 +782,10 @@ function edit_node(data, dblClick) {
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: action="ajax.php",
|
url: action="ajax.php",
|
||||||
async: false,
|
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data['correct']) {
|
if (data['correct']) {
|
||||||
|
$("select[name='interface_source_" + i + "']", template_relation_row).empty();
|
||||||
|
$("select[name='interface_source_" + i + "']", template_relation_row).append('<option value="' + link_each.source.id_agent + '">None</option>');
|
||||||
jQuery.each(data['interfaces'], function(j, interface) {
|
jQuery.each(data['interfaces'], function(j, interface) {
|
||||||
|
|
||||||
$("select[name='interface_source_" + i + "']", template_relation_row)
|
$("select[name='interface_source_" + i + "']", template_relation_row)
|
||||||
|
@ -828,11 +812,11 @@ function edit_node(data, dblClick) {
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
type: 'POST',
|
type: 'POST',
|
||||||
url: action="ajax.php",
|
url: action="ajax.php",
|
||||||
async: false,
|
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data['correct']) {
|
if (data['correct']) {
|
||||||
|
$("select[name='interface_target_" + i + "']", template_relation_row).empty();
|
||||||
|
$("select[name='interface_target_" + i + "']", template_relation_row).append('<option value="' + link_each.target.id_agent + '">None</option>');
|
||||||
jQuery.each(data['interfaces'], function(j, interface) {
|
jQuery.each(data['interfaces'], function(j, interface) {
|
||||||
|
|
||||||
$("select[name='interface_target_" + i + "']", template_relation_row)
|
$("select[name='interface_target_" + i + "']", template_relation_row)
|
||||||
.append($("<option>")
|
.append($("<option>")
|
||||||
.attr("value", interface['id_agente_modulo'])
|
.attr("value", interface['id_agente_modulo'])
|
||||||
|
@ -1905,7 +1889,6 @@ function add_interface_link_js () {
|
||||||
//temp_link['text_end'] = link['text_end'];
|
//temp_link['text_end'] = link['text_end'];
|
||||||
|
|
||||||
jQuery.each(graph.nodes, function(j, node) {
|
jQuery.each(graph.nodes, function(j, node) {
|
||||||
console.log(node['id_db']);
|
|
||||||
if (node['id_agent'] == data['id_db_target']) {
|
if (node['id_agent'] == data['id_db_target']) {
|
||||||
temp_link['target'] = graph.nodes[j];
|
temp_link['target'] = graph.nodes[j];
|
||||||
}
|
}
|
||||||
|
@ -2818,7 +2801,26 @@ function draw_elements_graph() {
|
||||||
});
|
});
|
||||||
|
|
||||||
link_temp = link.enter()
|
link_temp = link.enter()
|
||||||
.append("g");
|
.append("g")
|
||||||
|
.attr("id", function(d) {
|
||||||
|
return "link_id_" + d.id_db + networkmap_id;
|
||||||
|
})
|
||||||
|
.attr("class", function(d) {
|
||||||
|
var holding_area_text = "";
|
||||||
|
if ((d.source.state == 'holding_area') ||
|
||||||
|
(d.target.state == 'holding_area')) {
|
||||||
|
|
||||||
|
holding_area_text = " holding_area_link ";
|
||||||
|
}
|
||||||
|
|
||||||
|
return "link " +
|
||||||
|
"source_" + d.source.id + networkmap_id + " " +
|
||||||
|
"target_" + d.target.id + networkmap_id + " " +
|
||||||
|
holding_area_text +
|
||||||
|
"id_module_start_" + d.id_module_start + " " +
|
||||||
|
"id_module_end_" + d.id_module_end;
|
||||||
|
});
|
||||||
|
|
||||||
link.exit().remove();
|
link.exit().remove();
|
||||||
|
|
||||||
link_temp.append("path")
|
link_temp.append("path")
|
||||||
|
@ -2937,6 +2939,7 @@ function draw_elements_graph() {
|
||||||
});
|
});
|
||||||
|
|
||||||
node = node.data(force.nodes(), function(d) { return d.id;});
|
node = node.data(force.nodes(), function(d) { return d.id;});
|
||||||
|
|
||||||
node_temp = node.enter()
|
node_temp = node.enter()
|
||||||
.append("g")
|
.append("g")
|
||||||
.attr("id", function(d) {
|
.attr("id", function(d) {
|
||||||
|
|
|
@ -214,6 +214,9 @@ $(document).ready (function () {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
$("#alert_messages").draggable();
|
||||||
|
$("#alert_messages").css({'left':+parseInt(screen.width/2)-parseInt($("#alert_messages").css('width'))/2+'px'});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
function forced_title_callback() {
|
function forced_title_callback() {
|
||||||
|
|
|
@ -359,7 +359,7 @@ function perform_response(target) {
|
||||||
dataType: 'html',
|
dataType: 'html',
|
||||||
success: function (data) {
|
success: function (data) {
|
||||||
if (data == '') {
|
if (data == '') {
|
||||||
$('#response_out').html('<i>No output</i>');
|
$('#response_out').html('<i>Unreachable host</i>');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
var out = data.replace(/[\n|\r]/g, "<br>");
|
var out = data.replace(/[\n|\r]/g, "<br>");
|
||||||
|
|
|
@ -3573,13 +3573,10 @@ div.simple_value > a > span.text p
|
||||||
-webkit-border-bottom-left-radius: 5px;
|
-webkit-border-bottom-left-radius: 5px;
|
||||||
border-bottom-right-radius: 5px;
|
border-bottom-right-radius: 5px;
|
||||||
border-bottom-left-radius: 5px;
|
border-bottom-left-radius: 5px;
|
||||||
z-index:2;
|
z-index:3;
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
-webkit-transform: translate(-50%, -50%);
|
|
||||||
position:fixed;
|
position:fixed;
|
||||||
width:650px;
|
width:650px;
|
||||||
|
top: 30%;
|
||||||
background:white;
|
background:white;
|
||||||
}
|
}
|
||||||
.modalheader{
|
.modalheader{
|
||||||
|
|
|
@ -181,6 +181,7 @@ if ($change_pass == 1) {
|
||||||
$changed_pass = login_update_password_check ($password_old, $password_new, $password_confirm, $id);
|
$changed_pass = login_update_password_check ($password_old, $password_new, $password_confirm, $id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$minor_release_message = false;
|
||||||
$searchPage = false;
|
$searchPage = false;
|
||||||
$search = get_parameter_get("head_search_keywords");
|
$search = get_parameter_get("head_search_keywords");
|
||||||
if (strlen($search) > 0) {
|
if (strlen($search) > 0) {
|
||||||
|
@ -443,6 +444,76 @@ if (! isset ($config['id_user'])) {
|
||||||
$_SESSION['id_usuario'] = $nick_in_db;
|
$_SESSION['id_usuario'] = $nick_in_db;
|
||||||
$config['id_user'] = $nick_in_db;
|
$config['id_user'] = $nick_in_db;
|
||||||
|
|
||||||
|
if (is_user_admin($config['id_user'])) {
|
||||||
|
$have_minor_releases = db_check_minor_relase_available();
|
||||||
|
|
||||||
|
// PHP configuration values
|
||||||
|
$PHPupload_max_filesize = config_return_in_bytes(ini_get('upload_max_filesize'));
|
||||||
|
$PHPmemory_limit = config_return_in_bytes(ini_get('memory_limit'));
|
||||||
|
$PHPmax_execution_time = ini_get('max_execution_time');
|
||||||
|
|
||||||
|
if ($PHPmax_execution_time !== '0') {
|
||||||
|
set_time_limit(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
$PHPupload_max_filesize_min = config_return_in_bytes('800M');
|
||||||
|
|
||||||
|
if ($PHPupload_max_filesize < $PHPupload_max_filesize_min) {
|
||||||
|
ini_set('upload_max_filesize', config_return_in_bytes('800M'));
|
||||||
|
}
|
||||||
|
|
||||||
|
$PHPmemory_limit_min = config_return_in_bytes('500M');
|
||||||
|
|
||||||
|
if ($PHPmemory_limit < $PHPmemory_limit_min && $PHPmemory_limit !== '-1') {
|
||||||
|
ini_set('memory_limit', config_return_in_bytes('500M'));
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($have_minor_releases) {
|
||||||
|
$size_mr = get_number_of_mr();
|
||||||
|
echo "<div class= 'dialog ui-dialog-content' title='".__("Minor release available")."' id='mr_dialog2'>" . __('') . "</div>";
|
||||||
|
?>
|
||||||
|
<script type="text/javascript" language="javascript">
|
||||||
|
$(document).ready (function () {;
|
||||||
|
$('#mr_dialog2').dialog ({
|
||||||
|
resizable: true,
|
||||||
|
draggable: true,
|
||||||
|
modal: true,
|
||||||
|
overlay: {
|
||||||
|
opacity: 0.5,
|
||||||
|
background: 'black'
|
||||||
|
},
|
||||||
|
width: 600,
|
||||||
|
height: 350,
|
||||||
|
buttons: {
|
||||||
|
"Apply minor releases": function () {
|
||||||
|
var n_mr = '<?php echo implode(",", $size_mr);?>';
|
||||||
|
apply_minor_release(n_mr.split(","));
|
||||||
|
},
|
||||||
|
"Cancel": function () {
|
||||||
|
$(this).dialog("close");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('button:contains(Apply minor releases)').attr("id","apply_rr_button");
|
||||||
|
$('button:contains(Cancel)').attr("id","cancel_rr_button");
|
||||||
|
|
||||||
|
var dialog_text = "<div><h3>Do you want to apply minor releases?</h3></br>";
|
||||||
|
dialog_text = dialog_text + "<h2>We recommend launch a planned downtime to this process</h2></br>";
|
||||||
|
dialog_text = dialog_text + "<a href=\"<?php echo $config['homeurl']; ?>index.php?sec=extensions&sec2=godmode/agentes/planned_downtime.list\">Planned downtimes</a></div>"
|
||||||
|
|
||||||
|
$('#mr_dialog2').html(dialog_text);
|
||||||
|
$('#mr_dialog2').dialog('open');
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
set_time_limit((int)$PHPmax_execution_time);
|
||||||
|
ini_set('upload_max_filesize', $PHPupload_max_filesize);
|
||||||
|
ini_set('memory_limit', $PHPmemory_limit);
|
||||||
|
|
||||||
//==========================================================
|
//==========================================================
|
||||||
//-------- SET THE CUSTOM CONFIGS OF USER ------------------
|
//-------- SET THE CUSTOM CONFIGS OF USER ------------------
|
||||||
|
|
||||||
|
@ -904,6 +975,47 @@ require('include/php_to_js_values.php');
|
||||||
};
|
};
|
||||||
})();
|
})();
|
||||||
|
|
||||||
|
function apply_minor_release (n_mr) {
|
||||||
|
var error = false;
|
||||||
|
$("#apply_rr_button").remove();
|
||||||
|
$("#cancel_rr_button").text("Close");
|
||||||
|
$('#mr_dialog2').empty();
|
||||||
|
$('#mr_dialog2').append("<img id=\"rr_image\" src=\"<?php echo $config['homeurl'] . 'images/spinner.gif'; ?>\">");
|
||||||
|
$.each(n_mr, function(i, mr) {
|
||||||
|
var params = {};
|
||||||
|
params["updare_rr"] = 1;
|
||||||
|
params["number"] = mr;
|
||||||
|
params["page"] = "include/ajax/rolling_release.ajax";
|
||||||
|
|
||||||
|
jQuery.ajax ({
|
||||||
|
data: params,
|
||||||
|
async: false,
|
||||||
|
dataType: "html",
|
||||||
|
type: "POST",
|
||||||
|
url: "ajax.php",
|
||||||
|
success: function (data) {
|
||||||
|
if (data != "") {
|
||||||
|
$('#mr_dialog2').empty();
|
||||||
|
$('#mr_dialog2').html("<h2>" + data + "</h2>");
|
||||||
|
error = true;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$('#mr_dialog2').append("<p>- Applying DB MR #" + mr + "</p>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (error) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$('#rr_image').remove();
|
||||||
|
|
||||||
|
if (!error) {
|
||||||
|
$('#mr_dialog2').append("<h2>Updated finished successfully</h2>");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function force_run_register () {
|
function force_run_register () {
|
||||||
run_identification_wizard (1, 0, 0);
|
run_identification_wizard (1, 0, 0);
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
<div style='height: 10px'>
|
<div style='height: 10px'>
|
||||||
<?php
|
<?php
|
||||||
$version = '7.0dev';
|
$version = '7.0dev';
|
||||||
$build = '170208';
|
$build = '170215';
|
||||||
$banner = "v$version Build $build";
|
$banner = "v$version Build $build";
|
||||||
|
|
||||||
error_reporting(0);
|
error_reporting(0);
|
||||||
|
|
|
@ -708,19 +708,19 @@ a.ui-link-inherit {
|
||||||
/* Active class used as the "on" state across all themes
|
/* Active class used as the "on" state across all themes
|
||||||
-----------------------------------------------------------------------------------------------------------*/
|
-----------------------------------------------------------------------------------------------------------*/
|
||||||
.ui-btn-active {
|
.ui-btn-active {
|
||||||
border: 1px solid #2373a5 /*{global-active-border}*/;
|
border: 1px solid #82B92E /*{global-active-border}*/;
|
||||||
background: #5393c5 /*{global-active-background-color}*/;
|
background: #5393c5 /*{global-active-background-color}*/;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
color: #fff /*{global-active-color}*/;
|
color: #fff /*{global-active-color}*/;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-shadow: 0 /*{global-active-shadow-x}*/ 1px /*{global-active-shadow-y}*/ 0 /*{global-active-shadow-radius}*/ #3373a5 /*{global-active-shadow-color}*/;
|
text-shadow: 0 /*{global-active-shadow-x}*/ 1px /*{global-active-shadow-y}*/ 0 /*{global-active-shadow-radius}*/ #82B92E /*{global-active-shadow-color}*/;
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
background-image: -webkit-gradient(linear, left top, left bottom, from( #5393c5 /*{global-active-background-start}*/), to( #6facd5 /*{global-active-background-end}*/)); /* Saf4+, Chrome */
|
background-image: -webkit-gradient(linear, left top, left bottom, from( #82B92E /*{global-active-background-start}*/), to( #82B92E /*{global-active-background-end}*/)); /* Saf4+, Chrome */
|
||||||
background-image: -webkit-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */
|
background-image: -webkit-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* Chrome 10+, Saf5.1+ */
|
||||||
background-image: -moz-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* FF3.6 */
|
background-image: -moz-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* FF3.6 */
|
||||||
background-image: -ms-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* IE10 */
|
background-image: -ms-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* IE10 */
|
||||||
background-image: -o-linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/); /* Opera 11.10+ */
|
background-image: -o-linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/); /* Opera 11.10+ */
|
||||||
background-image: linear-gradient( #5393c5 /*{global-active-background-start}*/, #6facd5 /*{global-active-background-end}*/);
|
background-image: linear-gradient( #82B92E /*{global-active-background-start}*/, #82B92E /*{global-active-background-end}*/);
|
||||||
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
|
font-family: Helvetica, Arial, sans-serif /*{global-font-family}*/;
|
||||||
}
|
}
|
||||||
.ui-btn-active:visited,
|
.ui-btn-active:visited,
|
||||||
|
@ -1042,9 +1042,9 @@ a.ui-link-inherit {
|
||||||
}
|
}
|
||||||
.ui-focus,
|
.ui-focus,
|
||||||
.ui-btn:focus {
|
.ui-btn:focus {
|
||||||
-moz-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/;
|
-moz-box-shadow: inset 0 0 3px #82B92E /*{global-active-background-color}*/, 0 0 9px #82B92E /*{global-active-background-color}*/;
|
||||||
-webkit-box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/;
|
-webkit-box-shadow: inset 0 0 3px #82B92E /*{global-active-background-color}*/, 0 0 9px #82B92E /*{global-active-background-color}*/;
|
||||||
box-shadow: inset 0 0 3px #387bbe /*{global-active-background-color}*/, 0 0 9px #387bbe /*{global-active-background-color}*/;
|
box-shadow: inset 0 0 3px #82B92E /*{global-active-background-color}*/, 0 0 9px #82B92E /*{global-active-background-color}*/;
|
||||||
}
|
}
|
||||||
.ui-input-text.ui-focus,
|
.ui-input-text.ui-focus,
|
||||||
.ui-input-search.ui-focus {
|
.ui-input-search.ui-focus {
|
||||||
|
@ -1123,10 +1123,29 @@ div.ui-mobile-viewport { overflow-x: hidden; }
|
||||||
.ui-header > .ui-btn-icon-notext,
|
.ui-header > .ui-btn-icon-notext,
|
||||||
.ui-header-fixed.ui-fixed-hidden > .ui-btn-icon-notext { top: 6px; }
|
.ui-header-fixed.ui-fixed-hidden > .ui-btn-icon-notext { top: 6px; }
|
||||||
.ui-header-fixed > .ui-btn-icon-notext { top: 7px;}
|
.ui-header-fixed > .ui-btn-icon-notext { top: 7px;}
|
||||||
.ui-header .ui-title, .ui-footer .ui-title { min-height: 1.1em; text-align: center; font-size: 16px; display: block; margin: .6em 30% .8em; padding: 0; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; outline: 0 !important; }
|
.ui-header .ui-title, .ui-footer .ui-title {
|
||||||
.ui-footer .ui-title { margin: .6em 15px .8em; }
|
min-height: 1.1em;
|
||||||
|
text-align: center;
|
||||||
|
font-size: 16px;
|
||||||
|
display: block;
|
||||||
|
margin: .6em 30% .8em;
|
||||||
|
padding: 0;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
overflow: hidden;
|
||||||
|
white-space: nowrap;
|
||||||
|
outline: 0 !important;
|
||||||
|
}
|
||||||
|
.ui-footer .ui-title {
|
||||||
|
margin: .6em 15px .8em;
|
||||||
|
}
|
||||||
|
|
||||||
/* content area*/
|
/* content area*/
|
||||||
.ui-content { border-width: 0; overflow: visible; overflow-x: hidden; padding: 15px; }
|
.ui-content {
|
||||||
|
border-width: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
overflow-x: hidden;
|
||||||
|
padding: 5px 5px 0px 5px;
|
||||||
|
}
|
||||||
/* corner styling for dialogs and popups */
|
/* corner styling for dialogs and popups */
|
||||||
.ui-corner-all > .ui-header:first-child,
|
.ui-corner-all > .ui-header:first-child,
|
||||||
.ui-corner-all > .ui-content:first-child,
|
.ui-corner-all > .ui-content:first-child,
|
||||||
|
@ -2128,7 +2147,7 @@ label.ui-submit { font-size: 16px; line-height: 1.4; font-weight: normal; margin
|
||||||
.ui-field-contain .ui-btn.ui-submit { width: 78%; display: inline-block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }
|
.ui-field-contain .ui-btn.ui-submit { width: 78%; display: inline-block; -webkit-box-sizing: border-box; -moz-box-sizing: border-box; -ms-box-sizing: border-box; box-sizing: border-box; }
|
||||||
.ui-hide-label .ui-btn.ui-submit { width: auto; display: block; }
|
.ui-hide-label .ui-btn.ui-submit { width: auto; display: block; }
|
||||||
}
|
}
|
||||||
.ui-collapsible-inset { margin: .5em 0; }
|
.ui-collapsible-inset { margin: .5em 2px 1px; width:99%;}
|
||||||
.ui-collapsible-heading { font-size: 16px; display: block; margin: 0 -15px; padding: 0; position: relative; }
|
.ui-collapsible-heading { font-size: 16px; display: block; margin: 0 -15px; padding: 0; position: relative; }
|
||||||
.ui-collapsible-inset .ui-collapsible-heading { margin: 0; }
|
.ui-collapsible-inset .ui-collapsible-heading { margin: 0; }
|
||||||
.ui-collapsible-heading .ui-btn { text-align: left; margin: 0; border-left-width: 0; border-right-width: 0; }
|
.ui-collapsible-heading .ui-btn { text-align: left; margin: 0; border-left-width: 0; border-right-width: 0; }
|
||||||
|
@ -2294,7 +2313,7 @@ label.ui-submit { font-size: 16px; line-height: 1.4; font-weight: normal; margin
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
.ui-dialog-contain > .ui-content {
|
.ui-dialog-contain > .ui-content {
|
||||||
padding: 15px;
|
padding: 5px 5px 0px 5px;
|
||||||
}
|
}
|
||||||
.ui-dialog-contain > .ui-footer {
|
.ui-dialog-contain > .ui-footer {
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
@ -3120,7 +3139,7 @@ div.ui-slider-switch.ui-mini {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/* Breakpoint to show as a standard table at 560px (25em x 16px) or wider */
|
/* Breakpoint to show as a standard table at 560px (25em x 16px) or wider */
|
||||||
@media ( min-width: 25em ) {
|
@media ( min-width: 34.99em ) {
|
||||||
/* Fixes table rendering when switching between breakpoints in Safari <= 5. See https://github.com/jquery/jquery-mobile/issues/5380 */
|
/* Fixes table rendering when switching between breakpoints in Safari <= 5. See https://github.com/jquery/jquery-mobile/issues/5380 */
|
||||||
.ui-table-reflow.ui-responsive {
|
.ui-table-reflow.ui-responsive {
|
||||||
display: table-row-group;
|
display: table-row-group;
|
||||||
|
@ -3143,7 +3162,7 @@ div.ui-slider-switch.ui-mini {
|
||||||
}
|
}
|
||||||
/* Hack to make IE9 and WP7.5 treat cells like block level elements, scoped to ui-responsive class */
|
/* Hack to make IE9 and WP7.5 treat cells like block level elements, scoped to ui-responsive class */
|
||||||
/* Applied in a max-width media query up to the table layout breakpoint so we don't need to negate this*/
|
/* Applied in a max-width media query up to the table layout breakpoint so we don't need to negate this*/
|
||||||
@media ( max-width: 25em ) {
|
@media ( max-width: 34.98em ) {
|
||||||
.ui-table-reflow.ui-responsive td,
|
.ui-table-reflow.ui-responsive td,
|
||||||
.ui-table-reflow.ui-responsive th {
|
.ui-table-reflow.ui-responsive th {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
@ -3153,6 +3172,15 @@ div.ui-slider-switch.ui-mini {
|
||||||
float: left;
|
float: left;
|
||||||
clear: left;
|
clear: left;
|
||||||
}
|
}
|
||||||
|
#list_agent_Modules.ui-table-reflow.ui-responsive td.cell_0 {
|
||||||
|
width: 52% !important;
|
||||||
|
}
|
||||||
|
#list_agent_Modules.ui-table-reflow.ui-responsive td.cell_1 {
|
||||||
|
width: 15% !important;
|
||||||
|
}
|
||||||
|
#list_agent_Modules.ui-table-reflow.ui-responsive td.cell_4 {
|
||||||
|
width: 33% !important;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
/* panel */
|
/* panel */
|
||||||
.ui-panel {
|
.ui-panel {
|
||||||
|
|
|
@ -34,6 +34,10 @@ body {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.agent_graphs, .events_bar {
|
||||||
|
padding-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
#tactical1 *, #tactical2 * {
|
#tactical1 *, #tactical2 * {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
@ -520,11 +524,32 @@ table.event_details td.cell_event_name {
|
||||||
}
|
}
|
||||||
|
|
||||||
.agent_details {
|
.agent_details {
|
||||||
line-height: 35px;
|
padding: 10px 0px 10px 0px;
|
||||||
|
}
|
||||||
|
.agent_details > img {
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
.agent_os{
|
||||||
|
float: right;
|
||||||
|
position: absolute;
|
||||||
|
top: 0px;
|
||||||
|
right: 0px;
|
||||||
|
padding: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.agent_details img {
|
.agent_list_ips {
|
||||||
float: left;
|
padding: 10px 0px 10px 0px;
|
||||||
|
}
|
||||||
|
.agent_list_ips > img {
|
||||||
|
vertical-align: middle;
|
||||||
|
width: 20px;
|
||||||
|
}
|
||||||
|
.agent_last_contact {
|
||||||
|
padding: 10px 0px 10px 0px;
|
||||||
|
}
|
||||||
|
.agent_description {
|
||||||
|
padding: 10px 0px 10px 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.agent_name {
|
.agent_name {
|
||||||
|
@ -544,8 +569,8 @@ table.event_details td.cell_event_name {
|
||||||
}
|
}
|
||||||
|
|
||||||
#list_agents td {
|
#list_agents td {
|
||||||
height: 35px;
|
height: 25px;
|
||||||
padding-top: 20px;
|
padding-top: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.agents_tiny_stats_tactical {
|
.agents_tiny_stats_tactical {
|
||||||
|
@ -554,7 +579,33 @@ table.event_details td.cell_event_name {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 25em) {
|
@media screen and (max-width: 34.99em) {
|
||||||
|
#list_agents td {
|
||||||
|
height: 35px;
|
||||||
|
padding-top: 7px;
|
||||||
|
display: table-cell;
|
||||||
|
clear: none;
|
||||||
|
padding-left: 0px !important;
|
||||||
|
padding-right: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#list_agents td.cell_0 {
|
||||||
|
width: 45%;
|
||||||
|
border-top: 0px none;
|
||||||
|
}
|
||||||
|
#list_agents td.cell_0>span.tiny>img {
|
||||||
|
width: 5px;
|
||||||
|
height: 30px;
|
||||||
|
margin-top: -6px;
|
||||||
|
margin-left: 0px;
|
||||||
|
}
|
||||||
|
#list_agents td.cell_5 {
|
||||||
|
width: 30%;
|
||||||
|
}
|
||||||
|
#list_agents td.cell_6 {
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
|
||||||
#list_agents .cell_2 .ui-table-cell-label,
|
#list_agents .cell_2 .ui-table-cell-label,
|
||||||
#list_agents .cell_3 .ui-table-cell-label,
|
#list_agents .cell_3 .ui-table-cell-label,
|
||||||
#list_agents .cell_6 .ui-table-cell-label,
|
#list_agents .cell_6 .ui-table-cell-label,
|
||||||
|
@ -572,7 +623,6 @@ table.event_details td.cell_event_name {
|
||||||
|
|
||||||
#list_agents .cell_2,
|
#list_agents .cell_2,
|
||||||
#list_agents .cell_3,
|
#list_agents .cell_3,
|
||||||
#list_agents .cell_6,
|
|
||||||
#list_agents .cell_7 {
|
#list_agents .cell_7 {
|
||||||
display: inline !important;
|
display: inline !important;
|
||||||
float: none !important;
|
float: none !important;
|
||||||
|
@ -594,7 +644,7 @@ table.event_details td.cell_event_name {
|
||||||
}
|
}
|
||||||
|
|
||||||
#list_agents .show_collapside {
|
#list_agents .show_collapside {
|
||||||
display: inline !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#list_agents .cell_1,
|
#list_agents .cell_1,
|
||||||
|
@ -605,16 +655,24 @@ table.event_details td.cell_event_name {
|
||||||
}
|
}
|
||||||
|
|
||||||
#list_agents .cell_0 .ui-link {
|
#list_agents .cell_0 .ui-link {
|
||||||
font-size: 15px;
|
font-size: 12px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#list_agents .cell_6 .show_collapside {
|
#list_agents .cell_6 .show_collapside {
|
||||||
display: inline !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.agents_tiny_stats * {
|
.agents_tiny_stats * {
|
||||||
font-size: 12px !important;
|
font-size: 12px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#list_agent_Modules td {
|
||||||
|
padding-top: 7px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.agents_tiny_stats {
|
||||||
|
float: right;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For mobiles */
|
/* For mobiles */
|
||||||
|
@ -738,7 +796,7 @@ table.event_details td.cell_event_name {
|
||||||
/*END-----------Visual maps styles---------------------------------------*/
|
/*END-----------Visual maps styles---------------------------------------*/
|
||||||
|
|
||||||
/*INIT-----------Modules styles---------------------------------------*/
|
/*INIT-----------Modules styles---------------------------------------*/
|
||||||
@media screen and (max-width: 25em) {
|
@media screen and (max-width: 34.99em) {
|
||||||
#list_Modules .cell_1 .ui-table-cell-label,
|
#list_Modules .cell_1 .ui-table-cell-label,
|
||||||
#list_Modules .cell_5 .ui-table-cell-label,
|
#list_Modules .cell_5 .ui-table-cell-label,
|
||||||
#list_Modules .cell_6 .ui-table-cell-label {
|
#list_Modules .cell_6 .ui-table-cell-label {
|
||||||
|
@ -755,7 +813,17 @@ table.event_details td.cell_event_name {
|
||||||
#list_Modules .cell_3 .ui-table-cell-label,
|
#list_Modules .cell_3 .ui-table-cell-label,
|
||||||
#list_Modules .cell_4 .ui-table-cell-label,
|
#list_Modules .cell_4 .ui-table-cell-label,
|
||||||
#list_Modules .cell_5 .ui-table-cell-label {
|
#list_Modules .cell_5 .ui-table-cell-label {
|
||||||
display: none;
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
#list_Modules td {
|
||||||
|
height: 35px;
|
||||||
|
padding-top: 7px;
|
||||||
|
display: table-cell;
|
||||||
|
clear: none;
|
||||||
|
float: none;
|
||||||
|
padding-left: 0px !important;
|
||||||
|
padding-right: 0px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#list_Modules .show_collapside {
|
#list_Modules .show_collapside {
|
||||||
|
@ -766,18 +834,43 @@ table.event_details td.cell_event_name {
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#list_Modules .cell_1,
|
||||||
#list_Modules .cell_2,
|
#list_Modules .cell_2,
|
||||||
#list_Modules .cell_3 {
|
#list_Modules .cell_3 {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#list_Modules .cell_0 .show_collapside,
|
#list_Modules .cell_0 .show_collapside,
|
||||||
#list_Modules .cell_1 .show_collapside {
|
#list_Modules .cell_1 .show_collapside,
|
||||||
|
#list_Modules .cell_4 .show_collapside,
|
||||||
|
#list_Modules .cell_5 .show_collapside {
|
||||||
display: none !important;
|
display: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
#list_Modules .cell_0 .ui-link {
|
#list_Modules .cell_0 .ui-link {
|
||||||
font-size: 15px;
|
font-size: 12px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#list_Modules .cell_0{
|
||||||
|
width: 50%;
|
||||||
|
border-top: 0px none;
|
||||||
|
}
|
||||||
|
#list_Modules .cell_4{
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
#list_Modules .cell_5{
|
||||||
|
width: 25%;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#list_Modules td.cell_0>span.tiny>img {
|
||||||
|
width: 5px;
|
||||||
|
height: 30px;
|
||||||
|
margin-top: -5px;
|
||||||
|
margin-left: 0px;
|
||||||
|
float: left;
|
||||||
|
}
|
||||||
|
#list_Modules .module_name {
|
||||||
|
font-size: 12px !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -795,6 +888,10 @@ table.event_details td.cell_event_name {
|
||||||
padding-top: 20px;
|
padding-top: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#list_agent_Modules td.cell_0 > span.tiny {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
#list_Modules .cell_5 img {
|
#list_Modules .cell_5 img {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
@ -809,7 +906,7 @@ table.event_details td.cell_event_name {
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 25em) {
|
@media screen and (max-width: 34.99em) {
|
||||||
#list_agent_Modules .ui-table-cell-label,
|
#list_agent_Modules .ui-table-cell-label,
|
||||||
#list_agent_Modules .cell_2,
|
#list_agent_Modules .cell_2,
|
||||||
#list_agent_Modules .cell_3 {
|
#list_agent_Modules .cell_3 {
|
||||||
|
@ -877,7 +974,7 @@ li.ui-btn {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 25em) {
|
@media screen and (max-width: 34.99em) {
|
||||||
.ui-table th, .ui-table td {
|
.ui-table th, .ui-table td {
|
||||||
padding: 8px !important;
|
padding: 8px !important;
|
||||||
padding-left: 3px;
|
padding-left: 3px;
|
||||||
|
@ -924,7 +1021,7 @@ li.ui-btn {
|
||||||
height: 28px !important;
|
height: 28px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (max-width: 25em)
|
@media screen and (max-width: 35em)
|
||||||
{
|
{
|
||||||
.events .status_row {
|
.events .status_row {
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -939,12 +1036,12 @@ li.ui-btn {
|
||||||
min-width: 50%;
|
min-width: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.agents_tiny_stats, .agents_last_contact {
|
.agents_last_contact {
|
||||||
float: right;
|
float: right;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media screen and (min-width: 25em)
|
@media screen and (min-width: 35em)
|
||||||
{
|
{
|
||||||
.events .cell_0 .event_link{
|
.events .cell_0 .event_link{
|
||||||
display: none;
|
display: none;
|
||||||
|
@ -1028,7 +1125,7 @@ li.ui-btn {
|
||||||
}
|
}
|
||||||
|
|
||||||
.event_name {
|
.event_name {
|
||||||
font-size: 18px !important;
|
font-size: 15px !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.login_logo img {
|
.login_logo img {
|
||||||
|
@ -1050,7 +1147,7 @@ li.ui-btn {
|
||||||
}
|
}
|
||||||
|
|
||||||
.event_name {
|
.event_name {
|
||||||
font-size: 15px;
|
font-size: 12px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1199,6 +1296,11 @@ span.nobold * {
|
||||||
line-height: 1.1em;
|
line-height: 1.1em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.events_timestamp > img {
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
.events_agent {
|
.events_agent {
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
@ -1258,3 +1360,15 @@ DIV.nodata_container {
|
||||||
.ui-table-reflow.ui-responsive {
|
.ui-table-reflow.ui-responsive {
|
||||||
display: table !important;
|
display: table !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.widget_agent_module > th {
|
||||||
|
background-color: #373737;
|
||||||
|
}
|
||||||
|
#list_agent_Modules >tbody > tr > td {
|
||||||
|
clear: none;
|
||||||
|
vertical-align: middle;
|
||||||
|
padding: 0px;
|
||||||
|
}
|
||||||
|
#list_agent_Modules > tbody > tr > td.cell_0 {
|
||||||
|
border-top: 0px none;
|
||||||
|
}
|
|
@ -780,6 +780,7 @@ class Table {
|
||||||
foreach ($data as $id => $row) {
|
foreach ($data as $id => $row) {
|
||||||
$table_row = array();
|
$table_row = array();
|
||||||
foreach ($row as $key => $value) {
|
foreach ($row as $key => $value) {
|
||||||
|
|
||||||
if (!in_array($key, $this->head)) {
|
if (!in_array($key, $this->head)) {
|
||||||
$this->head[] = $key;
|
$this->head[] = $key;
|
||||||
}
|
}
|
||||||
|
@ -843,45 +844,40 @@ class Table {
|
||||||
$html = '';
|
$html = '';
|
||||||
|
|
||||||
$html = "<table data-role='table' id='" . $this->id . "' " .
|
$html = "<table data-role='table' id='" . $this->id . "' " .
|
||||||
"data-mode='reflow' class='" . $this->class_table . " ui-responsive table-stroke'>\n";
|
"data-mode='reflow' class='" . $this->class_table . " ui-responsive table-stroke'>";
|
||||||
|
|
||||||
|
|
||||||
$html .= "<thead>\n";
|
if ($this->head) {
|
||||||
$html .= "<tr>\n";
|
$html .= "<thead>";
|
||||||
//Empty head for white space between rows in the responsive vertical layout
|
$html .= "<tr>";
|
||||||
$html .= "<th class='head_horizontal'></th>\n";
|
//Empty head for white space between rows in the responsive vertical layout
|
||||||
foreach ($this->head as $head) {
|
//~ $html .= "<th class='head_horizontal'></th>";
|
||||||
$html .= "<th class='head_horizontal'>" . $head . "</th>\n";
|
foreach ($this->head as $head) {
|
||||||
|
$html .= "<th class='head_horizontal'>" . $head . "</th>";
|
||||||
|
}
|
||||||
|
$html .= "</tr>";
|
||||||
|
$html .= "</thead>";
|
||||||
}
|
}
|
||||||
$html .= "</tr>\n";
|
|
||||||
$html .= "</thead>\n";
|
|
||||||
|
|
||||||
$html .= "<tbody>\n";
|
$html .= "<tbody>";
|
||||||
foreach ($this->rows as $key => $row) {
|
foreach ($this->rows as $key => $row) {
|
||||||
$class = '';
|
$class = '';
|
||||||
if (isset($this->rowClass[$key])) {
|
if (isset($this->rowClass[$key])) {
|
||||||
$class = $this->rowClass[$key];
|
$class = $this->rowClass[$key];
|
||||||
}
|
}
|
||||||
|
|
||||||
$html .= "<tr class='" . $class . "'>\n";
|
$html .= "<tr class='" . $class . "'>";
|
||||||
//Empty head for white space between rows in the responsive vertical layout
|
//Empty head for white space between rows in the responsive vertical layout
|
||||||
if (isset($this->row_heads[$key])) {
|
|
||||||
$html .= "<th class='head_vertical'>" . $this->row_heads[$key] . "</th>\n";
|
|
||||||
}
|
|
||||||
elseif ($this->row_keys_as_head_row) {
|
|
||||||
$html .= "<th class='head_vertical'>" . $key . "</th>\n";
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$html .= "<th class='head_vertical' style='font-size: 0px'></th>\n";
|
|
||||||
}
|
|
||||||
foreach ($row as $key_cell => $cell) {
|
foreach ($row as $key_cell => $cell) {
|
||||||
$html .= "<td class='cell_" . $key_cell . "'>" . $cell . "</td>\n";
|
$html .= "<td class='cell_" . $key_cell . "'>" . $cell . "</td>";
|
||||||
}
|
}
|
||||||
$html .= "</tr>\n";
|
|
||||||
|
$html .= "</tr>";
|
||||||
}
|
}
|
||||||
|
|
||||||
$html .= "</tbody>\n";
|
$html .= "</tbody>";
|
||||||
$html .= "</table>\n";
|
$html .= "</table>";
|
||||||
|
|
||||||
return $html;
|
return $html;
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,92 +114,123 @@ class Agent {
|
||||||
$ui->showFooter(false);
|
$ui->showFooter(false);
|
||||||
$ui->beginContent();
|
$ui->beginContent();
|
||||||
if (empty($this->agent)) {
|
if (empty($this->agent)) {
|
||||||
$ui->contentAddHtml('<span style="color: red;">' . __('No agent found') . '</span>');
|
$ui->contentAddHtml('<span style="color: red;">' .
|
||||||
|
__('No agent found') . '</span>');
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$ui->contentBeginGrid();
|
$ui->contentBeginGrid();
|
||||||
if ($this->agent['disabled']) {
|
if ($this->agent['disabled']) {
|
||||||
$agent_name = "<em>" . $agent_name . "</em>" . ui_print_help_tip(__('Disabled'), true);
|
$agent_name = "<em>" . $agent_name . "</em>" .
|
||||||
}
|
ui_print_help_tip(__('Disabled'), true);
|
||||||
else if ($this->agent['quiet']) {
|
}
|
||||||
$agent_name = "<em>" . $agent_name . " " . html_print_image("images/dot_green.disabled.png", true, array("border" => '0', "title" => __('Quiet'), "alt" => "")) . "</em>";
|
else if ($this->agent['quiet']) {
|
||||||
}
|
$agent_name = "<em>" . $agent_name . " " .
|
||||||
else {
|
html_print_image("images/dot_green.disabled.png",
|
||||||
$agent_name = $agent_name;
|
true, array("border" => '0', "title" => __('Quiet'), "alt" => "")) . "</em>";
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
$agent_name = $agent_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if ($system->getConfig('metaconsole')) {
|
|
||||||
metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']);
|
|
||||||
$addresses = agents_get_addresses($this->agent['id_tagente']);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$addresses = agents_get_addresses($this->id);
|
|
||||||
|
|
||||||
if ($system->getConfig('metaconsole'))
|
|
||||||
metaconsole_restore_db();
|
|
||||||
|
|
||||||
$address = $this->agent['direccion'];
|
|
||||||
foreach ($addresses as $k => $add) {
|
|
||||||
if ($add == $address) {
|
|
||||||
unset($addresses[$k]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$ip = html_print_image('images/world.png', true, array('title' => __('IP address'))) . ' ';
|
|
||||||
$ip .= empty($address) ? '<em>' . __('N/A') . '</em>' : $address;
|
|
||||||
if (!empty($addresses)) {
|
|
||||||
$ip .= ui_print_help_tip(__('Other IP addresses').': <br>'.implode('<br>',$addresses), true);
|
|
||||||
}
|
|
||||||
$ip .= '<br />';
|
|
||||||
|
|
||||||
$last_contact = '<b>' . __('Last contact') . '</b>: '
|
|
||||||
.ui_print_timestamp ($this->agent["ultimo_contacto"], true) . '<br />';
|
|
||||||
|
|
||||||
$description = '<b>' . __('Description') . ':</b><br>';
|
|
||||||
if (empty($agent["comentarios"])) {
|
|
||||||
$description .= '<i>' . __('N/A') . '</i>';
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$description .= $this->agent["comentarios"];
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
$html = '<div class="agent_details">';
|
|
||||||
$html .= ui_print_group_icon ($this->agent["id_grupo"], true, "groups_small", "", false) . ' ';
|
|
||||||
$html .= '<span class="agent_name">' . $agent_name . '</span><br />';
|
|
||||||
$html .= $ip;
|
|
||||||
$html .= $last_contact;
|
|
||||||
$html .= $description;
|
|
||||||
$html .= '</div>';
|
|
||||||
if ($system->getConfig('metaconsole')) {
|
if ($system->getConfig('metaconsole')) {
|
||||||
metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']);
|
metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']);
|
||||||
|
//~ $addresses = agents_get_addresses($this->agent['id_tagente']);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
$addresses = agents_get_addresses($this->id);
|
||||||
|
|
||||||
|
if ($system->getConfig('metaconsole'))
|
||||||
|
metaconsole_restore_db();
|
||||||
|
|
||||||
|
$address = $this->agent['direccion'];
|
||||||
|
//~ foreach ($addresses as $k => $add) {
|
||||||
|
//~ if ($add == $address) {
|
||||||
|
//~ unset($addresses[$k]);
|
||||||
|
//~ }
|
||||||
|
//~ }
|
||||||
|
|
||||||
|
//~ $ip = html_print_image('images/world.png',
|
||||||
|
//~ true, array('title' => __('IP address'))) .
|
||||||
|
//~ ' ';
|
||||||
|
$ip .= empty($address) ? '<em>' . __('N/A') .
|
||||||
|
'</em>' : $address;
|
||||||
|
|
||||||
|
//~ if (!empty($addresses)) {
|
||||||
|
//~ $ip .= ui_print_help_tip(__('Other IP addresses') .
|
||||||
|
//~ ': ' . implode(', ',$addresses), true);
|
||||||
|
//~ }
|
||||||
|
|
||||||
|
$last_contact = '<b>' . __('Last contact') .
|
||||||
|
'</b>: ' .
|
||||||
|
ui_print_timestamp ($this->agent["ultimo_contacto"], true);
|
||||||
|
|
||||||
|
//~ $description = '<b>' . __('Description') . ':</b> ';
|
||||||
|
if (empty($agent["comentarios"])) {
|
||||||
|
$description .= '<i>' . __('N/A') . '</i>';
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$description .= $this->agent["comentarios"];
|
||||||
|
}
|
||||||
|
|
||||||
|
$html = '<div class="agent_details" style:"float:left;">';
|
||||||
|
$html .= '<span class="agent_name">' . $agent_name .
|
||||||
|
'</span>';
|
||||||
|
$html .= '</div>';
|
||||||
|
$html .= '<div class="agent_os">' . ui_print_os_icon ($this->agent["id_os"], false, true,
|
||||||
|
true, false, false, false, false, true) . '</div>';
|
||||||
|
$html .= '<div class="agent_list_ips">';
|
||||||
|
$html .= $ip . ' - ' .
|
||||||
|
groups_get_name ($this->agent["id_grupo"], true);
|
||||||
|
$html .= '</div>
|
||||||
|
<div class="agent_last_contact">';
|
||||||
|
$html .= $last_contact;
|
||||||
|
$html .= '</div>
|
||||||
|
<div class="agent_description">';
|
||||||
|
$html .= $description;
|
||||||
|
$html .= '</div>';
|
||||||
|
|
||||||
|
if ($system->getConfig('metaconsole')) {
|
||||||
|
metaconsole_connect(null,
|
||||||
|
$this->agent['id_tmetaconsole_setup']);
|
||||||
|
}
|
||||||
|
|
||||||
$ui->contentGridAddCell($html, 'agent_details');
|
$ui->contentGridAddCell($html, 'agent_details');
|
||||||
ob_start();
|
|
||||||
$html = '<div class="agent_graphs">';
|
ob_start();
|
||||||
$html .= "<b>" . __('Modules by status') . "</b><br />";
|
|
||||||
$html .= graph_agent_status ($this->id, 160, 160, true);
|
$html = '<div class="agent_graphs">';
|
||||||
$graph_js = ob_get_clean();
|
$html .= "<b>" . __('Modules by status') . "</b>";
|
||||||
$html = $graph_js . $html;
|
$html .= graph_agent_status ($this->id, 160, 160, true);
|
||||||
unset($this->agent['fired_count']);
|
$graph_js = ob_get_clean();
|
||||||
if ($this->agent['total_count'] > 0) {
|
$html = $graph_js . $html;
|
||||||
$html .= '<span class="agents_tiny_stats agents_tiny_stats_tactical">' . reporting_tiny_stats($this->agent, true) . ' </span><br>';
|
|
||||||
}
|
unset($this->agent['fired_count']);
|
||||||
$html .= "<b>" . __('Events (24h)') . "</b><br /><br />";
|
|
||||||
$html .= '<div id="events_bar"></div>';
|
if ($this->agent['total_count'] > 0) {
|
||||||
$html .= '<br>';
|
$html .= '<div class="agents_tiny_stats agents_tiny_stats_tactical">' .
|
||||||
$html .= '</div>';
|
reporting_tiny_stats($this->agent, true, 'agent', ' ') . ' </div>';
|
||||||
|
}
|
||||||
|
|
||||||
|
$html .= '</div>';
|
||||||
|
$html .= '<div class="events_bar">';
|
||||||
|
$html .= "<b>" . __('Events (24h)') . "</b>";
|
||||||
|
$html .= '<div id="events_bar"></div>';
|
||||||
|
$html .= '</div>';
|
||||||
|
|
||||||
$ui->contentGridAddCell($html, 'agent_graphs');
|
$ui->contentGridAddCell($html, 'agent_graphs');
|
||||||
$ui->contentEndGrid();
|
$ui->contentEndGrid();
|
||||||
|
|
||||||
if ($system->getConfig('metaconsole'))
|
if ($system->getConfig('metaconsole'))
|
||||||
metaconsole_restore_db();
|
metaconsole_restore_db();
|
||||||
|
|
||||||
$modules = new Modules();
|
$modules = new Modules();
|
||||||
|
|
||||||
if ($system->getConfig('metaconsole'))
|
if ($system->getConfig('metaconsole'))
|
||||||
$filters = array('id_agent' => $this->agent['id_tagente'], 'all_modules' => true, 'status' => -1);
|
$filters = array('id_agent' => $this->agent['id_tagente'], 'all_modules' => true, 'status' => -1);
|
||||||
else
|
else
|
||||||
$filters = array('id_agent' => $this->id, 'all_modules' => true, 'status' => -1);
|
$filters = array('id_agent' => $this->id, 'all_modules' => true, 'status' => -1);
|
||||||
|
|
||||||
$modules->setFilters($filters);
|
$modules->setFilters($filters);
|
||||||
$modules->disabledColumns(array('agent'));
|
$modules->disabledColumns(array('agent'));
|
||||||
$ui->contentBeginCollapsible(__('Modules'));
|
$ui->contentBeginCollapsible(__('Modules'));
|
||||||
|
@ -209,18 +240,23 @@ class Agent {
|
||||||
if ($system->getConfig('metaconsole')) {
|
if ($system->getConfig('metaconsole')) {
|
||||||
metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']);
|
metaconsole_connect(null, $this->agent['id_tmetaconsole_setup']);
|
||||||
}
|
}
|
||||||
|
|
||||||
$alerts = new Alerts();
|
$alerts = new Alerts();
|
||||||
|
|
||||||
if ($system->getConfig('metaconsole'))
|
if ($system->getConfig('metaconsole'))
|
||||||
$filters = array('id_agent' => $this->agent['id_tagente'], 'all_alerts' => true);
|
$filters = array('id_agent' => $this->agent['id_tagente'], 'all_alerts' => true);
|
||||||
else
|
else
|
||||||
$filters = array('id_agent' => $this->id, 'all_alerts' => true);
|
$filters = array('id_agent' => $this->id, 'all_alerts' => true);
|
||||||
|
|
||||||
$alerts->setFilters($filters);
|
$alerts->setFilters($filters);
|
||||||
$alerts->disabledColumns(array('agent'));
|
$alerts->disabledColumns(array('agent'));
|
||||||
$ui->contentBeginCollapsible(__('Alerts'));
|
$ui->contentBeginCollapsible(__('Alerts'));
|
||||||
$ui->contentCollapsibleAddItem($alerts->listAlertsHtml(true));
|
$ui->contentCollapsibleAddItem($alerts->listAlertsHtml(true));
|
||||||
$ui->contentEndCollapsible();
|
$ui->contentEndCollapsible();
|
||||||
|
|
||||||
if ($system->getConfig('metaconsole'))
|
if ($system->getConfig('metaconsole'))
|
||||||
metaconsole_restore_db();
|
metaconsole_restore_db();
|
||||||
|
|
||||||
$events = new Events();
|
$events = new Events();
|
||||||
$events->addJavascriptDialog();
|
$events->addJavascriptDialog();
|
||||||
|
|
||||||
|
|
|
@ -325,7 +325,7 @@ class Agents {
|
||||||
|
|
||||||
$row[7] = $row[__('Modules')] =
|
$row[7] = $row[__('Modules')] =
|
||||||
'<span class="show_collapside" style="vertical-align: 0%; display: none; font-weight: bolder;">' . __('Modules') . ' </span>' .
|
'<span class="show_collapside" style="vertical-align: 0%; display: none; font-weight: bolder;">' . __('Modules') . ' </span>' .
|
||||||
'<span class="agents_tiny_stats">' . reporting_tiny_stats($agent, true) . ' </span>';
|
'<span class="agents_tiny_stats">' . reporting_tiny_stats($agent, true, 'agent', ' ') . ' </span>';
|
||||||
|
|
||||||
$last_time = strtotime ($agent["ultimo_contacto"]);
|
$last_time = strtotime ($agent["ultimo_contacto"]);
|
||||||
$now = time ();
|
$now = time ();
|
||||||
|
|
|
@ -105,7 +105,7 @@ class Events {
|
||||||
$status_icon = html_print_image($img_st, true, false, false, false, false, true);
|
$status_icon = html_print_image($img_st, true, false, false, false, false, true);
|
||||||
|
|
||||||
$row = array();
|
$row = array();
|
||||||
$row[] = '<b class="ui-table-cell-label">' . __('Event Name') . '</b><a href="javascript: openDetails(' . $event['id_evento'] . ')"><div class="event_name">' . io_safe_output($event['evento']) . '</div></a>';
|
$row[] = '<b class="ui-table-cell-label">' . __('Event Name') . '</b><a href="javascript: openDetails(' . $event['id_evento'] . ')"><div class="event_name">' . io_safe_output(str_replace(array(' ',''), ' ', $event['evento'])) . '</div></a>';
|
||||||
|
|
||||||
if ($event["id_agente"] == 0) {
|
if ($event["id_agente"] == 0) {
|
||||||
$agent_name = __('System');
|
$agent_name = __('System');
|
||||||
|
@ -115,7 +115,7 @@ class Events {
|
||||||
}
|
}
|
||||||
|
|
||||||
$row_1 = '<span class="events_agent">' . $agent_name . '</span>';
|
$row_1 = '<span class="events_agent">' . $agent_name . '</span>';
|
||||||
$row_1 .= '<span class="events_timestamp">' . $status_icon . '<br>' . ui_print_timestamp ($event['timestamp_rep'], true, array('units' => 'tiny')) . '</span>';
|
$row_1 .= '<span class="events_timestamp">' . ui_print_timestamp ($event['timestamp_rep'], true, array('units' => 'tiny')) . $status_icon . '</span>';
|
||||||
|
|
||||||
$row[] = $row_1;
|
$row[] = $row_1;
|
||||||
|
|
||||||
|
@ -966,10 +966,10 @@ class Events {
|
||||||
var new_rows = \"\";
|
var new_rows = \"\";
|
||||||
$.each(data.events, function(key, event) {
|
$.each(data.events, function(key, event) {
|
||||||
new_rows = \"<tr class='events \" + event[2] + \"'>\" +
|
new_rows = \"<tr class='events \" + event[2] + \"'>\" +
|
||||||
\"<td class='cell_0'>\" +
|
\"<td class='cell_0' style='vertical-align:middle;'>\" +
|
||||||
event[0] +
|
event[0] +
|
||||||
\"</td>\" +
|
\"</td>\" +
|
||||||
\"<td>\" + event[1] + \"</td>\" +
|
\"<td style='vertical-align:middle;'>\" + event[1] + \"</td>\" +
|
||||||
\"</tr>\" + new_rows;
|
\"</tr>\" + new_rows;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -84,7 +84,7 @@ class ModuleGraph {
|
||||||
$this->height = (int)$system->getRequest('height', 0);
|
$this->height = (int)$system->getRequest('height', 0);
|
||||||
|
|
||||||
//Sancho says "put the height to 1/2 for to make more beautyful"
|
//Sancho says "put the height to 1/2 for to make more beautyful"
|
||||||
//$this->height = $this->height / 2;
|
$this->height = $this->height / 1.5;
|
||||||
|
|
||||||
$this->height -= 80; //Correct the height
|
$this->height -= 80; //Correct the height
|
||||||
|
|
||||||
|
@ -279,37 +279,34 @@ class ModuleGraph {
|
||||||
ob_start();
|
ob_start();
|
||||||
?>
|
?>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
$(document).bind('ready', function() {
|
$(document).ready(function() {
|
||||||
function load_graph() {
|
function load_graph() {
|
||||||
$("#loading_graph").show();
|
$("#loading_graph").show();
|
||||||
|
|
||||||
$("#graph_content").html($('#loading_graph').html())
|
var heigth = $(document).height()
|
||||||
.height(($(window).height()
|
|
||||||
- $(".ui-header").height()
|
- $(".ui-header").height()
|
||||||
- $(".ui-collapsible").height()
|
- $(".ui-collapsible").height()
|
||||||
- 55) + "px").width($(".ui-collapsible").width() + "px");
|
- 55;
|
||||||
|
var width = $(document).width() - 25;
|
||||||
ajax_get_graph($("#id_module").val());
|
ajax_get_graph($("#id_module").val(), heigth, width);
|
||||||
}
|
}
|
||||||
|
|
||||||
load_graph();
|
load_graph();
|
||||||
|
|
||||||
// Detect orientation change to refresh dinamic content
|
// Detect orientation change to refresh dinamic content
|
||||||
$(window).on({
|
window.addEventListener("resize", function() {
|
||||||
orientationchange: function(e) {
|
// Reload dinamic content
|
||||||
// Reload dinamic content
|
load_graph();
|
||||||
load_graph();
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
function ajax_get_graph(id) {
|
function ajax_get_graph(id, heigth_graph, width_graph) {
|
||||||
postvars = {};
|
postvars = {};
|
||||||
postvars["action"] = "ajax";
|
postvars["action"] = "ajax";
|
||||||
postvars["parameter1"] = "module_graph";
|
postvars["parameter1"] = "module_graph";
|
||||||
postvars["parameter2"] = "get_graph";
|
postvars["parameter2"] = "get_graph";
|
||||||
postvars["width"] = $("#graph_content").width();
|
postvars["width"] = width_graph;
|
||||||
postvars["height"] = $("#graph_content").height();
|
postvars["height"] = heigth_graph;
|
||||||
|
|
||||||
postvars["draw_alerts"] = ($("input[name = 'draw_alerts']").is(":checked"))?1:0;
|
postvars["draw_alerts"] = ($("input[name = 'draw_alerts']").is(":checked"))?1:0;
|
||||||
postvars["draw_events"] = ($("input[name = 'draw_events']").is(":checked"))?1:0;
|
postvars["draw_events"] = ($("input[name = 'draw_events']").is(":checked"))?1:0;
|
||||||
|
|
|
@ -117,8 +117,8 @@ class Modules {
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->status = $system->getRequest('status', __("Status"));
|
$this->status = $system->getRequest('status', __("Status"));
|
||||||
if (($this->status === __("Status")) || ($this->status == AGENT_MODULE_STATUS_NOT_NORMAL)) {
|
if (($this->status === __("Status")) || ($this->status == AGENT_MODULE_STATUS_ALL)) {
|
||||||
$this->status = AGENT_MODULE_STATUS_NOT_NORMAL;
|
$this->status = AGENT_MODULE_STATUS_ALL;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$this->default = false;
|
$this->default = false;
|
||||||
|
@ -443,8 +443,49 @@ class Modules {
|
||||||
foreach ($modules_db as $module) {
|
foreach ($modules_db as $module) {
|
||||||
$row = array();
|
$row = array();
|
||||||
|
|
||||||
|
$image_status = '';
|
||||||
|
if ($module['utimestamp'] == 0 && (($module['module_type'] < 21 ||
|
||||||
|
$module['module_type'] > 23) && $module['module_type'] != 100)) {
|
||||||
|
$image_status = ui_print_status_image(STATUS_MODULE_NO_DATA,
|
||||||
|
__('NOT INIT'), true);
|
||||||
|
}
|
||||||
|
elseif ($module["estado"] == 0) {
|
||||||
|
$image_status = ui_print_status_image(STATUS_MODULE_OK,
|
||||||
|
__('NORMAL') . ": " . $module["datos"], true);
|
||||||
|
}
|
||||||
|
elseif ($module["estado"] == 1) {
|
||||||
|
$image_status = ui_print_status_image(STATUS_MODULE_CRITICAL,
|
||||||
|
__('CRITICAL') . ": " . $module["datos"], true);
|
||||||
|
}
|
||||||
|
elseif ($module["estado"] == 2) {
|
||||||
|
$image_status = ui_print_status_image(STATUS_MODULE_WARNING,
|
||||||
|
__('WARNING') . ": " . $module["datos"], true);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$last_status = modules_get_agentmodule_last_status(
|
||||||
|
$module['id_agente_modulo']);
|
||||||
|
switch($last_status) {
|
||||||
|
case 0:
|
||||||
|
$image_status = ui_print_status_image(STATUS_MODULE_UNKNOWN,
|
||||||
|
__('UNKNOWN') . " - " . __('Last status') . " " .
|
||||||
|
__('NORMAL') . ": " . $module["datos"], true);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
$image_status = ui_print_status_image(STATUS_MODULE_UNKNOWN,
|
||||||
|
__('UNKNOWN') . " - " . __('Last status') ." " .
|
||||||
|
__('CRITICAL') . ": " . $module["datos"], true);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
$image_status = ui_print_status_image(STATUS_MODULE_UNKNOWN,
|
||||||
|
__('UNKNOWN') . " - " . __('Last status') . " " .
|
||||||
|
__('WARNING') . ": " . $module["datos"], true);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
$row[0] =
|
$row[0] =
|
||||||
$row[__('Module name')] =
|
$row[__('Module name')] = '<span class="tiny" style="margin-right: 5px;">' . $image_status . '</span>' .
|
||||||
'<span class="data module_name">' .
|
'<span class="data module_name">' .
|
||||||
ui_print_truncate_text($module['module_name'], 30, false) .
|
ui_print_truncate_text($module['module_name'], 30, false) .
|
||||||
"</span>";
|
"</span>";
|
||||||
|
@ -455,6 +496,7 @@ class Modules {
|
||||||
ui_print_truncate_text($module['agent_name'], 50, false) .
|
ui_print_truncate_text($module['agent_name'], 50, false) .
|
||||||
'</span>';
|
'</span>';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($module['utimestamp'] == 0 && (($module['module_type'] < 21 ||
|
if ($module['utimestamp'] == 0 && (($module['module_type'] < 21 ||
|
||||||
$module['module_type'] > 23) && $module['module_type'] != 100)) {
|
$module['module_type'] > 23) && $module['module_type'] != 100)) {
|
||||||
$row[5] = $row[__('Status')] = ui_print_status_image(STATUS_MODULE_NO_DATA,
|
$row[5] = $row[__('Status')] = ui_print_status_image(STATUS_MODULE_NO_DATA,
|
||||||
|
@ -559,34 +601,30 @@ class Modules {
|
||||||
"&refr=" . $module["module_interval"]."','".$handle."','width=700, height=480')";
|
"&refr=" . $module["module_interval"]."','".$handle."','width=700, height=480')";
|
||||||
|
|
||||||
if ($is_snapshot) {
|
if ($is_snapshot) {
|
||||||
|
if (is_image_data($module["datos"])) {
|
||||||
if (is_image_data($module["datos"])) {
|
$row[7] = $row[__('Data')] = '<a href="javascript:' . $link . '">' .
|
||||||
$row[7] = $row[__('Data')] = '<a href="javascript:' . $link . '">' .
|
html_print_image("images/photo.png", true,
|
||||||
html_print_image("images/photo.png", true,
|
array("border" => '0',
|
||||||
array("border" => '0',
|
"alt" => "",
|
||||||
"alt" => "",
|
"title" => __("Snapshot view"))) . '</a> ';
|
||||||
"title" => __("Snapshot view"))) . '</a> ';
|
}
|
||||||
|
else {
|
||||||
|
$row[7] = $row[__('Data')] = '<a href="javascript:' . $link . '">' .
|
||||||
|
html_print_image("images/default_list.png", true,
|
||||||
|
array("border" => '0',
|
||||||
|
"alt" => "",
|
||||||
|
"title" => __("Snapshot view"))) . '</a> ';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
$row[7] = $row[__('Data')] = '<span style="white-space: nowrap;">' .
|
||||||
|
'<span style="display: none;" class="show_collapside">' .
|
||||||
|
$row[__('Status')] . ' </span>' .
|
||||||
|
'<a data-ajax="false" class="ui-link" ' .
|
||||||
|
'href="index.php?page=module_graph&id=' .
|
||||||
|
$module['id_agente_modulo'] . '&id_agent=' .
|
||||||
|
$this->id_agent . '">' . $output . '</a>' . '</span>';
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
$row[7] = $row[__('Data')] = '<a href="javascript:' . $link . '">' .
|
|
||||||
html_print_image("images/default_list.png", true,
|
|
||||||
array("border" => '0',
|
|
||||||
"alt" => "",
|
|
||||||
"title" => __("Snapshot view"))) . '</a> ';
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else{
|
|
||||||
|
|
||||||
$row[7] = $row[__('Data')] = '<span style="white-space: nowrap;">' .
|
|
||||||
'<span style="display: none;" class="show_collapside">' .
|
|
||||||
$row[__('Status')] . ' </span>' .
|
|
||||||
'<a data-ajax="false" class="ui-link" ' .
|
|
||||||
'href="index.php?page=module_graph&id=' .
|
|
||||||
$module['id_agente_modulo'] . '&id_agent=' .
|
|
||||||
$this->id_agent . '">' . $output . '</a>' . '</span>';
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -643,12 +681,12 @@ class Modules {
|
||||||
$ui->contentAddHtml($table->getHTML());
|
$ui->contentAddHtml($table->getHTML());
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
foreach ($listModules['modules'] as $key => $module) {
|
//~ foreach ($listModules['modules'] as $key => $module) {
|
||||||
$listModules['modules'][$key][__('Status')] .=
|
//~ $listModules['modules'][$key][__('Status')] .=
|
||||||
'<span style="display: none;" class="show_collapside">' .
|
//~ '<span style="display: none;" class="show_collapside">' .
|
||||||
$listModules['modules'][$key][__('Data')] .
|
//~ $listModules['modules'][$key][__('Data')] .
|
||||||
'</span>';
|
//~ '</span>';
|
||||||
}
|
//~ }
|
||||||
|
|
||||||
$table = new Table();
|
$table = new Table();
|
||||||
$table->id = 'list_agent_Modules';
|
$table->id = 'list_agent_Modules';
|
||||||
|
@ -710,9 +748,8 @@ class Modules {
|
||||||
else {
|
else {
|
||||||
$.each(data.modules, function(key, module) {
|
$.each(data.modules, function(key, module) {
|
||||||
$(\"table#list_Modules tbody\").append(\"<tr>\" +
|
$(\"table#list_Modules tbody\").append(\"<tr>\" +
|
||||||
\"<th class='head_vertical'></th>\" +
|
\"<td class='cell_1'><b class='ui-table-cell-label'>" . __('Module name') . "</b>\" + module[1] + \"</td>\" +
|
||||||
\"<td class='cell_1'><b class='ui-table-cell-label'>" . __('Module name') . "</b>\" + module[0] + \"</td>\" +
|
\"<td class='cell_0'><b class='ui-table-cell-label'>" . __('Agent name') . "</b>\" + module[0] + \"</td>\" +
|
||||||
\"<td class='cell_0'><b class='ui-table-cell-label'>" . __('Agent name') . "</b>\" + module[1] + \"</td>\" +
|
|
||||||
\"<td class='cell_2'><b class='ui-table-cell-label'>" . __('Status') . "</b>\" + module[5] + \"</td>\" +
|
\"<td class='cell_2'><b class='ui-table-cell-label'>" . __('Status') . "</b>\" + module[5] + \"</td>\" +
|
||||||
\"<td class='cell_3'><b class='ui-table-cell-label'>" . __('Interval') . "</b>\" + module[4] + \"</td>\" +
|
\"<td class='cell_3'><b class='ui-table-cell-label'>" . __('Interval') . "</b>\" + module[4] + \"</td>\" +
|
||||||
\"<td class='cell_4'><b class='ui-table-cell-label'>" . __('Timestamp') . "</b>\" + module[6] + \"</td>\" +
|
\"<td class='cell_4'><b class='ui-table-cell-label'>" . __('Timestamp') . "</b>\" + module[6] + \"</td>\" +
|
||||||
|
|
|
@ -207,7 +207,7 @@ class Tactical {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
max_height = $('#tactical2 .tactical_set').height();
|
max_height = $('#tactical2 .tactical_set').height();
|
||||||
$('#tactical1').height(max_height);
|
//~ $('#tactical1').height(max_height);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -586,7 +586,7 @@ foreach ($agents as $agent) {
|
||||||
if (enterprise_installed()) {
|
if (enterprise_installed()) {
|
||||||
enterprise_include_once('include/functions_config_agents.php');
|
enterprise_include_once('include/functions_config_agents.php');
|
||||||
|
|
||||||
if (enterprise_hook('config_agents_has_remote_configuration',$agent["id_agente"])) {
|
if (enterprise_hook('config_agents_has_remote_configuration',array($agent["id_agente"]))) {
|
||||||
|
|
||||||
$data[9] = html_print_image("images/application_edit.png", true, array("align" => 'middle', "title" => __('Remote config')));
|
$data[9] = html_print_image("images/application_edit.png", true, array("align" => 'middle', "title" => __('Remote config')));
|
||||||
|
|
||||||
|
|
|
@ -126,8 +126,9 @@ if (is_ajax ()) {
|
||||||
$id_group = (int) get_parameter('id_module_group');
|
$id_group = (int) get_parameter('id_module_group');
|
||||||
$id_agents = get_parameter('id_agents');
|
$id_agents = get_parameter('id_agents');
|
||||||
$selection = get_parameter('selection');
|
$selection = get_parameter('selection');
|
||||||
|
if(!isset($id_agents)){
|
||||||
$agents = implode(",", $id_agents);
|
$agents = implode(",", $id_agents);
|
||||||
|
}
|
||||||
|
|
||||||
$filter_group = "";
|
$filter_group = "";
|
||||||
$filter_agent = "";
|
$filter_agent = "";
|
||||||
|
@ -144,12 +145,12 @@ if (is_ajax ()) {
|
||||||
|
|
||||||
if (empty($modules)) $modules = array();
|
if (empty($modules)) $modules = array();
|
||||||
|
|
||||||
foreach ($modules as $k => $v) {
|
$found = array();
|
||||||
for ($j = $k + 1; $j <= sizeof($modules); $j++) {
|
foreach ($modules as $i=>$row) {
|
||||||
if ($modules[$j]['nombre'] == $v['nombre']) {
|
$check = $row['nombre'];
|
||||||
unset($modules[$j]);
|
if (@$found[$check]++) {
|
||||||
}
|
unset($modules[$i]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -173,13 +174,21 @@ if (is_ajax ()) {
|
||||||
}
|
}
|
||||||
$modules = $modules_to_report;
|
$modules = $modules_to_report;
|
||||||
|
|
||||||
$modules = array_unique($modules);
|
$found = array();
|
||||||
|
if (is_array($modules) || is_object($modules)){
|
||||||
|
foreach ($modules as $i=>$row) {
|
||||||
|
$check = $row['nombre'];
|
||||||
|
if (@$found[$check]++) {
|
||||||
|
unset($modules[$i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (is_array($modules) || is_object($modules)){
|
||||||
foreach ($modules as $k => $v) {
|
foreach ($modules as $k => $v) {
|
||||||
$modules[$k] = io_safe_output($v);
|
$modules[$k] = io_safe_output($v);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
echo json_encode($modules);
|
echo json_encode($modules);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -192,7 +192,13 @@ if (!empty($tag_with)) {
|
||||||
foreach ($tag_with as $id_tag) {
|
foreach ($tag_with as $id_tag) {
|
||||||
if ($first) $first = false;
|
if ($first) $first = false;
|
||||||
else $sql_post .= " AND ";
|
else $sql_post .= " AND ";
|
||||||
$sql_post .= "tags LIKE '%" . tags_get_name($id_tag) . "%'";
|
$sql_post .= "tags LIKE '" . tags_get_name($id_tag) . "'";
|
||||||
|
$sql_post .= " OR ";
|
||||||
|
$sql_post .= "tags LIKE '" . tags_get_name($id_tag) . ",%'";
|
||||||
|
$sql_post .= " OR ";
|
||||||
|
$sql_post .= "tags LIKE '%, " . tags_get_name($id_tag) . "'";
|
||||||
|
$sql_post .= " OR ";
|
||||||
|
$sql_post .= "tags LIKE '%, " . tags_get_name($id_tag) . ",%'";
|
||||||
}
|
}
|
||||||
$sql_post .= ' ) ';
|
$sql_post .= ' ) ';
|
||||||
}
|
}
|
||||||
|
|
|
@ -532,6 +532,7 @@ ui_include_time_picker();
|
||||||
$("#text-ip_src").val('');
|
$("#text-ip_src").val('');
|
||||||
$("#text-dst_port").val('');
|
$("#text-dst_port").val('');
|
||||||
$("#text-src_port").val('');
|
$("#text-src_port").val('');
|
||||||
|
$("#text-router_ip").val('');
|
||||||
$("#textarea_advanced_filter").val('');
|
$("#textarea_advanced_filter").val('');
|
||||||
$("#aggregate").val('');
|
$("#aggregate").val('');
|
||||||
$("#output").val('');
|
$("#output").val('');
|
||||||
|
@ -599,6 +600,8 @@ ui_include_time_picker();
|
||||||
$("#text-dst_port").val(val);
|
$("#text-dst_port").val(val);
|
||||||
if (i == 'src_port')
|
if (i == 'src_port')
|
||||||
$("#text-src_port").val(val);
|
$("#text-src_port").val(val);
|
||||||
|
if (i == 'router_ip')
|
||||||
|
$("#text-router_ip").val(val);
|
||||||
if (i == 'advanced_filter')
|
if (i == 'advanced_filter')
|
||||||
$("#textarea_advanced_filter").val(val);
|
$("#textarea_advanced_filter").val(val);
|
||||||
if (i == 'aggregate')
|
if (i == 'aggregate')
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0dev
|
%define version 7.0dev
|
||||||
%define release 170208
|
%define release 170215
|
||||||
|
|
||||||
# User and Group under which Apache is running
|
# User and Group under which Apache is running
|
||||||
%define httpd_name httpd
|
%define httpd_name httpd
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
#
|
#
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0dev
|
%define version 7.0dev
|
||||||
%define release 170208
|
%define release 170215
|
||||||
%define httpd_name httpd
|
%define httpd_name httpd
|
||||||
# User and Group under which Apache is running
|
# User and Group under which Apache is running
|
||||||
%define httpd_name apache2
|
%define httpd_name apache2
|
||||||
|
|
|
@ -66,7 +66,7 @@ INSERT INTO tconfig (token, value) VALUES ('graph_res','5');
|
||||||
INSERT INTO tconfig (token, value) VALUES ('step_compact','1');
|
INSERT INTO tconfig (token, value) VALUES ('step_compact','1');
|
||||||
INSERT INTO tconfig (token, value) VALUES ('db_scheme_first_version','6.0orc');
|
INSERT INTO tconfig (token, value) VALUES ('db_scheme_first_version','6.0orc');
|
||||||
INSERT INTO tconfig (token, value) VALUES('db_scheme_version','7.0dev');
|
INSERT INTO tconfig (token, value) VALUES('db_scheme_version','7.0dev');
|
||||||
INSERT INTO tconfig (token, value) VALUES('db_scheme_build','PD170208');
|
INSERT INTO tconfig (token, value) VALUES('db_scheme_build','PD170215');
|
||||||
INSERT INTO tconfig (token, value) VALUES ('show_unknown','0');
|
INSERT INTO tconfig (token, value) VALUES ('show_unknown','0');
|
||||||
INSERT INTO tconfig (token, value) VALUES ('show_lastalerts','1');
|
INSERT INTO tconfig (token, value) VALUES ('show_lastalerts','1');
|
||||||
INSERT INTO tconfig (token, value) VALUES ('style','pandora');
|
INSERT INTO tconfig (token, value) VALUES ('style','pandora');
|
||||||
|
@ -137,6 +137,7 @@ INSERT INTO tconfig (token, value) VALUES ('custom_report_front_header', '');
|
||||||
INSERT INTO tconfig (token, value) VALUES ('custom_report_front_footer', '');
|
INSERT INTO tconfig (token, value) VALUES ('custom_report_front_footer', '');
|
||||||
INSERT INTO tconfig (token, value) VALUES ('identification_reminder', 1);
|
INSERT INTO tconfig (token, value) VALUES ('identification_reminder', 1);
|
||||||
INSERT INTO tconfig (token, value) VALUES ('identification_reminder_timestamp', 0);
|
INSERT INTO tconfig (token, value) VALUES ('identification_reminder_timestamp', 0);
|
||||||
|
INSERT INTO tconfig (token, value) VALUES ('MR', 0);
|
||||||
INSERT INTO tconfig (token, value) VALUES ('post_process_custom_values', '{"0.00000038580247":"Seconds to months","0.00000165343915":"Seconds to weeks","0.00001157407407":"Seconds to days","0.01666666666667":"Seconds to minutes","0.00000000093132":"Bytes to Gigabytes","0.00000095367432":"Bytes to Megabytes","0.0009765625":"Bytes to Kilobytes","0.00000001653439":"Timeticks to weeks","0.00000011574074":"Timeticks to days"}');
|
INSERT INTO tconfig (token, value) VALUES ('post_process_custom_values', '{"0.00000038580247":"Seconds to months","0.00000165343915":"Seconds to weeks","0.00001157407407":"Seconds to days","0.01666666666667":"Seconds to minutes","0.00000000093132":"Bytes to Gigabytes","0.00000095367432":"Bytes to Megabytes","0.0009765625":"Bytes to Kilobytes","0.00000001653439":"Timeticks to weeks","0.00000011574074":"Timeticks to days"}');
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
||||||
|
|
|
@ -1896,6 +1896,7 @@ CREATE TABLE tnetflow_filter (
|
||||||
ip_src CLOB,
|
ip_src CLOB,
|
||||||
dst_port CLOB,
|
dst_port CLOB,
|
||||||
src_port CLOB,
|
src_port CLOB,
|
||||||
|
router_ip CLOB,
|
||||||
advanced_filter CLOB,
|
advanced_filter CLOB,
|
||||||
filter_args CLOB,
|
filter_args CLOB,
|
||||||
aggregate VARCHAR2(60),
|
aggregate VARCHAR2(60),
|
||||||
|
|
|
@ -1597,6 +1597,7 @@ CREATE TABLE "tnetflow_filter" (
|
||||||
"ip_src" TEXT NOT NULL,
|
"ip_src" TEXT NOT NULL,
|
||||||
"dst_port" TEXT NOT NULL,
|
"dst_port" TEXT NOT NULL,
|
||||||
"src_port" TEXT NOT NULL,
|
"src_port" TEXT NOT NULL,
|
||||||
|
"router_ip" TEXT NOT NULL,
|
||||||
"advanced_filter" TEXT NOT NULL,
|
"advanced_filter" TEXT NOT NULL,
|
||||||
"filter_args" TEXT NOT NULL,
|
"filter_args" TEXT NOT NULL,
|
||||||
"aggregate" varchar(60),
|
"aggregate" varchar(60),
|
||||||
|
|
|
@ -1720,6 +1720,7 @@ CREATE TABLE IF NOT EXISTS `tnetflow_filter` (
|
||||||
`ip_src` TEXT NOT NULL,
|
`ip_src` TEXT NOT NULL,
|
||||||
`dst_port` TEXT NOT NULL,
|
`dst_port` TEXT NOT NULL,
|
||||||
`src_port` TEXT NOT NULL,
|
`src_port` TEXT NOT NULL,
|
||||||
|
`router_ip` TEXT NOT NULL,
|
||||||
`advanced_filter` TEXT NOT NULL,
|
`advanced_filter` TEXT NOT NULL,
|
||||||
`filter_args` TEXT NOT NULL,
|
`filter_args` TEXT NOT NULL,
|
||||||
`aggregate` varchar(60),
|
`aggregate` varchar(60),
|
||||||
|
|
|
@ -109,6 +109,7 @@ INSERT INTO `tconfig` (`token`, `value`) VALUES
|
||||||
('custom_report_front_logo', 'images/pandora_logo_white.jpg'),
|
('custom_report_front_logo', 'images/pandora_logo_white.jpg'),
|
||||||
('custom_report_front_header', ''),
|
('custom_report_front_header', ''),
|
||||||
('custom_report_front_footer', ''),
|
('custom_report_front_footer', ''),
|
||||||
|
('MR', 0),
|
||||||
('identification_reminder', 1),
|
('identification_reminder', 1),
|
||||||
('identification_reminder_timestamp', 0),
|
('identification_reminder_timestamp', 0),
|
||||||
('post_process_custom_values', '{"0.00000038580247":"Seconds to months","0.00000165343915":"Seconds to weeks","0.00001157407407":"Seconds to days","0.01666666666667":"Seconds to minutes","0.00000000093132":"Bytes to Gigabytes","0.00000095367432":"Bytes to Megabytes","0.0009765625":"Bytes to Kilobytes","0.00000001653439":"Timeticks to weeks","0.00000011574074":"Timeticks to days"}');
|
('post_process_custom_values', '{"0.00000038580247":"Seconds to months","0.00000165343915":"Seconds to weeks","0.00001157407407":"Seconds to days","0.01666666666667":"Seconds to minutes","0.00000000093132":"Bytes to Gigabytes","0.00000095367432":"Bytes to Megabytes","0.0009765625":"Bytes to Kilobytes","0.00000001653439":"Timeticks to weeks","0.00000011574074":"Timeticks to days"}');
|
||||||
|
|