mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 00:04:37 +02:00
Merge branch 'develop' into 'ent-12857-tickets-vmware-776'
# Conflicts: # pandora_console/extras/mr/68.sql
This commit is contained in:
commit
680ad1b8db
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-agent-unix
|
package: pandorafms-agent-unix
|
||||||
Version: 7.0NG.775-240207
|
Version: 7.0NG.775-240212
|
||||||
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.0NG.775-240207"
|
pandora_version="7.0NG.775-240212"
|
||||||
|
|
||||||
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
|
||||||
|
@ -1039,7 +1039,7 @@ my $Sem = undef;
|
|||||||
my $ThreadSem = undef;
|
my $ThreadSem = undef;
|
||||||
|
|
||||||
use constant AGENT_VERSION => '7.0NG.775';
|
use constant AGENT_VERSION => '7.0NG.775';
|
||||||
use constant AGENT_BUILD => '240207';
|
use constant AGENT_BUILD => '240212';
|
||||||
|
|
||||||
# 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;
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
%global __os_install_post %{nil}
|
%global __os_install_post %{nil}
|
||||||
%define name pandorafms_agent_linux
|
%define name pandorafms_agent_linux
|
||||||
%define version 7.0NG.775
|
%define version 7.0NG.775
|
||||||
%define release 240207
|
%define release 240212
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, PERL version
|
Summary: Pandora FMS Linux agent, PERL version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
%define name pandorafms_agent_linux_bin
|
%define name pandorafms_agent_linux_bin
|
||||||
%define source_name pandorafms_agent_linux
|
%define source_name pandorafms_agent_linux
|
||||||
%define version 7.0NG.775
|
%define version 7.0NG.775
|
||||||
%define release 240207
|
%define release 240212
|
||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, binary version
|
Summary: Pandora FMS Linux agent, binary version
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
%define name pandorafms_agent_linux_bin
|
%define name pandorafms_agent_linux_bin
|
||||||
%define source_name pandorafms_agent_linux
|
%define source_name pandorafms_agent_linux
|
||||||
%define version 7.0NG.775
|
%define version 7.0NG.775
|
||||||
%define release 240207
|
%define release 240212
|
||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, binary version
|
Summary: Pandora FMS Linux agent, binary version
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
%define name pandorafms_agent_linux_bin
|
%define name pandorafms_agent_linux_bin
|
||||||
%define source_name pandorafms_agent_linux
|
%define source_name pandorafms_agent_linux
|
||||||
%define version 7.0NG.775
|
%define version 7.0NG.775
|
||||||
%define release 240207
|
%define release 240212
|
||||||
|
|
||||||
Summary: Pandora FMS Linux agent, binary version
|
Summary: Pandora FMS Linux agent, binary version
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
%global __os_install_post %{nil}
|
%global __os_install_post %{nil}
|
||||||
%define name pandorafms_agent_linux
|
%define name pandorafms_agent_linux
|
||||||
%define version 7.0NG.775
|
%define version 7.0NG.775
|
||||||
%define release 240207
|
%define release 240212
|
||||||
|
|
||||||
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.0NG.775"
|
PI_VERSION="7.0NG.775"
|
||||||
PI_BUILD="240207"
|
PI_BUILD="240212"
|
||||||
OS_NAME=`uname -s`
|
OS_NAME=`uname -s`
|
||||||
|
|
||||||
FORCE=0
|
FORCE=0
|
||||||
|
@ -186,7 +186,7 @@ UpgradeApplicationID
|
|||||||
{}
|
{}
|
||||||
|
|
||||||
Version
|
Version
|
||||||
{240207}
|
{240212}
|
||||||
|
|
||||||
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.0NG.775 Build 240207")
|
#define PANDORA_VERSION ("7.0NG.775 Build 240212")
|
||||||
|
|
||||||
string pandora_path;
|
string pandora_path;
|
||||||
string pandora_dir;
|
string pandora_dir;
|
||||||
|
@ -11,7 +11,7 @@ BEGIN
|
|||||||
VALUE "LegalCopyright", "Pandora FMS"
|
VALUE "LegalCopyright", "Pandora FMS"
|
||||||
VALUE "OriginalFilename", "PandoraAgent.exe"
|
VALUE "OriginalFilename", "PandoraAgent.exe"
|
||||||
VALUE "ProductName", "Pandora FMS Windows Agent"
|
VALUE "ProductName", "Pandora FMS Windows Agent"
|
||||||
VALUE "ProductVersion", "(7.0NG.775(Build 240207))"
|
VALUE "ProductVersion", "(7.0NG.775(Build 240212))"
|
||||||
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.0NG.775-240207
|
Version: 7.0NG.775-240212
|
||||||
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.0NG.775-240207"
|
pandora_version="7.0NG.775-240212"
|
||||||
|
|
||||||
package_pear=0
|
package_pear=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
@ -128,6 +128,6 @@ if (empty($data)) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo '{
|
echo '{
|
||||||
"label": "'.htmlspecialchars($graph_title, ENT_QUOTES).'",
|
"label": "'.htmlspecialchars(($graph_title ?? ''), ENT_QUOTES).'",
|
||||||
"data": [["'.time().'", '.htmlspecialchars($data, ENT_QUOTES).']]
|
"data": [["'.time().'", '.htmlspecialchars(($data ?? ''), ENT_QUOTES).']]
|
||||||
}';
|
}';
|
||||||
|
@ -61,4 +61,11 @@ ALTER TABLE `tmensajes` ADD COLUMN `icon_notification` VARCHAR(250) NULL DEFAULT
|
|||||||
UPDATE `tncm_template` SET `vendors` = CONCAT('["', TRIM(BOTH '"' FROM TRIM(BOTH ']' FROM TRIM(BOTH '[' FROM vendors))), '"]'), `models` = CONCAT('["', TRIM(BOTH '"' FROM TRIM(BOTH ']' FROM TRIM(BOTH '[' FROM models))), '"]');
|
UPDATE `tncm_template` SET `vendors` = CONCAT('["', TRIM(BOTH '"' FROM TRIM(BOTH ']' FROM TRIM(BOTH '[' FROM vendors))), '"]'), `models` = CONCAT('["', TRIM(BOTH '"' FROM TRIM(BOTH ']' FROM TRIM(BOTH '[' FROM models))), '"]');
|
||||||
UPDATE `tncm_agent_data_template` SET `vendors` = CONCAT('["', TRIM(BOTH '"' FROM TRIM(BOTH ']' FROM TRIM(BOTH '[' FROM vendors))), '"]'), `models` = CONCAT('["', TRIM(BOTH '"' FROM TRIM(BOTH ']' FROM TRIM(BOTH '[' FROM models))), '"]');
|
UPDATE `tncm_agent_data_template` SET `vendors` = CONCAT('["', TRIM(BOTH '"' FROM TRIM(BOTH ']' FROM TRIM(BOTH '[' FROM vendors))), '"]'), `models` = CONCAT('["', TRIM(BOTH '"' FROM TRIM(BOTH ']' FROM TRIM(BOTH '[' FROM models))), '"]');
|
||||||
|
|
||||||
|
-- Update version for plugin oracle
|
||||||
|
UPDATE `tdiscovery_apps` SET `version` = '1.2' WHERE `short_name` = 'pandorafms.oracle';
|
||||||
|
|
||||||
|
SET @widget_id = NULL;
|
||||||
|
SELECT @widget_id := `id` FROM `twidget` WHERE `unique_name` = 'GisMap';
|
||||||
|
INSERT IGNORE INTO `twidget` (`id`,`class_name`,`unique_name`,`description`,`options`,`page`) VALUES (@widget_id,'GisMap','GisMap','Gis map','','GisMap.php');
|
||||||
|
|
||||||
COMMIT;
|
COMMIT;
|
@ -150,7 +150,7 @@ if (is_ajax()) {
|
|||||||
$component = db_get_row('tlocal_component', 'id', $id_component);
|
$component = db_get_row('tlocal_component', 'id', $id_component);
|
||||||
foreach ($component as $index => $element) {
|
foreach ($component as $index => $element) {
|
||||||
$component[$index] = html_entity_decode(
|
$component[$index] = html_entity_decode(
|
||||||
$element,
|
(isset($element) === true) ? $element : '',
|
||||||
ENT_QUOTES,
|
ENT_QUOTES,
|
||||||
'UTF-8'
|
'UTF-8'
|
||||||
);
|
);
|
||||||
|
@ -505,7 +505,7 @@ $tableBasicThresholds->data['caption_switch_warning_inverse_string'][0] = html_p
|
|||||||
$tableBasicThresholds->data['caption_warning_threshold'][0] .= '<span class="font_11" id="caption_str_warning">('.__('Str.').')</span>';
|
$tableBasicThresholds->data['caption_warning_threshold'][0] .= '<span class="font_11" id="caption_str_warning">('.__('Str.').')</span>';
|
||||||
$tableBasicThresholds->data['warning_threshold'][0] .= html_print_input_text(
|
$tableBasicThresholds->data['warning_threshold'][0] .= html_print_input_text(
|
||||||
'str_warning',
|
'str_warning',
|
||||||
str_replace('"', '', $str_warning),
|
str_replace('"', '', (isset($str_warning) === true) ? $str_warning : ''),
|
||||||
'',
|
'',
|
||||||
10,
|
10,
|
||||||
1024,
|
1024,
|
||||||
@ -602,7 +602,7 @@ $tableBasicThresholds->data['switch_critical_threshold'][0] .= html_print_div(
|
|||||||
$tableBasicThresholds->data['caption_critical_threshold'][0] .= '<span class="font_11" id="caption_str_critical">('.__('Str.').')</span>';
|
$tableBasicThresholds->data['caption_critical_threshold'][0] .= '<span class="font_11" id="caption_str_critical">('.__('Str.').')</span>';
|
||||||
$tableBasicThresholds->data['critical_threshold'][0] .= html_print_input_text(
|
$tableBasicThresholds->data['critical_threshold'][0] .= html_print_input_text(
|
||||||
'str_critical',
|
'str_critical',
|
||||||
str_replace('"', '', $str_critical),
|
str_replace('"', '', (isset($str_critical) === true) ? $str_critical : ''),
|
||||||
'',
|
'',
|
||||||
10,
|
10,
|
||||||
1024,
|
1024,
|
||||||
|
@ -60,7 +60,12 @@ $data[1] = html_print_select_from_sql(
|
|||||||
$disabledBecauseInPolicy
|
$disabledBecauseInPolicy
|
||||||
);
|
);
|
||||||
// Store the macros in base64 into a hidden control to move between pages
|
// Store the macros in base64 into a hidden control to move between pages
|
||||||
$data[1] .= html_print_input_hidden('macros', base64_encode($macros), true);
|
$data[1] .= html_print_input_hidden(
|
||||||
|
'macros',
|
||||||
|
(isset($macros) === true) ? base64_encode($macros) : '',
|
||||||
|
true
|
||||||
|
);
|
||||||
|
|
||||||
$table_simple->colspan['plugin_1'][2] = 2;
|
$table_simple->colspan['plugin_1'][2] = 2;
|
||||||
|
|
||||||
if (!empty($id_plugin)) {
|
if (!empty($id_plugin)) {
|
||||||
|
@ -319,9 +319,8 @@ if ($update_agents) {
|
|||||||
$secondary_groups_removed
|
$secondary_groups_removed
|
||||||
);
|
);
|
||||||
|
|
||||||
$agents_values = agents_get_agent((int) $array_id[1]);
|
$agents_values = db_get_row_filter('tagente', ['id_agente' => (int) $array_id[1]]);
|
||||||
$node->disconnect();
|
$node->disconnect();
|
||||||
|
|
||||||
if (empty($values) === false) {
|
if (empty($values) === false) {
|
||||||
update_agents_in_metaconsole(
|
update_agents_in_metaconsole(
|
||||||
(int) $array_id[1],
|
(int) $array_id[1],
|
||||||
|
@ -1500,7 +1500,7 @@ $table->data[39][0] = html_print_label_input_block(
|
|||||||
'',
|
'',
|
||||||
'',
|
'',
|
||||||
true
|
true
|
||||||
).html_print_input_hidden('macros', base64_encode($macros), true)
|
).html_print_input_hidden('macros', base64_encode(($macros ?? '')), true)
|
||||||
);
|
);
|
||||||
|
|
||||||
require_once $config['homedir'].'/include/class/CredentialStore.class.php';
|
require_once $config['homedir'].'/include/class/CredentialStore.class.php';
|
||||||
|
@ -115,7 +115,7 @@ foreach ($servers as $server) {
|
|||||||
|
|
||||||
$table->cellclass[] = [
|
$table->cellclass[] = [
|
||||||
3 => 'progress_bar',
|
3 => 'progress_bar',
|
||||||
8 => 'table_action_buttons',
|
9 => 'table_action_buttons',
|
||||||
];
|
];
|
||||||
$data[0] = '<span title="'.$server['version'].'">'.strip_tags($server['name']).'</span>';
|
$data[0] = '<span title="'.$server['version'].'">'.strip_tags($server['name']).'</span>';
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ if ($idOS > 0) {
|
|||||||
} else {
|
} else {
|
||||||
$name = io_safe_input(strip_tags(trim(io_safe_output((string) get_parameter('name')))));
|
$name = io_safe_input(strip_tags(trim(io_safe_output((string) get_parameter('name')))));
|
||||||
$description = io_safe_input(strip_tags(io_safe_output((string) get_parameter('description'))));
|
$description = io_safe_input(strip_tags(io_safe_output((string) get_parameter('description'))));
|
||||||
$icon = get_parameter('icon', 0);
|
$icon = get_parameter('icon', 'os@svg.svg');
|
||||||
}
|
}
|
||||||
|
|
||||||
$icon_upload = get_parameter('icon_upload', null);
|
$icon_upload = get_parameter('icon_upload', null);
|
||||||
@ -246,7 +246,7 @@ $iconData[] = html_print_select(
|
|||||||
'icon',
|
'icon',
|
||||||
$icon,
|
$icon,
|
||||||
'show_icon_OS();',
|
'show_icon_OS();',
|
||||||
__('None'),
|
'',
|
||||||
0,
|
0,
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
@ -356,6 +356,8 @@ function get_list_os_icons_dir()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$return['os@svg.svg'] = __('None');
|
||||||
|
|
||||||
return $return;
|
return $return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -88,6 +88,14 @@ switch ($tab) {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case 'manage_os':
|
case 'manage_os':
|
||||||
|
$id_os = get_parameter('id_os', '');
|
||||||
|
if ($id_os !== '') {
|
||||||
|
$headerTitle = __('Edit OS');
|
||||||
|
} else {
|
||||||
|
$headerTitle = __('Create OS');
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
case 'list':
|
case 'list':
|
||||||
if ($action === 'edit') {
|
if ($action === 'edit') {
|
||||||
$headerTitle = __('Edit OS');
|
$headerTitle = __('Edit OS');
|
||||||
|
@ -386,7 +386,7 @@ if (empty($result) === false) {
|
|||||||
$data[4] = $output;
|
$data[4] = $output;
|
||||||
|
|
||||||
$phone_large = io_safe_output($tag['phone']);
|
$phone_large = io_safe_output($tag['phone']);
|
||||||
$phone_small = substr($phone_large, 0, 24);
|
$phone_small = substr(($phone_large ?? ''), 0, 24);
|
||||||
if ($phone_large == $phone_small) {
|
if ($phone_large == $phone_small) {
|
||||||
$output = $phone_large;
|
$output = $phone_large;
|
||||||
} else {
|
} else {
|
||||||
|
@ -1581,7 +1581,7 @@ $autorefresh_list_out['operation/events/events'] = 'Events';
|
|||||||
|
|
||||||
if (isset($autorefresh_list) === false || empty($autorefresh_list) === true || empty($autorefresh_list[0]) === true) {
|
if (isset($autorefresh_list) === false || empty($autorefresh_list) === true || empty($autorefresh_list[0]) === true) {
|
||||||
$select = db_process_sql("SELECT autorefresh_white_list FROM tusuario WHERE id_user = '".$id."'");
|
$select = db_process_sql("SELECT autorefresh_white_list FROM tusuario WHERE id_user = '".$id."'");
|
||||||
$autorefresh_list = json_decode($select[0]['autorefresh_white_list']);
|
$autorefresh_list = json_decode(($select[0]['autorefresh_white_list'] ?? ''));
|
||||||
if ($autorefresh_list === null || $autorefresh_list === 0) {
|
if ($autorefresh_list === null || $autorefresh_list === 0) {
|
||||||
$autorefresh_list = [];
|
$autorefresh_list = [];
|
||||||
$autorefresh_list[0] = __('None');
|
$autorefresh_list[0] = __('None');
|
||||||
|
@ -37,6 +37,20 @@ class Applications extends Wizard
|
|||||||
*/
|
*/
|
||||||
public $mode;
|
public $mode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Task properties.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $task;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class of styles.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $class;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
|
@ -37,6 +37,20 @@ class Custom extends Wizard
|
|||||||
*/
|
*/
|
||||||
public $mode;
|
public $mode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Task properties.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $task;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class of styles.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $class;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
|
@ -47,6 +47,13 @@ ui_require_javascript_file('simTree');
|
|||||||
class DiscoveryTaskList extends HTML
|
class DiscoveryTaskList extends HTML
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Task properties.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $task;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
|
@ -1109,7 +1109,7 @@ class HostDevices extends Wizard
|
|||||||
'return' => true,
|
'return' => true,
|
||||||
'selected' => explode(
|
'selected' => explode(
|
||||||
',',
|
',',
|
||||||
$this->task['id_network_profile']
|
(isset($this->task['id_network_profile']) === true) ? $this->task['id_network_profile'] : ''
|
||||||
),
|
),
|
||||||
'nothing_value' => 0,
|
'nothing_value' => 0,
|
||||||
'nothing' => __('None'),
|
'nothing' => __('None'),
|
||||||
|
@ -97,6 +97,13 @@ class Wizard
|
|||||||
*/
|
*/
|
||||||
public $access = 'AR';
|
public $access = 'AR';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Root url.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $rootUrl;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Setter for breadcrum
|
* Setter for breadcrum
|
||||||
@ -550,7 +557,7 @@ class Wizard
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo '<ul class="bigbuttonlist">';
|
echo '<ul class="bigbuttonlist">';
|
||||||
array_map('self::printBigButtonElement', $list_data);
|
array_map(['Wizard', 'printBigButtonElement'], $list_data);
|
||||||
echo '</ul>';
|
echo '</ul>';
|
||||||
|
|
||||||
if ($return === true) {
|
if ($return === true) {
|
||||||
|
BIN
pandora_console/images/widgets/GisMap.png
Normal file
BIN
pandora_console/images/widgets/GisMap.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 9.5 KiB |
@ -250,6 +250,7 @@ if (is_ajax() === true) {
|
|||||||
|
|
||||||
if ($getInfo === true) {
|
if ($getInfo === true) {
|
||||||
enterprise_include_once('include/functions_agents.php');
|
enterprise_include_once('include/functions_agents.php');
|
||||||
|
include_once $config['homedir'].'/include/functions_graph.php';
|
||||||
$id = get_parameter('id', 0);
|
$id = get_parameter('id', 0);
|
||||||
$id_server = get_parameter('id_server', 0);
|
$id_server = get_parameter('id_server', 0);
|
||||||
if (empty($id_server) === false) {
|
if (empty($id_server) === false) {
|
||||||
|
@ -380,5 +380,7 @@ if (session_status() !== PHP_SESSION_DISABLED) {
|
|||||||
// Could give a warning if no session file is created. Ignore.
|
// Could give a warning if no session file is created. Ignore.
|
||||||
@session_destroy();
|
@session_destroy();
|
||||||
header_remove('Set-Cookie');
|
header_remove('Set-Cookie');
|
||||||
setcookie(session_name(), $_COOKIE[session_name()], (time() - 4800), '/');
|
if (isset($_COOKIE[session_name()]) === true) {
|
||||||
|
setcookie(session_name(), $_COOKIE[session_name()], (time() - 4800), '/');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -572,10 +572,10 @@ function get_user_info($user)
|
|||||||
*
|
*
|
||||||
* @return array An array of user information
|
* @return array An array of user information
|
||||||
*/
|
*/
|
||||||
function get_users($order='fullname', $filter=false, $fields=false)
|
function get_users($order='fullname', $filter=[], $fields=false)
|
||||||
{
|
{
|
||||||
if (is_array($order) === true) {
|
if (is_array($order) === true) {
|
||||||
$filter['order'] = $order['field'].' '.$order['order'];
|
$filter['order'] = (string) $order['field'].' '.(string) $order['order'];
|
||||||
} else {
|
} else {
|
||||||
if ($order !== 'registered' || $order !== 'last_connect' || $order !== 'fullname') {
|
if ($order !== 'registered' || $order !== 'last_connect' || $order !== 'fullname') {
|
||||||
$order = 'fullname';
|
$order = 'fullname';
|
||||||
|
@ -53,6 +53,48 @@ class AuditLog extends HTML
|
|||||||
*/
|
*/
|
||||||
private $ajaxController;
|
private $ajaxController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TableId
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
public $tableId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FilterIp
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $filterIp;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FilterPeriod
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
public $filterPeriod;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FilterText
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $filterText;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FilterType
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $filterType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* FilterUser
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $filterUser;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class constructor
|
* Class constructor
|
||||||
|
@ -66,6 +66,13 @@ class CalendarManager
|
|||||||
*/
|
*/
|
||||||
private $message;
|
private $message;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Access
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $access;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allowed methods to be called using AJAX request.
|
* Allowed methods to be called using AJAX request.
|
||||||
*
|
*
|
||||||
|
@ -850,7 +850,7 @@ class CredentialStore extends Wizard
|
|||||||
'privilege' => 'AR',
|
'privilege' => 'AR',
|
||||||
'type' => 'select_groups',
|
'type' => 'select_groups',
|
||||||
'nothing' => false,
|
'nothing' => false,
|
||||||
'selected' => (defined($id_group_filter) ? $id_group_filter : 0),
|
'selected' => ((isset($id_group_filter) === true) ? $id_group_filter : 0),
|
||||||
'return' => true,
|
'return' => true,
|
||||||
'size' => '80%',
|
'size' => '80%',
|
||||||
],
|
],
|
||||||
|
@ -54,6 +54,13 @@ class Diagnostics extends Wizard
|
|||||||
*/
|
*/
|
||||||
public $pdf;
|
public $pdf;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Product name.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $product_name;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
|
@ -38,6 +38,62 @@ require_once $config['homedir'].'/include/class/HTML.class.php';
|
|||||||
class ExternalTools extends HTML
|
class ExternalTools extends HTML
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Origin
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $origin;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PathCustomComm
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $pathCustomComm;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PathDig
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $pathDig;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PathNmap
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $pathNmap;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PathPing
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $pathPing;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PathSnmpget
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $pathSnmpget;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* PathTraceroute
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $pathTraceroute;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* UpdatePaths
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $updatePaths;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor.
|
* Constructor.
|
||||||
|
@ -706,7 +706,7 @@ class NetworkMap
|
|||||||
*/
|
*/
|
||||||
public function setNodes($nodes)
|
public function setNodes($nodes)
|
||||||
{
|
{
|
||||||
$this->nodes = $nodes;
|
$this->nodes = (array) $nodes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -52,6 +52,13 @@ class OrderInterpreter extends Wizard
|
|||||||
*/
|
*/
|
||||||
public $ajaxController;
|
public $ajaxController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pages menu
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $pages_menu;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Generates a JSON error.
|
* Generates a JSON error.
|
||||||
|
@ -67,6 +67,34 @@ class SatelliteAgent extends HTML
|
|||||||
*/
|
*/
|
||||||
private $ajaxController;
|
private $ajaxController;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Satellite_name
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $satellite_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Satellite_server
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $satellite_server;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TableId
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
public $tableId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Satellite_config
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $satellite_config;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class constructor
|
* Class constructor
|
||||||
|
@ -20,7 +20,7 @@
|
|||||||
/**
|
/**
|
||||||
* Pandora build version and version
|
* Pandora build version and version
|
||||||
*/
|
*/
|
||||||
$build_version = 'PC240207';
|
$build_version = 'PC240212';
|
||||||
$pandora_version = 'v7.0NG.775';
|
$pandora_version = 'v7.0NG.775';
|
||||||
|
|
||||||
// Do not overwrite default timezone set if defined.
|
// Do not overwrite default timezone set if defined.
|
||||||
|
@ -2917,6 +2917,10 @@ function delete_dir($dir)
|
|||||||
*/
|
*/
|
||||||
function is_image_data($data)
|
function is_image_data($data)
|
||||||
{
|
{
|
||||||
|
if (isset($data) === false) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
return (substr($data, 0, 10) == 'data:image');
|
return (substr($data, 0, 10) == 'data:image');
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2939,7 +2943,7 @@ function is_snapshot_data($data)
|
|||||||
*/
|
*/
|
||||||
function is_text_to_black_string($data)
|
function is_text_to_black_string($data)
|
||||||
{
|
{
|
||||||
if (is_image_data($data)) {
|
if (isset($data) === false || is_image_data($data)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -541,7 +541,7 @@ function api_get_groups($thrash1, $thrash2, $other, $returnType, $user_in_db)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function api_get_agent_module_name_last_value($agentName, $moduleName, $other=';', $returnType)
|
function api_get_agent_module_name_last_value($agentName, $moduleName, $other=';', $returnType='string')
|
||||||
{
|
{
|
||||||
$idAgent = agents_get_agent_id($agentName);
|
$idAgent = agents_get_agent_id($agentName);
|
||||||
|
|
||||||
@ -558,7 +558,7 @@ function api_get_agent_module_name_last_value($agentName, $moduleName, $other=';
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function api_get_agent_module_name_last_value_alias($alias, $moduleName, $other=';', $returnType)
|
function api_get_agent_module_name_last_value_alias($alias, $moduleName, $other=';', $returnType='string')
|
||||||
{
|
{
|
||||||
$sql = sprintf(
|
$sql = sprintf(
|
||||||
'SELECT tagente_modulo.id_agente_modulo FROM tagente_modulo
|
'SELECT tagente_modulo.id_agente_modulo FROM tagente_modulo
|
||||||
@ -573,7 +573,7 @@ function api_get_agent_module_name_last_value_alias($alias, $moduleName, $other=
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function api_get_module_last_value($idAgentModule, $trash1, $other=';', $returnType)
|
function api_get_module_last_value($idAgentModule, $trash1, $other=';', $returnType='string')
|
||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
if (defined('METACONSOLE')) {
|
if (defined('METACONSOLE')) {
|
||||||
|
@ -440,7 +440,7 @@ function extensions_add_operation_menu_option($name, $fatherId=null, $icon=null,
|
|||||||
$option_menu['acl'] = $acl;
|
$option_menu['acl'] = $acl;
|
||||||
$extension = &$config['extensions'][$extension_file];
|
$extension = &$config['extensions'][$extension_file];
|
||||||
|
|
||||||
$option_menu['sec2'] = $extension['dir'].'/'.mb_substr($extension_file, 0, -4);
|
$option_menu['sec2'] = $extension['dir'].'/'.mb_substr(($extension_file ?? ''), 0, -4);
|
||||||
$option_menu['fatherId'] = $fatherId;
|
$option_menu['fatherId'] = $fatherId;
|
||||||
$option_menu['subfatherId'] = $subfatherId;
|
$option_menu['subfatherId'] = $subfatherId;
|
||||||
$option_menu['icon'] = $icon;
|
$option_menu['icon'] = $icon;
|
||||||
|
@ -100,7 +100,7 @@ function forecast_projection_graph(
|
|||||||
|
|
||||||
$data[0] = '';
|
$data[0] = '';
|
||||||
$data[1] = $cont;
|
$data[1] = $cont;
|
||||||
$data[2] = date($config['date_format'], $row[0]);
|
$data[2] = date($config['date_format'], (int) $row[0]);
|
||||||
$data[3] = $row[0];
|
$data[3] = $row[0];
|
||||||
$data[4] = $row[1];
|
$data[4] = $row[1];
|
||||||
$data[5] = ($row[0] * $row[1]);
|
$data[5] = ($row[0] * $row[1]);
|
||||||
|
@ -82,11 +82,11 @@ function io_safe_input($value)
|
|||||||
return $value;
|
return $value;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! mb_check_encoding($value, 'UTF-8')) {
|
if (isset($value) === true && !mb_check_encoding($value, 'UTF-8')) {
|
||||||
$value = utf8_encode($value);
|
$value = utf8_encode($value);
|
||||||
}
|
}
|
||||||
|
|
||||||
$valueHtmlEncode = htmlentities($value, ENT_QUOTES, 'UTF-8', true);
|
$valueHtmlEncode = htmlentities(($value ?? ''), ENT_QUOTES, 'UTF-8', true);
|
||||||
|
|
||||||
// Replace the character '\' for the equivalent html entitie
|
// Replace the character '\' for the equivalent html entitie
|
||||||
$valueHtmlEncode = str_replace('\\', '\', $valueHtmlEncode);
|
$valueHtmlEncode = str_replace('\\', '\', $valueHtmlEncode);
|
||||||
@ -561,10 +561,8 @@ function io_output_password($password, $wrappedBy='')
|
|||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
|
||||||
$output = ($plaintext === ENTERPRISE_NOT_HOOK) ? $password : $plaintext;
|
|
||||||
|
|
||||||
// If password already decrypt return same password.
|
// If password already decrypt return same password.
|
||||||
$output = (empty($plaintext) === true) ? $password : $plaintext;
|
$output = (empty($plaintext) === true || $plaintext === ENTERPRISE_NOT_HOOK) ? $password : $plaintext;
|
||||||
|
|
||||||
return sprintf(
|
return sprintf(
|
||||||
'%s%s%s',
|
'%s%s%s',
|
||||||
|
@ -819,7 +819,7 @@ function notifications_print_global_source_configuration($source)
|
|||||||
|
|
||||||
$html_checkboxes = '';
|
$html_checkboxes = '';
|
||||||
|
|
||||||
$blacklist = json_decode($source['subtype_blacklist'], 1);
|
$blacklist = json_decode(($source['subtype_blacklist'] ?? ''), 1);
|
||||||
if (json_last_error() !== JSON_ERROR_NONE) {
|
if (json_last_error() !== JSON_ERROR_NONE) {
|
||||||
$blacklist = [];
|
$blacklist = [];
|
||||||
}
|
}
|
||||||
|
@ -243,6 +243,7 @@ function profile_print_profile_table($id, $json_profile=false, $return=false, $c
|
|||||||
$profile = json_decode($profile);
|
$profile = json_decode($profile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$result = [];
|
||||||
$result[] = [
|
$result[] = [
|
||||||
'id_grupo' => $profile->group,
|
'id_grupo' => $profile->group,
|
||||||
'id_perfil' => $profile->profile,
|
'id_perfil' => $profile->profile,
|
||||||
|
@ -1039,7 +1039,7 @@ function treeview_printTable($id_agente, $server_data=[], $no_head=false)
|
|||||||
echo "
|
echo "
|
||||||
<script>
|
<script>
|
||||||
function sendHash(url) {
|
function sendHash(url) {
|
||||||
window.open(url+'&loginhash=auto&loginhash_data=".$hashdata.'&loginhash_user='.str_rot13($user)."', '_blank');
|
window.open(url+'&loginhash=auto&loginhash_data=".$hashdata.'&loginhash_user='.str_rot13(($user ?? ''))."', '_blank');
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -148,7 +148,7 @@ function ui_print_truncate_text(
|
|||||||
$text_html_decoded = io_safe_output($text);
|
$text_html_decoded = io_safe_output($text);
|
||||||
$text_has_entities = $text != $text_html_decoded;
|
$text_has_entities = $text != $text_html_decoded;
|
||||||
|
|
||||||
if (mb_strlen($text_html_decoded, 'UTF-8') > ($numChars)) {
|
if (isset($text_html_decoded) === true && mb_strlen($text_html_decoded, 'UTF-8') > ($numChars)) {
|
||||||
// '/2' because [...] is in the middle of the word.
|
// '/2' because [...] is in the middle of the word.
|
||||||
$half_length = intval(($numChars - 3) / 2);
|
$half_length = intval(($numChars - 3) / 2);
|
||||||
|
|
||||||
@ -969,15 +969,27 @@ function ui_print_os_icon(
|
|||||||
$options['title'] = $os_name;
|
$options['title'] = $os_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
$output = html_print_image(
|
if ($icon === '.png') {
|
||||||
'images/'.$subfolder.'/'.$icon,
|
$output = html_print_image(
|
||||||
true,
|
'images/os@svg.svg',
|
||||||
$options,
|
true,
|
||||||
false,
|
$options,
|
||||||
$relative,
|
false,
|
||||||
$no_in_meta,
|
$relative,
|
||||||
true
|
$no_in_meta,
|
||||||
);
|
true
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$output = html_print_image(
|
||||||
|
'images/'.$subfolder.'/'.$icon,
|
||||||
|
true,
|
||||||
|
$options,
|
||||||
|
false,
|
||||||
|
$relative,
|
||||||
|
$no_in_meta,
|
||||||
|
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 . "'>";
|
||||||
|
@ -301,6 +301,13 @@ function gd_progress_bubble($width, $height, $progress, $title, $font, $out_of_l
|
|||||||
|
|
||||||
function ImageRectangleWithRoundedCorners(&$im, $x1, $y1, $x2, $y2, $radius, $color)
|
function ImageRectangleWithRoundedCorners(&$im, $x1, $y1, $x2, $y2, $radius, $color)
|
||||||
{
|
{
|
||||||
|
$x1 = (int) $x1;
|
||||||
|
$y1 = (int) $y1;
|
||||||
|
$x2 = (int) $x2;
|
||||||
|
$y2 = (int) $y2;
|
||||||
|
$radius = (int) $radius;
|
||||||
|
$color = (int) $color;
|
||||||
|
|
||||||
// Draw rectangle without corners
|
// Draw rectangle without corners
|
||||||
imagefilledrectangle($im, ($x1 + $radius), $y1, ($x2 - $radius), $y2, $color);
|
imagefilledrectangle($im, ($x1 + $radius), $y1, ($x2 - $radius), $y2, $color);
|
||||||
imagefilledrectangle($im, $x1, ($y1 + $radius), $x2, ($y2 - $radius), $color);
|
imagefilledrectangle($im, $x1, ($y1 + $radius), $x2, ($y2 - $radius), $color);
|
||||||
|
@ -113,6 +113,13 @@ class ClusterWizard extends \HTML
|
|||||||
*/
|
*/
|
||||||
private $agent;
|
private $agent;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Id of clusters.
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
public $id;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Builds a Cluster Wizard.
|
* Builds a Cluster Wizard.
|
||||||
|
@ -167,6 +167,20 @@ class Manager implements PublicLogin
|
|||||||
*/
|
*/
|
||||||
private $duplicateCellId;
|
private $duplicateCellId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Url
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
public $url;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Widget
|
||||||
|
*
|
||||||
|
* @var Widget
|
||||||
|
*/
|
||||||
|
public $cWidget;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allowed methods to be called using AJAX request.
|
* Allowed methods to be called using AJAX request.
|
||||||
*
|
*
|
||||||
|
@ -65,6 +65,27 @@ class Widget
|
|||||||
*/
|
*/
|
||||||
private $dateTo;
|
private $dateTo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Data cell
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $dataCell;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overflow scrollbar.
|
||||||
|
*
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
public $overflow_scrollbars;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Position
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $position;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Contructor widget.
|
* Contructor widget.
|
||||||
|
@ -226,7 +226,7 @@ class AgentHive extends Widget
|
|||||||
'name' => 'groups[]',
|
'name' => 'groups[]',
|
||||||
'returnAllGroup' => false,
|
'returnAllGroup' => false,
|
||||||
'privilege' => 'AR',
|
'privilege' => 'AR',
|
||||||
'selected' => explode(',', $values['groups'][0]),
|
'selected' => (isset($values['groups'][0]) === true) ? explode(',', $values['groups'][0]) : [],
|
||||||
'return' => true,
|
'return' => true,
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
'required' => true,
|
'required' => true,
|
||||||
|
@ -117,6 +117,13 @@ class DataMatrix extends Widget
|
|||||||
*/
|
*/
|
||||||
protected $cellId;
|
protected $cellId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Position
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $size;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct.
|
* Construct.
|
||||||
|
541
pandora_console/include/lib/Dashboard/Widgets/GisMap.php
Normal file
541
pandora_console/include/lib/Dashboard/Widgets/GisMap.php
Normal file
@ -0,0 +1,541 @@
|
|||||||
|
<?php
|
||||||
|
/**
|
||||||
|
* Widget agiss map Pandora FMS Console
|
||||||
|
*
|
||||||
|
* @category Console Class
|
||||||
|
* @package Pandora FMS
|
||||||
|
* @subpackage Widget
|
||||||
|
* @version 1.0.0
|
||||||
|
* @license See below
|
||||||
|
*
|
||||||
|
* ______ ___ _______ _______ ________
|
||||||
|
* | __ \.-----.--.--.--| |.-----.----.-----. | ___| | | __|
|
||||||
|
* | __/| _ | | _ || _ | _| _ | | ___| |__ |
|
||||||
|
* |___| |___._|__|__|_____||_____|__| |___._| |___| |__|_|__|_______|
|
||||||
|
*
|
||||||
|
* ============================================================================
|
||||||
|
* Copyright (c) 2005-2024 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.
|
||||||
|
* ============================================================================
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace PandoraFMS\Dashboard;
|
||||||
|
|
||||||
|
use PandoraFMS\Enterprise\Metaconsole\Node;
|
||||||
|
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* URL Widgets
|
||||||
|
*/
|
||||||
|
class GisMap extends Widget
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name widget.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Title widget.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $title;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Page widget;
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $page;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class name widget.
|
||||||
|
*
|
||||||
|
* @var [type]
|
||||||
|
*/
|
||||||
|
protected $className;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Values options for each widget.
|
||||||
|
*
|
||||||
|
* @var [type]
|
||||||
|
*/
|
||||||
|
protected $values;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configuration required.
|
||||||
|
*
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
protected $configurationRequired;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Error load widget.
|
||||||
|
*
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
protected $loadError;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Width.
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
protected $width;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Heigth.
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
protected $height;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Grid Width.
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
protected $gridWidth;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Cell ID.
|
||||||
|
*
|
||||||
|
* @var integer
|
||||||
|
*/
|
||||||
|
protected $cellId;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Construct.
|
||||||
|
*
|
||||||
|
* @param integer $cellId Cell ID.
|
||||||
|
* @param integer $dashboardId Dashboard ID.
|
||||||
|
* @param integer $widgetId Widget ID.
|
||||||
|
* @param integer|null $width New width.
|
||||||
|
* @param integer|null $height New height.
|
||||||
|
* @param integer|null $gridWidth Grid width.
|
||||||
|
*/
|
||||||
|
public function __construct(
|
||||||
|
int $cellId,
|
||||||
|
int $dashboardId=0,
|
||||||
|
int $widgetId=0,
|
||||||
|
?int $width=0,
|
||||||
|
?int $height=0,
|
||||||
|
?int $gridWidth=0
|
||||||
|
) {
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
// WARNING: Do not edit. This chunk must be in the constructor.
|
||||||
|
parent::__construct(
|
||||||
|
$cellId,
|
||||||
|
$dashboardId,
|
||||||
|
$widgetId
|
||||||
|
);
|
||||||
|
|
||||||
|
// Width.
|
||||||
|
$this->width = $width;
|
||||||
|
|
||||||
|
// Height.
|
||||||
|
$this->height = $height;
|
||||||
|
|
||||||
|
// Grid Width.
|
||||||
|
$this->gridWidth = $gridWidth;
|
||||||
|
|
||||||
|
// Cell Id.
|
||||||
|
$this->cellId = $cellId;
|
||||||
|
|
||||||
|
// Options.
|
||||||
|
$this->values = $this->decoders($this->getOptionsWidget());
|
||||||
|
|
||||||
|
// Page.
|
||||||
|
$this->page = basename(__FILE__);
|
||||||
|
|
||||||
|
// ClassName.
|
||||||
|
$class = new \ReflectionClass($this);
|
||||||
|
$this->className = $class->getShortName();
|
||||||
|
|
||||||
|
// Title.
|
||||||
|
$this->title = __('Gis map');
|
||||||
|
|
||||||
|
// Name.
|
||||||
|
if (empty($this->name) === true) {
|
||||||
|
$this->name = 'GisMap';
|
||||||
|
}
|
||||||
|
|
||||||
|
// This forces at least a first configuration.
|
||||||
|
$this->configurationRequired = false;
|
||||||
|
if (empty($this->values['gis_map']) === true) {
|
||||||
|
$this->configurationRequired = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decoders hack for retrocompability.
|
||||||
|
*
|
||||||
|
* @param array $decoder Values.
|
||||||
|
*
|
||||||
|
* @return array Returns the values with the correct key.
|
||||||
|
*/
|
||||||
|
public function decoders(array $decoder): array
|
||||||
|
{
|
||||||
|
$values = [];
|
||||||
|
// Retrieve global - common inputs.
|
||||||
|
$values = parent::decoders($decoder);
|
||||||
|
|
||||||
|
if (isset($decoder['gis_map']) === true) {
|
||||||
|
$values['gis_map'] = $decoder['gis_map'];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $values;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generates inputs for form (specific).
|
||||||
|
*
|
||||||
|
* @return array Of inputs.
|
||||||
|
*
|
||||||
|
* @throws Exception On error.
|
||||||
|
*/
|
||||||
|
public function getFormInputs(): array
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
include_once $config['homedir'].'/include/functions_gis.php';
|
||||||
|
|
||||||
|
// Retrieve global - common inputs.
|
||||||
|
$inputs = parent::getFormInputs();
|
||||||
|
|
||||||
|
if ((bool) $config['activate_gis'] === true) {
|
||||||
|
$maps = gis_get_maps();
|
||||||
|
}
|
||||||
|
|
||||||
|
$array_map = [];
|
||||||
|
foreach ($maps as $map) {
|
||||||
|
if (check_acl($config['id_user'], $map['group_id'], 'MR') === false
|
||||||
|
&& check_acl($config['id_user'], $map['group_id'], 'MW') === false
|
||||||
|
&& check_acl($config['id_user'], $map['group_id'], 'MM') === false
|
||||||
|
) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
$array_map[$map['id_tgis_map']] = $map['map_name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
// Filters.
|
||||||
|
$inputs[] = [
|
||||||
|
'class' => 'flex flex-row',
|
||||||
|
'label' => __('GIS maps'),
|
||||||
|
'arguments' => [
|
||||||
|
'type' => 'select',
|
||||||
|
'fields' => $array_map,
|
||||||
|
'name' => 'gis_map',
|
||||||
|
'return' => true,
|
||||||
|
'selected' => ($this->values['gis_map'] === null) ? 0 : $this->values['gis_map'],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
|
||||||
|
return $inputs;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Post for widget.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getPost(): array
|
||||||
|
{
|
||||||
|
// Retrieve global - common inputs.
|
||||||
|
$values = parent::getPost();
|
||||||
|
|
||||||
|
$values['gis_map'] = \get_parameter('gis_map', 0);
|
||||||
|
|
||||||
|
return $values;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Draw widget.
|
||||||
|
*
|
||||||
|
* @return string;
|
||||||
|
*/
|
||||||
|
public function load()
|
||||||
|
{
|
||||||
|
global $config;
|
||||||
|
|
||||||
|
include_once $config['homedir'].'/include/functions_gis.php';
|
||||||
|
include_once $config['homedir'].'/include/functions_agents.php';
|
||||||
|
|
||||||
|
\ui_require_javascript_file('openlayers.pandora', 'include/javascript/', true);
|
||||||
|
\ui_require_javascript_file('OpenLayers/OpenLayers', 'include/javascript/', true);
|
||||||
|
|
||||||
|
$map = db_get_row('tgis_map', 'id_tgis_map', $this->values['gis_map']);
|
||||||
|
|
||||||
|
$output = '';
|
||||||
|
if (check_acl($config['id_user'], $map['group_id'], 'MR') === false
|
||||||
|
&& check_acl($config['id_user'], $map['group_id'], 'MW') === false
|
||||||
|
&& check_acl($config['id_user'], $map['group_id'], 'MM') === false
|
||||||
|
) {
|
||||||
|
$output .= '<div class="container-center">';
|
||||||
|
$output .= ui_print_error_message(
|
||||||
|
__('You don\'t have access'),
|
||||||
|
'',
|
||||||
|
true
|
||||||
|
);
|
||||||
|
$output .= '</div>';
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
$confMap = gis_get_map_conf($this->values['gis_map']);
|
||||||
|
|
||||||
|
// Default open map (used to overwrite unlicensed google map view).
|
||||||
|
$confMapDefault = get_good_con();
|
||||||
|
$confMapDefaultFull = json_decode($confMapDefault['conection_data'], true);
|
||||||
|
$confMapUrlDefault = $confMapDefaultFull['url'];
|
||||||
|
|
||||||
|
$num_baselayer = 0;
|
||||||
|
// Initialy there is no Gmap base layer.
|
||||||
|
$gmap_layer = false;
|
||||||
|
if ($confMap !== false) {
|
||||||
|
foreach ($confMap as $mapC) {
|
||||||
|
$baselayers[$num_baselayer]['typeBaseLayer'] = $mapC['connection_type'];
|
||||||
|
$baselayers[$num_baselayer]['name'] = $mapC['conection_name'];
|
||||||
|
$baselayers[$num_baselayer]['num_zoom_levels'] = $mapC['num_zoom_levels'];
|
||||||
|
$decodeJSON = json_decode($mapC['conection_data'], true);
|
||||||
|
|
||||||
|
switch ($mapC['connection_type']) {
|
||||||
|
case 'OSM':
|
||||||
|
$baselayers[$num_baselayer]['url'] = $decodeJSON['url'];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Gmap':
|
||||||
|
if (!isset($decodeJSON['gmap_key']) || empty($decodeJSON['gmap_key'])) {
|
||||||
|
// If there is not gmap_key, show the default view.
|
||||||
|
$baselayers[$num_baselayer]['url'] = $confMapUrlDefault;
|
||||||
|
$baselayers[$num_baselayer]['typeBaseLayer'] = 'OSM';
|
||||||
|
} else {
|
||||||
|
$baselayers[$num_baselayer]['gmap_type'] = $decodeJSON['gmap_type'];
|
||||||
|
$baselayers[$num_baselayer]['gmap_key'] = $decodeJSON['gmap_key'];
|
||||||
|
$gmap_key = $decodeJSON['gmap_key'];
|
||||||
|
// Once a Gmap base layer is found we mark it to import the API.
|
||||||
|
$gmap_layer = true;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'Static_Image':
|
||||||
|
$baselayers[$num_baselayer]['url'] = $decodeJSON['url'];
|
||||||
|
$baselayers[$num_baselayer]['bb_left'] = $decodeJSON['bb_left'];
|
||||||
|
$baselayers[$num_baselayer]['bb_right'] = $decodeJSON['bb_right'];
|
||||||
|
$baselayers[$num_baselayer]['bb_bottom'] = $decodeJSON['bb_bottom'];
|
||||||
|
$baselayers[$num_baselayer]['bb_top'] = $decodeJSON['bb_top'];
|
||||||
|
$baselayers[$num_baselayer]['image_width'] = $decodeJSON['image_width'];
|
||||||
|
$baselayers[$num_baselayer]['image_height'] = $decodeJSON['image_height'];
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'WMS':
|
||||||
|
$baselayers[$num_baselayer]['url'] = $decodeJSON['url'];
|
||||||
|
$baselayers[$num_baselayer]['layers'] = $decodeJSON['layers'];
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
// Do nothing.
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
$num_baselayer++;
|
||||||
|
if ($mapC['default_map_connection'] == 1) {
|
||||||
|
$numZoomLevels = $mapC['num_zoom_levels'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($gmap_layer === true) {
|
||||||
|
if (https_is_running()) {
|
||||||
|
?>
|
||||||
|
<script type="text/javascript" src="https://maps.google.com/maps?file=api&v=2&sensor=false&key=<?php echo $gmap_key; ?>" ></script>
|
||||||
|
<?php
|
||||||
|
} else {
|
||||||
|
?>
|
||||||
|
<script type="text/javascript" src="http://maps.google.com/maps?file=api&v=2&sensor=false&key=<?php echo $gmap_key; ?>" ></script>
|
||||||
|
<?php
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$controls = [
|
||||||
|
'PanZoomBar',
|
||||||
|
'ScaleLine',
|
||||||
|
'Navigation',
|
||||||
|
'MousePosition',
|
||||||
|
'layerSwitcher',
|
||||||
|
];
|
||||||
|
|
||||||
|
$layers = gis_get_layers($this->values['gis_map']);
|
||||||
|
|
||||||
|
$output .= '<div id="map_'.$this->cellId.'" style="width: 100%; height: 100%" />';
|
||||||
|
gis_print_map(
|
||||||
|
'map_'.$this->cellId,
|
||||||
|
$map['zoom_level'],
|
||||||
|
$map['initial_latitude'],
|
||||||
|
$map['initial_longitude'],
|
||||||
|
$baselayers,
|
||||||
|
$controls
|
||||||
|
);
|
||||||
|
$output .= '</div>';
|
||||||
|
|
||||||
|
if (empty($layers) === false) {
|
||||||
|
foreach ($layers as $layer) {
|
||||||
|
gis_make_layer(
|
||||||
|
$layer['layer_name'],
|
||||||
|
$layer['view_layer'],
|
||||||
|
null,
|
||||||
|
$layer['id_tmap_layer']
|
||||||
|
);
|
||||||
|
|
||||||
|
// Calling agents_get_group_agents with none to obtain the names in the same case as they are in the DB.
|
||||||
|
$agentNamesByGroup = [];
|
||||||
|
if ($layer['tgrupo_id_grupo'] >= 0) {
|
||||||
|
$agentNamesByGroup = agents_get_group_agents(
|
||||||
|
$layer['tgrupo_id_grupo'],
|
||||||
|
false,
|
||||||
|
'none',
|
||||||
|
true,
|
||||||
|
true,
|
||||||
|
false
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
$agentNamesByLayer = gis_get_agents_layer($layer['id_tmap_layer']);
|
||||||
|
|
||||||
|
$groupsByAgentId = gis_get_groups_layer_by_agent_id($layer['id_tmap_layer']);
|
||||||
|
$agentNamesOfGroupItems = [];
|
||||||
|
foreach ($groupsByAgentId as $agentId => $groupInfo) {
|
||||||
|
$agentNamesOfGroupItems[$agentId] = $groupInfo['agent_name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
$agentNames = array_unique($agentNamesByGroup + $agentNamesByLayer + $agentNamesOfGroupItems);
|
||||||
|
|
||||||
|
foreach ($agentNames as $key => $agentName) {
|
||||||
|
$idAgent = $key;
|
||||||
|
$coords = gis_get_data_last_position_agent($idAgent);
|
||||||
|
|
||||||
|
if ($coords === false) {
|
||||||
|
$coords['stored_latitude'] = $map['default_latitude'];
|
||||||
|
$coords['stored_longitude'] = $map['default_longitude'];
|
||||||
|
} else {
|
||||||
|
if ($show_history == 'y') {
|
||||||
|
$lastPosition = [
|
||||||
|
'longitude' => $coords['stored_longitude'],
|
||||||
|
'latitude' => $coords['stored_latitude'],
|
||||||
|
];
|
||||||
|
gis_add_path($layer['layer_name'], $idAgent, $lastPosition);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$status = agents_get_status($idAgent, true);
|
||||||
|
$icon = gis_get_agent_icon_map($idAgent, true, $status);
|
||||||
|
$icon_size = getimagesize($icon);
|
||||||
|
$icon_width = $icon_size[0];
|
||||||
|
$icon_height = $icon_size[1];
|
||||||
|
|
||||||
|
// Is a group item.
|
||||||
|
if (empty($groupsByAgentId[$idAgent]) === false) {
|
||||||
|
$groupId = (int) $groupsByAgentId[$idAgent]['id'];
|
||||||
|
$groupName = $groupsByAgentId[$idAgent]['name'];
|
||||||
|
|
||||||
|
gis_add_agent_point(
|
||||||
|
$layer['layer_name'],
|
||||||
|
io_safe_output($groupName),
|
||||||
|
$coords['stored_latitude'],
|
||||||
|
$coords['stored_longitude'],
|
||||||
|
$icon,
|
||||||
|
$icon_width,
|
||||||
|
$icon_height,
|
||||||
|
$idAgent,
|
||||||
|
$status,
|
||||||
|
'point_group_info',
|
||||||
|
$groupId
|
||||||
|
);
|
||||||
|
} else {
|
||||||
|
$parent = db_get_value('id_parent', 'tagente', 'id_agente', $idAgent);
|
||||||
|
|
||||||
|
gis_add_agent_point(
|
||||||
|
$layer['layer_name'],
|
||||||
|
io_safe_output($agentName),
|
||||||
|
$coords['stored_latitude'],
|
||||||
|
$coords['stored_longitude'],
|
||||||
|
$icon,
|
||||||
|
$icon_width,
|
||||||
|
$icon_height,
|
||||||
|
$idAgent,
|
||||||
|
$status,
|
||||||
|
'point_agent_info',
|
||||||
|
$parent
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
gis_add_parent_lines();
|
||||||
|
|
||||||
|
$timestampLastOperation = db_get_value_sql('SELECT UNIX_TIMESTAMP()');
|
||||||
|
|
||||||
|
gis_activate_select_control();
|
||||||
|
gis_activate_ajax_refresh($layers, $timestampLastOperation);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get description.
|
||||||
|
*
|
||||||
|
* @return string.
|
||||||
|
*/
|
||||||
|
public static function getDescription()
|
||||||
|
{
|
||||||
|
return __('GIS map');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get Name.
|
||||||
|
*
|
||||||
|
* @return string.
|
||||||
|
*/
|
||||||
|
public static function getName()
|
||||||
|
{
|
||||||
|
return 'GisMap';
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get size Modal Configuration.
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*/
|
||||||
|
public function getSizeModalConfiguration(): array
|
||||||
|
{
|
||||||
|
$size = [
|
||||||
|
'width' => 500,
|
||||||
|
'height' => 300,
|
||||||
|
];
|
||||||
|
|
||||||
|
return $size;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -115,6 +115,13 @@ class ModulesByStatus extends Widget
|
|||||||
*/
|
*/
|
||||||
protected $cellId;
|
protected $cellId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Size
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $size;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct.
|
* Construct.
|
||||||
|
@ -355,7 +355,7 @@ class AgentModuleWidget extends Widget
|
|||||||
*/
|
*/
|
||||||
public function getIdCacheAgent($id_agents)
|
public function getIdCacheAgent($id_agents)
|
||||||
{
|
{
|
||||||
$target_agents = explode(',', $id_agents);
|
$target_agents = explode(',', ($id_agents ?? ''));
|
||||||
$cache_id_agents = [];
|
$cache_id_agents = [];
|
||||||
foreach ($target_agents as $agent_id) {
|
foreach ($target_agents as $agent_id) {
|
||||||
if (str_contains($agent_id, '|') === false) {
|
if (str_contains($agent_id, '|') === false) {
|
||||||
|
@ -111,6 +111,20 @@ class EventsListWidget extends Widget
|
|||||||
*/
|
*/
|
||||||
protected $publicLink;
|
protected $publicLink;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Overflow scrollbar.
|
||||||
|
*
|
||||||
|
* @var boolean
|
||||||
|
*/
|
||||||
|
public $overflow_scrollbars;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Position
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
public $position;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct.
|
* Construct.
|
||||||
|
@ -271,7 +271,7 @@ class HeatmapWidget extends Widget
|
|||||||
'name' => 'groups[]',
|
'name' => 'groups[]',
|
||||||
'returnAllGroup' => true,
|
'returnAllGroup' => true,
|
||||||
'privilege' => 'AR',
|
'privilege' => 'AR',
|
||||||
'selected' => explode(',', $values['groups'][0]),
|
'selected' => (isset($values['groups'][0]) === true) ? explode(',', $values['groups'][0]) : [],
|
||||||
'return' => true,
|
'return' => true,
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
],
|
],
|
||||||
@ -305,7 +305,7 @@ class HeatmapWidget extends Widget
|
|||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'fields' => $tags,
|
'fields' => $tags,
|
||||||
'name' => 'tags[]',
|
'name' => 'tags[]',
|
||||||
'selected' => explode(',', $values['tags'][0]),
|
'selected' => (isset($values['tags'][0]) === true) ? explode(',', $values['tags'][0]) : [],
|
||||||
'return' => true,
|
'return' => true,
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
],
|
],
|
||||||
@ -332,7 +332,7 @@ class HeatmapWidget extends Widget
|
|||||||
'type' => 'select',
|
'type' => 'select',
|
||||||
'fields' => $module_groups,
|
'fields' => $module_groups,
|
||||||
'name' => 'module_groups[]',
|
'name' => 'module_groups[]',
|
||||||
'selected' => explode(',', $values['module_groups'][0]),
|
'selected' => (isset($values['module_groups'][0]) === true) ? explode(',', $values['module_groups'][0]) : [],
|
||||||
'return' => true,
|
'return' => true,
|
||||||
'multiple' => true,
|
'multiple' => true,
|
||||||
'nothing' => __('Not assigned'),
|
'nothing' => __('Not assigned'),
|
||||||
|
@ -446,7 +446,7 @@ class SecurityHardening extends Widget
|
|||||||
{
|
{
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
$id_groups = explode(',', $group);
|
$id_groups = explode(',', ($group ?? ''));
|
||||||
if (in_array(0, $id_groups) === true) {
|
if (in_array(0, $id_groups) === true) {
|
||||||
$id_groups = array_keys(users_get_groups($config['id_user'], 'AR', false));
|
$id_groups = array_keys(users_get_groups($config['id_user'], 'AR', false));
|
||||||
}
|
}
|
||||||
|
@ -83,7 +83,11 @@ class SnmpTraps extends Element
|
|||||||
{
|
{
|
||||||
if ($this->isEnabled() === true) {
|
if ($this->isEnabled() === true) {
|
||||||
$value = $this->valueMonitoring('snmp_trap_queue');
|
$value = $this->valueMonitoring('snmp_trap_queue');
|
||||||
$total = round($value[0]['data']);
|
if (isset($value[0]['data']) === true) {
|
||||||
|
$total = round($value[0]['data']);
|
||||||
|
} else {
|
||||||
|
$total = __('N/A');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$total = __('N/A');
|
$total = __('N/A');
|
||||||
}
|
}
|
||||||
@ -109,7 +113,11 @@ class SnmpTraps extends Element
|
|||||||
{
|
{
|
||||||
if ($this->isEnabled() === true) {
|
if ($this->isEnabled() === true) {
|
||||||
$value = $this->valueMonitoring('total_trap');
|
$value = $this->valueMonitoring('total_trap');
|
||||||
$total = round($value[0]['data']);
|
if (isset($value[0]['data']) === true) {
|
||||||
|
$total = round($value[0]['data']);
|
||||||
|
} else {
|
||||||
|
$total = __('N/A');
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$total = __('N/A');
|
$total = __('N/A');
|
||||||
}
|
}
|
||||||
|
@ -131,7 +131,7 @@
|
|||||||
<div style='padding-bottom: 50px'>
|
<div style='padding-bottom: 50px'>
|
||||||
<?php
|
<?php
|
||||||
$version = '7.0NG.775';
|
$version = '7.0NG.775';
|
||||||
$build = '240207';
|
$build = '240212';
|
||||||
$banner = "v$version Build $build";
|
$banner = "v$version Build $build";
|
||||||
error_reporting(0);
|
error_reporting(0);
|
||||||
|
|
||||||
|
@ -505,7 +505,7 @@ if (is_ajax() === true) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (strlen($tmp->server_name) >= 10) {
|
if (isset($tmp->server_name) === true && strlen($tmp->server_name) >= 10) {
|
||||||
$tmp->server_name = ui_print_truncate_text(
|
$tmp->server_name = ui_print_truncate_text(
|
||||||
$tmp->server_name,
|
$tmp->server_name,
|
||||||
10,
|
10,
|
||||||
|
@ -304,23 +304,7 @@ if ($layers != false) {
|
|||||||
|
|
||||||
gis_add_parent_lines();
|
gis_add_parent_lines();
|
||||||
|
|
||||||
switch ($config['dbtype']) {
|
$timestampLastOperation = db_get_value_sql('SELECT UNIX_TIMESTAMP()');
|
||||||
case 'mysql':
|
|
||||||
$timestampLastOperation = db_get_value_sql('SELECT UNIX_TIMESTAMP()');
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'postgresql':
|
|
||||||
$timestampLastOperation = db_get_value_sql(
|
|
||||||
"SELECT ceil(date_part('epoch', CURRENT_TIMESTAMP))"
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'oracle':
|
|
||||||
$timestampLastOperation = db_get_value_sql(
|
|
||||||
"SELECT ceil((sysdate - to_date('19700101000000','YYYYMMDDHH24MISS')) * (".SECONDS_1DAY.')) FROM dual'
|
|
||||||
);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
gis_activate_select_control();
|
gis_activate_select_control();
|
||||||
gis_activate_ajax_refresh($layers, $timestampLastOperation);
|
gis_activate_ajax_refresh($layers, $timestampLastOperation);
|
||||||
|
@ -382,7 +382,7 @@ ui_print_standard_header(
|
|||||||
|
|
||||||
$inventory_id_agent = (int) get_parameter('agent_id', -1);
|
$inventory_id_agent = (int) get_parameter('agent_id', -1);
|
||||||
$inventory_agent = (string) get_parameter('agent', '');
|
$inventory_agent = (string) get_parameter('agent', '');
|
||||||
if (strlen($inventory_agent) == 0) {
|
if (strlen(($inventory_agent ?? '')) == 0) {
|
||||||
$inventory_id_agent = -1;
|
$inventory_id_agent = -1;
|
||||||
$inventory_agent = __('All');
|
$inventory_agent = __('All');
|
||||||
} else if ($inventory_agent == __('All')) {
|
} else if ($inventory_agent == __('All')) {
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0NG.775
|
%define version 7.0NG.775
|
||||||
%define release 240207
|
%define release 240212
|
||||||
|
|
||||||
# User and Group under which Apache is running
|
# User and Group under which Apache is running
|
||||||
%define httpd_name httpd
|
%define httpd_name httpd
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
%define name pandorafms_console
|
%define name pandorafms_console
|
||||||
%define version 7.0NG.775
|
%define version 7.0NG.775
|
||||||
%define release 240207
|
%define release 240212
|
||||||
|
|
||||||
# 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.0NG.775
|
%define version 7.0NG.775
|
||||||
%define release 240207
|
%define release 240212
|
||||||
%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
|
||||||
|
@ -2832,7 +2832,8 @@ INSERT INTO `twidget` (`id`,`class_name`,`unique_name`,`description`,`options`,`
|
|||||||
(44,'WuxWidget','wux_transaction','Agent WUX transaction','','wux_transaction.php'),
|
(44,'WuxWidget','wux_transaction','Agent WUX transaction','','wux_transaction.php'),
|
||||||
(45,'WuxStatsWidget','wux_transaction_stats','WUX transaction stats','','wux_transaction_stats.php'),
|
(45,'WuxStatsWidget','wux_transaction_stats','WUX transaction stats','','wux_transaction_stats.php'),
|
||||||
(46,'SecurityHardening','security_hardening','Security Hardening','','security_hardening.php'),
|
(46,'SecurityHardening','security_hardening','Security Hardening','','security_hardening.php'),
|
||||||
(47,'ServiceLevelWidget','service_level','Service Level','','service_level.php');
|
(47,'ServiceLevelWidget','service_level','Service Level','','service_level.php'),
|
||||||
|
(48,'GisMap','GisMap','Gis map','','GisMap.php');
|
||||||
|
|
||||||
INSERT INTO `tmap` (`id`,`id_group`,`id_user`,`type`,`subtype`,`name`,`description`,`height`,`width`,`center_x`,`center_y`,`background`,`background_options`,`source_period`,`source`,`source_data`,`generation_method`,`generated`,`filter`,`id_group_map`,`refresh_time`) VALUES (1,'0','admin',0,0,'Sample dynamic map','This is a sample dynamic map.',900,900,0,0,'',0,60,0,'0',6,0,'{\"dont_show_subgroups\":0,\"node_radius\":40,\"x_offs\":\"0\",\"y_offs\":\"0\",\"z_dash\":\"1\",\"node_sep\":\"0.25\",\"rank_sep\":\"0.5\",\"mindist\":\"1\",\"kval\":\"0.3\"}',0,300);
|
INSERT INTO `tmap` (`id`,`id_group`,`id_user`,`type`,`subtype`,`name`,`description`,`height`,`width`,`center_x`,`center_y`,`background`,`background_options`,`source_period`,`source`,`source_data`,`generation_method`,`generated`,`filter`,`id_group_map`,`refresh_time`) VALUES (1,'0','admin',0,0,'Sample dynamic map','This is a sample dynamic map.',900,900,0,0,'',0,60,0,'0',6,0,'{\"dont_show_subgroups\":0,\"node_radius\":40,\"x_offs\":\"0\",\"y_offs\":\"0\",\"z_dash\":\"1\",\"node_sep\":\"0.25\",\"rank_sep\":\"0.5\",\"mindist\":\"1\",\"kval\":\"0.3\"}',0,300);
|
||||||
INSERT INTO `treport` (`id_report`,`id_user`,`name`,`description`,`private`,`id_group`,`custom_logo`,`header`,`first_page`,`footer`,`custom_font`,`id_template`,`id_group_edit`,`metaconsole`,`non_interactive`,`hidden`,`orientation`,`cover_page_render`,`index_render`) VALUES (1,'admin','Sample report #1','This is a sample report, just to show you some general report items.',0,0,NULL,NULL,'<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;"><img src="http://localhost/pandora_console//images/pandora_report_logo.png" alt="" width="800" /></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;"><span style="font-size: xx-large;">(_REPORT_NAME_)</span></p>
<p style="text-align: center;"><span style="font-size: large;">(_DATETIME_)</span></p>',NULL,'Lato-Regular.ttf',0,0,0,0,0,'vertical',1,1);
|
INSERT INTO `treport` (`id_report`,`id_user`,`name`,`description`,`private`,`id_group`,`custom_logo`,`header`,`first_page`,`footer`,`custom_font`,`id_template`,`id_group_edit`,`metaconsole`,`non_interactive`,`hidden`,`orientation`,`cover_page_render`,`index_render`) VALUES (1,'admin','Sample report #1','This is a sample report, just to show you some general report items.',0,0,NULL,NULL,'<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;"><img src="http://localhost/pandora_console//images/pandora_report_logo.png" alt="" width="800" /></p>
<p style="text-align: center;">&nbsp;</p>
<p style="text-align: center;"><span style="font-size: xx-large;">(_REPORT_NAME_)</span></p>
<p style="text-align: center;"><span style="font-size: large;">(_DATETIME_)</span></p>',NULL,'Lato-Regular.ttf',0,0,0,0,0,'vertical',1,1);
|
||||||
|
@ -123,7 +123,7 @@ class Manager
|
|||||||
string $public_url,
|
string $public_url,
|
||||||
?string $ajax_url=null,
|
?string $ajax_url=null,
|
||||||
?string $page=null,
|
?string $page=null,
|
||||||
array $settings,
|
array $settings=[],
|
||||||
?int $mode=null,
|
?int $mode=null,
|
||||||
bool $composer=false
|
bool $composer=false
|
||||||
) {
|
) {
|
||||||
|
@ -15,7 +15,7 @@ trait JsonSerializable
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function jsonSerialize()
|
public function jsonSerialize():mixed
|
||||||
{
|
{
|
||||||
return array_map(function ($value) {
|
return array_map(function ($value) {
|
||||||
if ($value instanceof JsonSerializableInterface) {
|
if ($value instanceof JsonSerializableInterface) {
|
||||||
|
@ -148,7 +148,7 @@ class Elements implements ArraySerializableInterface, JsonSerializable
|
|||||||
/**
|
/**
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function jsonSerialize()
|
public function jsonSerialize():mixed
|
||||||
{
|
{
|
||||||
return $this->getArrayCopy();
|
return $this->getArrayCopy();
|
||||||
}
|
}
|
||||||
|
@ -34,7 +34,12 @@ if ($redraw === false) {
|
|||||||
|
|
||||||
$output .= '<div class="header-widget">';
|
$output .= '<div class="header-widget">';
|
||||||
$output .= '<div>';
|
$output .= '<div>';
|
||||||
$options = json_decode($cellData['options'], true);
|
if (isset($cellData['options']) === true) {
|
||||||
|
$options = json_decode($cellData['options'], true);
|
||||||
|
} else {
|
||||||
|
$options = [];
|
||||||
|
}
|
||||||
|
|
||||||
if ($cellData['id_widget'] !== '0') {
|
if ($cellData['id_widget'] !== '0') {
|
||||||
$output .= $options['title'];
|
$output .= $options['title'];
|
||||||
} else {
|
} else {
|
||||||
|
@ -43,7 +43,7 @@ $form = [
|
|||||||
'extra' => 'novalidate',
|
'extra' => 'novalidate',
|
||||||
];
|
];
|
||||||
|
|
||||||
$js = 'tinymce.init({
|
$js .= ' tinymce.init({
|
||||||
selector: "#textarea_text",
|
selector: "#textarea_text",
|
||||||
plugins: "preview, searchreplace, table, nonbreaking, link, image",
|
plugins: "preview, searchreplace, table, nonbreaking, link, image",
|
||||||
promotion: false,
|
promotion: false,
|
||||||
|
@ -71,6 +71,10 @@ foreach ($widgets as $widget) {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($widget['unique_name'] === 'GisMap' && (bool) $config['activate_gis'] === false) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$imageWidget = '/images/widgets/'.$widget['unique_name'].'.png';
|
$imageWidget = '/images/widgets/'.$widget['unique_name'].'.png';
|
||||||
|
|
||||||
$output .= '<div class="list-widgets">';
|
$output .= '<div class="list-widgets">';
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
package: pandorafms-server
|
package: pandorafms-server
|
||||||
Version: 7.0NG.775-240207
|
Version: 7.0NG.775-240212
|
||||||
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.0NG.775-240207"
|
pandora_version="7.0NG.775-240212"
|
||||||
|
|
||||||
package_cpan=0
|
package_cpan=0
|
||||||
package_pandora=1
|
package_pandora=1
|
||||||
|
@ -46,7 +46,7 @@ our @EXPORT = qw(
|
|||||||
|
|
||||||
# version: Defines actual version of Pandora Server for this module only
|
# version: Defines actual version of Pandora Server for this module only
|
||||||
my $pandora_version = "7.0NG.775";
|
my $pandora_version = "7.0NG.775";
|
||||||
my $pandora_build = "240207";
|
my $pandora_build = "240212";
|
||||||
our $VERSION = $pandora_version." ".$pandora_build;
|
our $VERSION = $pandora_version." ".$pandora_build;
|
||||||
|
|
||||||
# Setup hash
|
# Setup hash
|
||||||
|
@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
|
|||||||
|
|
||||||
# version: Defines actual version of Pandora Server for this module only
|
# version: Defines actual version of Pandora Server for this module only
|
||||||
my $pandora_version = "7.0NG.775";
|
my $pandora_version = "7.0NG.775";
|
||||||
my $pandora_build = "240207";
|
my $pandora_build = "240212";
|
||||||
our $VERSION = $pandora_version." ".$pandora_build;
|
our $VERSION = $pandora_version." ".$pandora_build;
|
||||||
|
|
||||||
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
our %EXPORT_TAGS = ( 'all' => [ qw() ] );
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
%define debug_package %{nil}
|
%define debug_package %{nil}
|
||||||
%define name pandorafms_server
|
%define name pandorafms_server
|
||||||
%define version 7.0NG.775
|
%define version 7.0NG.775
|
||||||
%define release 240207
|
%define release 240212
|
||||||
|
|
||||||
Summary: Pandora FMS Server
|
Summary: Pandora FMS Server
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
%global __os_install_post %{nil}
|
%global __os_install_post %{nil}
|
||||||
%define name pandorafms_server
|
%define name pandorafms_server
|
||||||
%define version 7.0NG.775
|
%define version 7.0NG.775
|
||||||
%define release 240207
|
%define release 240212
|
||||||
|
|
||||||
Summary: Pandora FMS Server
|
Summary: Pandora FMS Server
|
||||||
Name: %{name}
|
Name: %{name}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
# **********************************************************************
|
# **********************************************************************
|
||||||
|
|
||||||
PI_VERSION="7.0NG.775"
|
PI_VERSION="7.0NG.775"
|
||||||
PI_BUILD="240207"
|
PI_BUILD="240212"
|
||||||
|
|
||||||
MODE=$1
|
MODE=$1
|
||||||
if [ $# -gt 1 ]; then
|
if [ $# -gt 1 ]; then
|
||||||
|
@ -38,7 +38,7 @@ use PandoraFMS::Config;
|
|||||||
use PandoraFMS::DB;
|
use PandoraFMS::DB;
|
||||||
|
|
||||||
# version: define current version
|
# version: define current version
|
||||||
my $version = "7.0NG.775 Build 240207";
|
my $version = "7.0NG.775 Build 240212";
|
||||||
|
|
||||||
# Pandora server configuration
|
# Pandora server configuration
|
||||||
my %conf;
|
my %conf;
|
||||||
|
@ -36,7 +36,7 @@ use Encode::Locale;
|
|||||||
Encode::Locale::decode_argv;
|
Encode::Locale::decode_argv;
|
||||||
|
|
||||||
# version: define current version
|
# version: define current version
|
||||||
my $version = "7.0NG.775 Build 240207";
|
my $version = "7.0NG.775 Build 240212";
|
||||||
|
|
||||||
# save program name for logging
|
# save program name for logging
|
||||||
my $progname = basename($0);
|
my $progname = basename($0);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user