Merge remote-tracking branch 'origin/develop' into ent-8540-contel-nuevo-informe-custom-render

This commit is contained in:
Daniel Barbero Martin 2022-04-05 08:20:21 +02:00
commit c049f18bf1
37 changed files with 625 additions and 554 deletions

View File

@ -1,5 +1,5 @@
package: pandorafms-agent-unix
Version: 7.0NG.760-220404
Version: 7.0NG.760-220405
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.760-220404"
pandora_version="7.0NG.760-220405"
echo "Test if you has the tools for to make the packages."
whereis dpkg-deb | cut -d":" -f2 | grep dpkg-deb > /dev/null

View File

@ -1015,7 +1015,7 @@ my $Sem = undef;
my $ThreadSem = undef;
use constant AGENT_VERSION => '7.0NG.760';
use constant AGENT_BUILD => '220404';
use constant AGENT_BUILD => '220405';
# Agent log default file size maximum and instances
use constant DEFAULT_MAX_LOG_SIZE => 600000;

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.760
%define release 220404
%define release 220405
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_agent_unix
%define version 7.0NG.760
%define release 220404
%define release 220405
Summary: Pandora FMS Linux agent, PERL version
Name: %{name}

View File

@ -10,7 +10,7 @@
# **********************************************************************
PI_VERSION="7.0NG.760"
PI_BUILD="220404"
PI_BUILD="220405"
OS_NAME=`uname -s`
FORCE=0

View File

@ -186,7 +186,7 @@ UpgradeApplicationID
{}
Version
{220404}
{220405}
ViewReadme
{Yes}

View File

@ -30,7 +30,7 @@ using namespace Pandora;
using namespace Pandora_Strutils;
#define PATH_SIZE _MAX_PATH+1
#define PANDORA_VERSION ("7.0NG.760 Build 220404")
#define PANDORA_VERSION ("7.0NG.760 Build 220405")
string pandora_path;
string pandora_dir;

View File

@ -11,7 +11,7 @@ BEGIN
VALUE "LegalCopyright", "Artica ST"
VALUE "OriginalFilename", "PandoraAgent.exe"
VALUE "ProductName", "Pandora FMS Windows Agent"
VALUE "ProductVersion", "(7.0NG.760(Build 220404))"
VALUE "ProductVersion", "(7.0NG.760(Build 220405))"
VALUE "FileVersion", "1.0.0.0"
END
END

View File

@ -1,5 +1,5 @@
package: pandorafms-console
Version: 7.0NG.760-220404
Version: 7.0NG.760-220405
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.760-220404"
pandora_version="7.0NG.760-220405"
package_pear=0
package_pandora=1

View File

@ -3,6 +3,9 @@ START TRANSACTION;
ALTER TABLE `tipam_vlan` ADD COLUMN `custom_id` bigint(20) unsigned DEFAULT NULL;
ALTER TABLE `tuser_task_scheduled`ADD COLUMN `enabled` TINYINT UNSIGNED NOT NULL DEFAULT 1;
ALTER TABLE `tevent_filter` ADD COLUMN `custom_data` VARCHAR(500) DEFAULT '';
ALTER TABLE `tevent_filter` ADD COLUMN `custom_data_filter_type` TINYINT UNSIGNED DEFAULT 0;
ALTER TABLE tagente MODIFY alias varchar(600) NOT NULL DEFAULT '';
ALTER TABLE tagente MODIFY nombre varchar(600) NOT NULL DEFAULT '';

View File

@ -1543,6 +1543,8 @@ ALTER TABLE `tevent_filter` MODIFY COLUMN `severity` text NOT NULL;
ALTER TABLE tevent_filter ADD COLUMN `server_id` int(10) NOT NULL default 0;
ALTER TABLE `tevent_filter` ADD COLUMN `time_from` TIME NULL;
ALTER TABLE `tevent_filter` ADD COLUMN `time_to` TIME NULL;
ALTER TABLE `tevent_filter` ADD COLUMN `custom_data` VARCHAR(500) DEFAULT '';
ALTER TABLE `tevent_filter` ADD COLUMN `custom_data_filter_type` TINYINT UNSIGNED DEFAULT 0;
-- ---------------------------------------------------------------------
-- Table `tusuario`

View File

@ -116,6 +116,7 @@ $fields_available['data'] = __('Data');
$fields_available['module_status'] = __('Module Status');
$fields_available['mini_severity'] = __('Severity mini');
$fields_available['module_custom_id'] = __('Module custom ID');
$fields_available['custom_data'] = __('Custom data');
// Remove fields already selected.

View File

@ -89,6 +89,8 @@ if ($id) {
$tag_without_base64 = base64_encode($tag_without_json_clean);
$filter_only_alert = $filter['filter_only_alert'];
$custom_data = $filter['custom_data'];
$custom_data_filter_type = $filter['custom_data_filter_type'];
if ($id_agent_module != 0) {
$text_module = modules_get_agentmodule_name($id_agent_module);
@ -165,6 +167,8 @@ if ($update || $create) {
$tag_without_json = io_safe_input(base64_decode($tag_without_base64));
$filter_only_alert = get_parameter('filter_only_alert', '');
$custom_data = get_parameter('custom_data', '');
$custom_data_filter_type = get_parameter('custom_data_filter_type', '');
$values = [
'id_name' => $id_name,
@ -189,6 +193,8 @@ if ($update || $create) {
'id_extra' => $id_extra,
'user_comment' => $user_comment,
'filter_only_alert' => $filter_only_alert,
'custom_data' => $custom_data,
'custom_data_filter_type' => $custom_data_filter_type,
];
$severity = explode(',', $severity);
@ -627,9 +633,26 @@ $table->data[23][1] = html_print_input_text('id_extra', $id_extra, '', 11, 255,
$table->data[24][0] = '<b>'.__('Comment').'</b>';
$table->data[24][1] = html_print_input_text('user_comment', $user_comment, '', 35, 255, true);
$table->data[25][0] = '<b>'.__('Custom data filter type').'</b>';
$table->data[25][1] = html_print_select(
[
'0' => __('Filter custom data by name field'),
'1' => __('Filter custom data by value field'),
],
'custom_data_filter_type',
$custom_data_filter_type,
'',
false,
'',
true
);
$table->data[26][0] = '<b>'.__('Custom data').'</b>';
$table->data[26][1] = html_print_input_text('custom_data', $custom_data, '', 35, 255, true);
if (is_metaconsole()) {
$table->data[25][0] = '<b>'.__('Id souce event').'</b>';
$table->data[25][1] = html_print_input_text(
$table->data[27][0] = '<b>'.__('Id souce event').'</b>';
$table->data[27][1] = html_print_input_text(
'id_source_event',
$id_source_event,
'',

View File

@ -119,7 +119,6 @@ switch ($action) {
$map_initial_altitude = get_parameter('map_initial_altitude');
$map_zoom_level = get_parameter('map_zoom_level');
$map_background = '';
// TODO
$map_default_longitude = get_parameter('map_default_longitude');
$map_default_latitude = get_parameter('map_default_latitude');
$map_default_altitude = get_parameter('map_default_altitude');
@ -219,7 +218,6 @@ switch ($action) {
case 'edit_map':
$next_action = 'update_saved';
break;
case 'update_saved':
@ -229,7 +227,6 @@ switch ($action) {
$map_initial_altitude = get_parameter('map_initial_altitude');
$map_zoom_level = get_parameter('map_zoom_level');
$map_background = '';
// TODO
$map_default_longitude = get_parameter('map_default_longitude');
$map_default_latitude = get_parameter('map_default_latitude');
$map_default_altitude = get_parameter('map_default_altitude');
@ -275,8 +272,7 @@ switch ($action) {
$map_levels_zoom
);
if (empty($invalidFields)) {
// TODO
if (empty($invalidFields) === true) {
gis_update_map(
$idMap,
$map_name,
@ -307,6 +303,10 @@ switch ($action) {
$next_action = 'update_saved';
html_print_input_hidden('map_id', $idMap);
break;
default:
// Default.
break;
}
?>
@ -440,6 +440,10 @@ switch ($action) {
$layer_list = !empty($mapData['layers']) ? $mapData['layers'] : [];
break;
default:
// Default.
break;
}
$table = new stdClass();
@ -468,12 +472,20 @@ foreach ($listConnectionTemp as $connectionTemp) {
}
$table->data[1][0] = __('Add Map connection').$iconError;
$table->data[1][1] = ".html_print_select($listConnection, 'map_connection_list', '', '', '', '0', true)."
< / td > < td > < a href = 'javascript: addConnectionMap();' > ".html_print_image(
$table->data[1][1] = "<table class='no-class' border='0' id='map_connection'>
<tr>
<td>".html_print_select($listConnection, 'map_connection_list', '', '', '', '0', true)."
</td>
<td >
<a href='javascript: addConnectionMap();'>".html_print_image(
'images/add.png',
true,
['class' => 'invert_filter']
)." < / a > < input type = 'hidden' name = 'map_connection_list' value = '' id = 'map_connection_list' / > < input type = 'hidden' name = 'layer_list' value = '' id = 'layer_list' / > < / td > < / tr > (".gis_add_conection_maps_in_form($map_connection_list).'
)."</a>
<input type='hidden' name='map_connection_list' value='' id='map_connection_list' />
<input type='hidden' name='layer_list' value='' id='layer_list' />
</td>
</tr> ".gis_add_conection_maps_in_form($map_connection_list).'
</table>';
$own_info = get_user_info($config['id_user']);
@ -549,9 +561,9 @@ $table->data = [];
$table->data[0][0] = '<h4>'.__('List of layers').'</h4>';
$table->data[0][1] = '<div class="right">'.html_print_button(__('New layer'), 'new_layer', false, 'newLayer();', 'class="sub add "', true).'</div>';
$table->data[1][0] = '<table class="databox' border='0' cellpadding='4' cellspacing='4' id='list_layers"></table>';
$table->data[1][1] = '<div id="form_layer' class='invisible'>
<table id='form_layer_table' class="" border='0' cellpadding='4' cellspacing='4">
$table->data[1][0] = '<table class="databox" border="0" cellpadding="4" cellspacing="4" id="list_layers"></table>';
$table->data[1][1] = '<div id="form_layer" class="invisible">
<table id="form_layer_table" class="" border="0" cellpadding="4" cellspacing="4">
<tr>
<td>'.__('Layer name').':</td>
<td>'.html_print_input_text('layer_name_form', '', '', 20, 40, true).'</td>
@ -594,7 +606,7 @@ $table->data[1][1] .= '</td>
<tr>
<td colspan="4">
<h4>'.__('List of Agents to be shown in the layer').'</h4>
<table class="databox' border='0' cellpadding='4' cellspacing='4' id='list_agents">
<table class="databox" border="0" cellpadding="4" cellspacing="4" id="list_agents">
</table>
</td>
</tr>';
@ -628,18 +640,18 @@ $table->data[1][1] .= '<tr><td colspan="4"><hr /></td></tr>
<td colspan="3">'.$agent_for_group_input.'</td>
</tr>
<tr>
<td colspan="4' align='right">'.$add_group_btn.'</td>
<td colspan="4" align="right">'.$add_group_btn.'</td>
</tr>
<tr>
<td colspan="4">
<h4>'.__('List of groups to be shown in the layer').'</h4>
<table class="databox' border='0' cellpadding='4' cellspacing='4' id='list_groups">
<table class="databox" border="0" cellpadding="4" cellspacing="4" id="list_groups">
</table>
</td>
</tr>';
$table->data[1][1] .= '<tr>
<td align="right' colspan='4">'.html_print_button(__('Save Layer'), 'save_layer', false, 'javascript:saveNewLayer();', 'class="sub wand"', true).'
<td align="right" colspan="4">'.html_print_button(__('Save Layer'), 'save_layer', false, 'javascript:saveNewLayer();', 'class="sub wand"', true).'
'.html_print_input_hidden('current_edit_layer_id', '', true).'
</td>
</tr>
@ -649,12 +661,12 @@ $table->data[1][1] .= '<tr>
html_print_table($table);
echo '<div class="action - buttons' style=')width: '.$table->width.'">';
echo '<div class="action-buttons" style="width: '.$table->width.'">';
switch ($action) {
case 'save_new':
case 'edit_map':
case 'update_saved':
if (!empty($invalidFields)) {
if (empty($invalidFields) === true) {
html_print_submit_button(_('Save map'), 'save_button', false, 'class="sub wand"');
} else {
html_print_submit_button(_('Update map'), 'update_button', false, 'class="sub upd"');
@ -664,6 +676,10 @@ switch ($action) {
case 'new_map':
html_print_submit_button(_('Save map'), 'save_button', false, 'class="sub wand"');
break;
default:
// Default.
break;
}
echo '</div>';
@ -674,12 +690,12 @@ echo '</form>';
// -------------------------INI CHUNKS---------------------------------------
?>
<table style="visibility: hidden;('>
<tbody id='chunk_map_connection'>
<tr class='row_0">
<table style="visibility: hidden;">
<tbody id="chunk_map_connection">
<tr class="row_0">
<td><?php html_print_input_text('map_connection_name', $map_name, '', 20, 40, false, true); ?></td>
<td><?php html_print_radio_button_extended('map_connection_default', '', '', true, false, 'changeDefaultConection(this.value)', ''); ?></td>
<td><a id="delete_row' href='none">
<td><a id="delete_row" href="none">
<?php
html_print_image(
'images/cross.png',
@ -702,43 +718,36 @@ ui_require_jquery_file('cluetip');
ui_require_jquery_file('pandora.controls');
ui_require_jquery_file('json');
?>
<script type="text / javascript'>
<script type="text/javascript">
function active_button_add_agent() {
$(')
// button-add_agent").prop("disabled", false);
$("#button-add_agent").prop("disabled", false);
}
function addAgentClick(event)
{
var $layerFormAgentIdInput = $('#hidden-agent_id');
var $layerFormAgentAliasInput = $('#text-agent_alias');
function addAgentClick (event) {
var $layerFormAgentIdInput = $("#hidden-agent_id");
var $layerFormAgentAliasInput = $("#text-agent_alias");
var agentId = Number.parseInt($layerFormAgentIdInput.val());
var agentAlias = $layerFormAgentAliasInput.val();
var layerId = $('input#hidden-current_edit_layer_id').val();
var layerId = $("input#hidden-current_edit_layer_id").val();
if (Number.isNaN(agentId) || agentId === 0 || agentAlias.length === 0) {
return;
}
if (Number.isNaN(agentId) || agentId === 0 || agentAlias.length === 0) return;
addAgentRow(layerId, agentId, agentAlias);
// Clear agent inputs
$layerFormAgentIdInput.val('');
$layerFormAgentAliasInput.val('');
$layerFormAgentIdInput.val("");
$layerFormAgentAliasInput.val("");
$('#button-add_agent').prop('disabled', true);
$("#button-add_agent").prop("disabled", true);
}
function toggleAddGroupBtn()
{
var groupId = Number.parseInt($('select#layer_group_id').val());
function toggleAddGroupBtn () {
var groupId = Number.parseInt($("select#layer_group_id").val());
var existGroupId = $("table#list_groups tr.groups_list_item[data-group-id='" + groupId + "']").length > 0;
var agentId = Number.parseInt($('input#hidden-agent_id_for_data').val());
var agentAlias = $('input#text-agent_alias_for_data').val();
var agentId = Number.parseInt($("input#hidden-agent_id_for_data").val());
var agentAlias = $("input#text-agent_alias_for_data").val();
var enabled = (
!existGroupId
@ -749,19 +758,17 @@ function toggleAddGroupBtn()
&& agentAlias.length > 0
);
$('#button-add_group').prop('disabled', !enabled);
$("#button-add_group").prop("disabled", !enabled);
}
function addGroupClick (event) {
var $layerFormGroupIdInput = $("select#layer_group_id");
var $layerFormAgentIdInput = $("input#hidden-agent_id_for_data");
var $layerFormAgentAliasInput = $("input#text-agent_alias_for_data");
function addGroupClick(event)
{
var $layerFormGroupIdInput = $('select#layer_group_id');
var $layerFormAgentIdInput = $('input#hidden-agent_id_for_data');
var $layerFormAgentAliasInput = $('input#text-agent_alias_for_data');
var layerId = $('input#hidden-current_edit_layer_id').val();
var layerId = $("input#hidden-current_edit_layer_id").val();
var groupId = Number.parseInt($layerFormGroupIdInput.val());
var groupName = $layerFormGroupIdInput.find(':selected').text();
var groupName = $layerFormGroupIdInput.find(":selected").text();
var agentId = Number.parseInt($layerFormAgentIdInput.val());
var agentAlias = $layerFormAgentAliasInput.val();
@ -774,61 +781,46 @@ function addGroupClick(event)
&& agentAlias.length > 0
);
if (!valid) {
return;
}
if (!valid) return;
addGroupRow(layerId, groupId, groupName, agentId, agentAlias);
// Clear inputs
// $layerFormGroupIdInput.val(0);
$layerFormAgentIdInput.val('');
$layerFormAgentAliasInput.val('');
$layerFormAgentIdInput.val("");
$layerFormAgentAliasInput.val("");
$('#button-add_group').prop('disabled', true);
$("#button-add_group").prop("disabled", true);
}
function moveLayerRowUpOnClick(event)
{
function moveLayerRowUpOnClick (event) {
var $row = $(event.currentTarget).parent().parent();
$row.insertBefore($row.prev());
}
function moveLayerRowDownOnClick(event)
{
function moveLayerRowDownOnClick (event) {
var $row = $(event.currentTarget).parent().parent();
$row.insertAfter($row.next());
}
function removeLayerRowOnClick(event)
{
function removeLayerRowOnClick (event) {
var $layerRow = $(event.currentTarget).parent().parent();
var layerRowId = $layerRow.find('input.layer_id').val();
var layerEditorId = $('input#hidden-current_edit_layer_id').val();
if (layerRowId == layerEditorId) {
hideLayerEditor();
}
var layerRowId = $layerRow.find("input.layer_id").val();
var layerEditorId = $("input#hidden-current_edit_layer_id").val();
if (layerRowId == layerEditorId) hideLayerEditor();
// Remove row
$(event.currentTarget).parent().parent().remove();
}
function hideLayerEditor()
{
function hideLayerEditor () {
// Clean editor
cleanLayerEditor();
// Hide editor
$('div#form_layer').hide();
$("div#form_layer").hide();
}
function showLayerEditor(layerId)
{
var $layerSaveBtn = $('input#button-save_layer');
function showLayerEditor (layerId) {
var $layerSaveBtn = $("input#button-save_layer");
// Clean editor
cleanLayerEditor();
@ -852,39 +844,33 @@ function showLayerEditor(layerId)
}
// Show editor (if hidden)
$('div#form_layer').show();
$("div#form_layer").show();
}
function getLayerData(layerId)
{
var $layerRow = $('tr#layer_row_' + layerId);
var layerName = $layerRow.find('input.layer_name').val();
var layerVisible = $layerRow.find('input.layer_visible').val() == 1;
var layerAgentsFromGroup = $layerRow.find('input.layer_agents_from_group').val();
var layerAgents = $layerRow.find('input.layer_agent_alias').map(
function () {
function getLayerData (layerId) {
var $layerRow = $("tr#layer_row_" + layerId);
var layerName = $layerRow.find("input.layer_name").val();
var layerVisible = $layerRow.find("input.layer_visible").val() == 1;
var layerAgentsFromGroup = $layerRow.find("input.layer_agents_from_group").val();
var layerAgents = $layerRow.find("input.layer_agent_alias").map(function () {
return {
'id': $(this).data('agent-id'),
'alias': $(this).val()
"id": $(this).data("agent-id"),
"alias": $(this).val()
};
}
).get();
var layerGroups = $layerRow.find('input.layer_group_id').map(
function () {
}).get();
var layerGroups = $layerRow.find("input.layer_group_id").map(function () {
var groupId = $(this).val();
var groupName = $(this).siblings(("input.layer_group_name[data-group-id='" + groupId + "']")).val();
var agentId = $(this).siblings(("input.layer_agent_id_for_data[data-group-id='" + groupId + "']")).val();
var agentAlias = $(this).siblings(("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']")).val();
var groupName = $(this).siblings("input.layer_group_name[data-group-id='" + groupId + "']").val();
var agentId = $(this).siblings("input.layer_agent_id_for_data[data-group-id='" + groupId + "']").val();
var agentAlias = $(this).siblings("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']").val();
return {
'id': groupId,
'name': groupName,
'agentId': agentId,
'agentAlias': agentAlias
"id": groupId,
"name": groupName,
"agentId": agentId,
"agentAlias": agentAlias
};
}
).get();
}).get();
return {
id: layerId,
@ -896,185 +882,142 @@ function getLayerData(layerId)
}
}
function setLayerEditorData(data)
{
if (data == null) {
data = {};
}
function setLayerEditorData (data) {
if (data == null) data = {};
// Set defaults
data = {
id: data.id || 0,
name: data.name || '',
name: data.name || "",
visible: data.visible != null ? !!data.visible : true,
agentsFromGroup: data.agentsFromGroup || -1,
agents: data.agents || [],
groups: data.groups || []
}
var $layerFormIdInput = $('input#hidden-current_edit_layer_id');
var $layerFormNameInput = $('input#text-layer_name_form');
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
var $layerFormAgentsFromGroupSelect = $('#layer_group_form');
var $layerFormAgentInput = $('input#text-agent_alias');
var $layerFormAgentButton = $('input#button-add_agent');
var $layerFormAgentsListItems = $('tr.agents_list_item');
var $layerFormGroupsListItems = $('tr.groups_list_item');
var $layerFormIdInput = $("input#hidden-current_edit_layer_id");
var $layerFormNameInput = $("input#text-layer_name_form");
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
var $layerFormAgentsFromGroupSelect = $("#layer_group_form");
var $layerFormAgentInput = $("input#text-agent_alias");
var $layerFormAgentButton = $("input#button-add_agent");
var $layerFormAgentsListItems = $("tr.agents_list_item");
var $layerFormGroupsListItems = $("tr.groups_list_item");
$layerFormIdInput.val(data.id);
$layerFormNameInput.val(data.name);
$layerFormVisibleCheckbox.prop('checked', data.visible);
$(`#layer_group_form option[value=${data.agentsFromGroup
}]`).attr('selected', 'selected');
$layerFormVisibleCheckbox.prop("checked", data.visible);
$(`#layer_group_form option[value=${data.agentsFromGroup}]`).attr('selected', 'selected');
$(`#layer_group_form`).trigger('change');
$layerFormAgentInput.val('');
$layerFormAgentButton.prop('disabled', true);
$layerFormAgentInput.val("");
$layerFormAgentButton.prop("disabled", true);
$layerFormAgentsListItems.remove();
$layerFormGroupsListItems.remove();
var $tableAgents = $('table#list_agents');
data.agents.foreach (function (agent) {
var $tableAgents = $("table#list_agents");
data.agents.forEach(function (agent) {
addAgentRow(data.id, agent.id, agent.alias);
}) {
}
});
var $tableGroups = $('table#list_groups');
data.groups.foreach (function (group) {
var $tableGroups = $("table#list_groups");
data.groups.forEach(function (group) {
addGroupRow(data.id, group.id, group.name, group.agentId, group.agentAlias);
}) {
});
}
}
function newLayer()
{
function newLayer () {
showLayerEditor(null);
}
function saveNewLayer () {
var $layerFormNameInput = $("input#text-layer_name_form");
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
var $layerFormAgentsFromGroupSelect = $("select#layer_group_form");
var $layerFormAgentsListItems = $("tr.agents_list_item > td > span.agent_alias");
var $layerFormGroupsListItems = $("tr.groups_list_item");
var newLayerId = "new_" + ($("tr.layer_row").length + 1);
function saveNewLayer()
{
var $layerFormNameInput = $('input#text-layer_name_form');
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
var $layerFormAgentsFromGroupSelect = $('select#layer_group_form');
var $layerFormAgentsListItems = $('tr.agents_list_item > td > span.agent_alias');
var $layerFormGroupsListItems = $('tr.groups_list_item');
var newLayerId = ('new_' + ($('tr.layer_row').length + 1));
addLayerRow(
newLayerId,
{
addLayerRow(newLayerId, {
id: newLayerId,
name: $layerFormNameInput.val(),
visible: $layerFormVisibleCheckbox.prop('checked'),
visible: $layerFormVisibleCheckbox.prop("checked"),
agentsFromGroup: $layerFormAgentsFromGroupSelect.val(),
agents: $layerFormAgentsListItems.map(
function () {
agents: $layerFormAgentsListItems.map(function () {
return {
'id': $(this).data('agent-id'),
'alias': $(this).text()
"id": $(this).data("agent-id"),
"alias": $(this).text()
};
}
).get(),
groups: $layerFormGroupsListItems.map(
function () {
}).get(),
groups: $layerFormGroupsListItems.map(function () {
return {
'id': $(this).data('group-id'),
'name': $(this).data('group-name'),
'agentId': $(this).data('agent-id'),
'agentAlias': $(this).data('agent-alias')
"id": $(this).data("group-id"),
"name": $(this).data("group-name"),
"agentId": $(this).data("agent-id"),
"agentAlias": $(this).data("agent-alias")
};
}
).get()
}
);
}).get()
});
}
function cleanLayerEditor()
{
function cleanLayerEditor () {
// Clear editor events
unbindLayerEditorEvents();
// Add default data to the editor
setLayerEditorData();
}
function bindLayerEditorEvents (layerId) {
var $layerFormNameInput = $("input#text-layer_name_form");
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
var $layerFormAgentsFromGroupSelect = $("select#layer_group_form");
function bindLayerEditorEvents(layerId)
{
var $layerFormNameInput = $('input#text-layer_name_form');
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
var $layerFormAgentsFromGroupSelect = $('select#layer_group_form');
var $layerRow = $("tr#layer_row_" + layerId);
var $layerRow = $('tr#layer_row_' + layerId);
if ($layerRow.length === 0) return;
if ($layerRow.length === 0) {
return;
}
$layerFormNameInput.bind(
'change',
function (event) {
$layerFormNameInput.bind("change", function (event) {
var name = event.currentTarget.value;
$layerRow.find('span.layer_name').html(name);
$layerRow.find('input.layer_name').val(name);
}
);
$layerFormVisibleCheckbox.bind(
'click',
function (event) {
var visible = $(event.currentTarget).prop('checked');
$layerRow.find('input.layer_visible').val(visible ? 1 : 0);
}
);
$layerFormAgentsFromGroupSelect.bind(
'change',
function (event) {
$layerRow.find("span.layer_name").html(name);
$layerRow.find("input.layer_name").val(name);
});
$layerFormVisibleCheckbox.bind("click", function (event) {
var visible = $(event.currentTarget).prop("checked");
$layerRow.find("input.layer_visible").val(visible ? 1 : 0);
});
$layerFormAgentsFromGroupSelect.bind("change", function (event) {
var group = event.currentTarget.value;
$layerRow.find('input.layer_agents_from_group').val(group);
}
);
$layerRow.find("input.layer_agents_from_group").val(group);
});
}
function unbindLayerEditorEvents () {
var $layerFormNameInput = $("input#text-layer_name_form");
var $layerFormVisibleCheckbox = $("input#checkbox-layer_visible_form");
var $layerFormAgentsFromGroupSelect = $("select#layer_group_form");
function unbindLayerEditorEvents()
{
var $layerFormNameInput = $('input#text-layer_name_form');
var $layerFormVisibleCheckbox = $('input#checkbox-layer_visible_form');
var $layerFormAgentsFromGroupSelect = $('select#layer_group_form');
$layerFormNameInput.unbind('change');
$layerFormVisibleCheckbox.unbind('click');
$layerFormNameInput.unbind("change");
$layerFormVisibleCheckbox.unbind("click");
$layerFormAgentsFromGroupSelect.val('-1');
}
function getAgentRow (layerId, agentId, agentAlias) {
var $row = $("<tr class=\"agents_list_item\" />");
var $nameCol = $("<td />");
var $deleteCol = $("<td />");
function getAgentRow(layerId, agentId, agentAlias)
{
var $row = $('<tr class="agents_list_item" />');
var $nameCol = $('<td />');
var $deleteCol = $('<td />');
var $agentAlias = $('<span class="agent_alias" data-agent-id="' + agentId + '">' + agentAlias + '</span>');
var $agentAlias = $("<span class=\"agent_alias\" data-agent-id=\"" + agentId + "\">" + agentAlias + "</span>");
var $removeBtn = $('<a class="delete_row" href="javascript:" <?php echo html_print_image('images/cross.png', false, ['class' => 'invert_filter']); ?> </a>');
$removeBtn.click(
function (event) {
var $layerRow = $('tr#layer_row_' + layerId);
$removeBtn.click(function (event) {
var $layerRow = $("tr#layer_row_" + layerId);
if ($layerRow.length > 0) {
$layerRow.find(("input.layer_agent_id[data-agent-id='" + agentId + "']")).remove();
$layerRow.find(("input.layer_agent_alias[data-agent-id='" + agentId + "']")).remove();
$layerRow.find("input.layer_agent_id[data-agent-id='" + agentId + "']").remove();
$layerRow.find("input.layer_agent_alias[data-agent-id='" + agentId + "']").remove();
}
var $agentListItemRow = $(event.currentTarget).parent().parent();
$agentListItemRow.remove();
}
);
});
$nameCol.append($agentAlias);
$deleteCol.append($removeBtn);
@ -1084,64 +1027,55 @@ function setLayerEditorData(data)
return $row;
}
function addAgentRow (layerId, agentId, agentAlias) {
if (agentId == null || agentId == 0 || agentAlias.length === 0) return;
function addAgentRow(layerId, agentId, agentAlias)
{
if (agentId == null || agentId == 0 || agentAlias.length === 0) {
return;
var $layerRow = $("tr#layer_row_" + layerId);
if ($layerRow && $layerRow.find("input.layer_agent_id[value='" + agentId + "']").length === 0) {
$layerRow
.find("td:first-child")
.append(getLayerAgentIdInput(layerId, agentId))
.append(getLayerAgentAliasInput(layerId, agentId, agentAlias));
}
var $layerRow = $('tr#layer_row_' + layerId);
if ($layerRow && $layerRow.find(("input.layer_agent_id[value='" + agentId + "']")).length === 0) {
$layerRow.find('td:first-child').append(getLayerAgentIdInput(layerId, agentId)).append(getLayerAgentAliasInput(layerId, agentId, agentAlias));
$("table#list_agents").append(getAgentRow(layerId, agentId, agentAlias));
}
$('table#list_agents').append(getAgentRow(layerId, agentId, agentAlias));
function getLayerAgentIdInput (layerId, agentId) {
return $("<input class=\"layer_agent_id\" type=\"hidden\" data-agent-id=\"" + agentId + "\" name=\"layers[" + layerId + "][agents][" + agentId + "][id]\" value=\"" + agentId + "\">");
}
function getLayerAgentIdInput(layerId, agentId)
{
return $('<input class="layer_agent_id" type="hidden" data-agent-id="' + agentId + '" name="layers[' + layerId + '][agents][' + agentId + '][id]" value="' + agentId + '">');
function getLayerAgentAliasInput (layerId, agentId, agentAlias) {
return $("<input class=\"layer_agent_alias\" type=\"hidden\" data-agent-id=\"" + agentId + "\" name=\"layers[" + layerId + "][agents][" + agentId + "][alias]\" value=\"" + agentAlias + "\">");
}
function getGroupRow (layerId, groupId, groupName, agentId, agentAlias) {
var $row = $("<tr class=\"groups_list_item\" data-group-id=\"" + groupId + "\" data-group-name=\"" + groupName + "\" data-agent-id=\"" + agentId + "\" data-agent-alias=\"" + agentAlias + "\" />");
var $nameCol = $("<td />");
var $deleteCol = $("<td />");
function getLayerAgentAliasInput(layerId, agentId, agentAlias)
{
return $('<input class="layer_agent_alias" type="hidden" data-agent-id="' + agentId + '" name="layers[' + layerId + '][agents][' + agentId + '][alias]" value="' + agentAlias + '">');
}
function getGroupRow(layerId, groupId, groupName, agentId, agentAlias)
{
var $row = $('<tr class="groups_list_item" data-group-id="' + groupId + '" data-group-name="' + groupName + '" data-agent-id="' + agentId + '" data-agent-alias="' + agentAlias + '" />');
var $nameCol = $('<td />');
var $deleteCol = $('<td />');
var $groupName = $('<span class="group_desc">'
var $groupName = $("<span class=\"group_desc\">"
+ groupName
+ ' ('
+ " ("
+ "<?php echo __('Using data from'); ?> "
+ '<i>' + agentAlias + '</i>'
+ ')'
+ '</span>');
+ "<i>" + agentAlias + "</i>"
+ ")"
+ "</span>");
var $removeBtn = $('<a class="delete_row" href="javascript:;"><?php echo html_print_image('images/cross.png', true, ['class' => 'invert_filter']); ?></a>');
$removeBtn.click(
function (event) {
var $layerRow = $('tr#layer_row_' + layerId);
$removeBtn.click(function (event) {
var $layerRow = $("tr#layer_row_" + layerId);
if ($layerRow.length > 0) {
$layerRow.find(("input.layer_group_id[data-group-id='" + groupId + "']")).remove();
$layerRow.find(("input.layer_group_name[data-group-id='" + groupId + "']")).remove();
$layerRow.find(("input.layer_agent_id_for_data[data-group-id='" + groupId + "']")).remove();
$layerRow.find(("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']")).remove();
$layerRow.find("input.layer_group_id[data-group-id='" + groupId + "']").remove();
$layerRow.find("input.layer_group_name[data-group-id='" + groupId + "']").remove();
$layerRow.find("input.layer_agent_id_for_data[data-group-id='" + groupId + "']").remove();
$layerRow.find("input.layer_agent_alias_for_data[data-group-id='" + groupId + "']").remove();
}
var $groupListItemRow = $(event.currentTarget).parent().parent();
$groupListItemRow.remove();
}
);
});
$nameCol.append($groupName);
$deleteCol.append($removeBtn);
@ -1151,144 +1085,132 @@ function setLayerEditorData(data)
return $row;
}
function addGroupRow (layerId, groupId, groupName, agentId, agentAlias) {
if (
groupId == null ||
groupId == 0 ||
groupName.length === 0 ||
agentId == null ||
agentId == 0 ||
agentAlias.length === 0
) return;
function addGroupRow(layerId, groupId, groupName, agentId, agentAlias)
{
if (groupId == null
|| groupId == 0
|| groupName.length === 0
|| agentId == null
|| agentId == 0
|| agentAlias.length === 0
) {
return;
var $layerRow = $("tr#layer_row_" + layerId);
if ($layerRow && $layerRow.find("input.layer_group_id[value='" + groupId + "']").length === 0) {
$layerRow
.find("td:first-child")
.append(getLayerGroupIdInput(layerId, groupId))
.append(getLayerGroupNameInput(layerId, groupId, groupName))
.append(getLayerAgentIdForDataInput(layerId, groupId, agentId))
.append(getLayerAgentAliasForDataInput(layerId, groupId, agentAlias));
}
var $layerRow = $('tr#layer_row_' + layerId);
if ($layerRow && $layerRow.find(("input.layer_group_id[value='" + groupId + "']")).length === 0) {
$layerRow.find('td:first-child').append(getLayerGroupIdInput(layerId, groupId)).append(getLayerGroupNameInput(layerId, groupId, groupName)).append(getLayerAgentIdForDataInput(layerId, groupId, agentId)).append(getLayerAgentAliasForDataInput(layerId, groupId, agentAlias));
$("table#list_groups").append(getGroupRow(layerId, groupId, groupName, agentId, agentAlias));
}
$('table#list_groups').append(getGroupRow(layerId, groupId, groupName, agentId, agentAlias));
function getLayerGroupIdInput (layerId, groupId) {
return $("<input class=\"layer_group_id\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][id]\" value=\"" + groupId + "\">");
}
function getLayerGroupIdInput(layerId, groupId)
{
return $('<input class="layer_group_id" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][id]" value="' + groupId + '">');
function getLayerGroupNameInput (layerId, groupId, groupName) {
return $("<input class=\"layer_group_name\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][name]\" value=\"" + groupName + "\">");
}
function getLayerGroupNameInput(layerId, groupId, groupName)
{
return $('<input class="layer_group_name" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][name]" value="' + groupName + '">');
function getLayerAgentIdForDataInput (layerId, groupId, agentId) {
return $("<input class=\"layer_agent_id_for_data\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][agent_id]\" value=\"" + agentId + "\">");
}
function getLayerAgentIdForDataInput(layerId, groupId, agentId)
{
return $('<input class="layer_agent_id_for_data" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][agent_id]" value="' + agentId + '">');
function getLayerAgentAliasForDataInput (layerId, groupId, agentAlias) {
return $("<input class=\"layer_agent_alias_for_data\" type=\"hidden\" data-group-id=\"" + groupId + "\" name=\"layers[" + layerId + "][groups][" + groupId + "][agent_alias]\" value=\"" + agentAlias + "\">");
}
function getLayerRow (layerId, layerData) {
var $row = $("<tr id=\"layer_row_" + layerId + "\" class=\"layer_row\" />");
var $nameCol = $("<td />");
var $sortCol = $("<td />");
var $editCol = $("<td />");
var $deleteCol = $("<td />");
function getLayerAgentAliasForDataInput(layerId, groupId, agentAlias)
{
return $('<input class="layer_agent_alias_for_data" type="hidden" data-group-id="' + groupId + '" name="layers[' + layerId + '][groups][' + groupId + '][agent_alias]" value="' + agentAlias + '">');
}
var $layerIdInput = $("<input class=\"layer_id\" type=\"hidden\" name=\"layer_ids[]\" value=\"" + layerId + "\">");
var $layerNameInput = $("<input class=\"layer_name\" type=\"hidden\" name=\"layers[" + layerId + "][name]\" value=\"" + layerData.name + "\">");
var $layerVisibleInput = $("<input class=\"layer_visible\" type=\"hidden\" name=\"layers[" + layerId + "][visible]\" value=\"" + (layerData.visible ? 1 : 0) + "\">");
var $layerAgentsFromGroupInput = $("<input class=\"layer_agents_from_group\" type=\"hidden\" name=\"layers[" + layerId + "][agents_from_group]\" value=\"" + layerData.agentsFromGroup + "\">");
function getLayerRow(layerId, layerData)
{
var $row = $('<tr id="layer_row_' + layerId + '" class="layer_row" />');
var $nameCol = $('<td />');
var $sortCol = $('<td />');
var $editCol = $('<td />');
var $deleteCol = $('<td />');
var $layerIdInput = $('<input class="layer_id" type="hidden" name="layer_ids[]" value="' + layerId + '">');
var $layerNameInput = $('<input class="layer_name" type="hidden" name="layers[' + layerId + '][name]" value="' + layerData.name + '">');
var $layerVisibleInput = $('<input class="layer_visible" type="hidden" name="layers[' + layerId + '][visible]" value="' + (layerData.visible ? 1 : 0) + '">');
var $layerAgentsFromGroupInput = $('<input class="layer_agents_from_group" type="hidden" name="layers[' + layerId + '][agents_from_group]" value="' + layerData.agentsFromGroup + '">');
var $layerName = $('<span class="layer_name">' + layerData.name + '</span>');
var $sortUpBtn = $('<a class="up_arrow" href="javascript:;" />');
var $sortDownBtn = $('<a class="down_arrow" href="javascript:;" />');
var $layerName = $("<span class=\"layer_name\">" + layerData.name + "</span>");
var $sortUpBtn = $("<a class=\"up_arrow\" href=\"javascript:;\" />");
var $sortDownBtn = $("<a class=\"down_arrow\" href=\"javascript:;\" />");
var $editBtn = $('<a class="edit_layer" href="javascript:;"><?php echo html_print_image('images/config.png', true, ['class' => 'invert_filter']); ?></a>');
var $removeBtn = $('<a class="delete_row" href="javascript:;"><?php echo html_print_image('images/cross.png', true, ['class' => 'invert_filter']); ?></a>');
$sortUpBtn.click(moveLayerRowUpOnClick);
$sortDownBtn.click(moveLayerRowDownOnClick);
$editBtn.click(
function () {
showLayerEditor(layerId);
}
);
$editBtn.click(function () { showLayerEditor(layerId); });
$removeBtn.click(removeLayerRowOnClick);
$nameCol.append($layerName).append($layerIdInput).append($layerNameInput).append($layerVisibleInput).append($layerAgentsFromGroupInput);
$nameCol
.append($layerName)
.append($layerIdInput)
.append($layerNameInput)
.append($layerVisibleInput)
.append($layerAgentsFromGroupInput);
if (layerData.agents && layerData.agents.length > 0) {
layerData.agents.foreach (function (agent) {
layerData.agents.forEach(function (agent) {
$nameCol.append(getLayerAgentIdInput(layerId, agent.id));
$nameCol.append(getLayerAgentAliasInput(layerId, agent.id, agent.alias));
}) {
}
});
}
if (layerData.groups && layerData.groups.length > 0) {
layerData.groups.foreach (function (group) {
layerData.groups.forEach(function (group) {
$nameCol.append(getLayerGroupIdInput(layerId, group.id));
$nameCol.append(getLayerGroupNameInput(layerId, group.id, group.name));
$nameCol.append(getLayerAgentIdForDataInput(layerId, group.id, group.agentId));
$nameCol.append(getLayerAgentAliasForDataInput(layerId, group.id, group.agentAlias));
}) {
}
});
}
$sortCol.append($sortUpBtn).append($sortDownBtn);
$editCol.append($editBtn);
$deleteCol.append($removeBtn);
$sortCol
.append($sortUpBtn)
.append($sortDownBtn);
$editCol
.append($editBtn);
$deleteCol
.append($removeBtn);
$row.append($nameCol).append($sortCol).append($editCol).append($deleteCol);
$row
.append($nameCol)
.append($sortCol)
.append($editCol)
.append($deleteCol);
return $row;
}
function addLayerRow(layerId, layerData)
{
$('table#list_layers').append(getLayerRow(layerId, layerData));
function addLayerRow (layerId, layerData) {
$("table#list_layers").append(getLayerRow(layerId, layerData));
showLayerEditor(layerId);
}
function hightlightRow(layerId)
{
var highlightColor = '#E9F3D2';
$('tr.layer_row').css('background', '');
$('tr#layer_row_' + layerId).css('background', highlightColor);
function hightlightRow (layerId) {
var highlightColor = "#E9F3D2";
$("tr.layer_row").css("background", "");
$("tr#layer_row_" + layerId).css("background", highlightColor);
}
function existInvalidLayerNames()
{
function existInvalidLayerNames () {
var exist = false;
$('table#list_layers input.layer_name').each(
function () {
$("table#list_layers input.layer_name").each(function () {
if ($(this).val().trim().length === 0) {
exist = true;
return false;
// Break jQuery object each
return false; // Break jQuery object each
}
}
);
});
return exist;
}
function onFormSubmit(event)
{
function onFormSubmit (event) {
// Validate layer names
if (existInvalidLayerNames()) {
event.preventDefault();
@ -1296,31 +1218,25 @@ function setLayerEditorData(data)
alert("<?php echo __('Empty layer names are not supported'); ?>");
return false;
}
// Save connection list
$('#map_connection_list').val(connectionMaps.toString());
}
function onLayerGroupIdChange(event)
{
function onLayerGroupIdChange (event) {
// Clear agent inputs
$('input#hidden-agent_id_for_data').val(0);
$('input#text-agent_alias_for_data').val('');
$("input#hidden-agent_id_for_data").val(0);
$("input#text-agent_alias_for_data").val("");
toggleAddGroupBtn();
}
// Bind events
$('form#form_setup').submit(onFormSubmit);
$('input#button-add_agent').click(addAgentClick);
$('select#layer_group_id').change(onLayerGroupIdChange);
$('input#button-add_group').click(addGroupClick);
$("form#form_setup").submit(onFormSubmit);
$("input#button-add_agent").click(addAgentClick);
$("select#layer_group_id").change(onLayerGroupIdChange);
$("input#button-add_group").click(addGroupClick);
// Populate layer list
var layers = < ? php echo json_encode($layer_list);
?>
;
var layers = <?php echo json_encode($layer_list); ?>;
layers.forEach(function (layer) {
$("table#list_layers").append(
getLayerRow(layer["id"], {

View File

@ -309,6 +309,8 @@ if ($save_event_filter) {
$values['id_extra'] = get_parameter('id_extra');
$values['user_comment'] = get_parameter('user_comment');
$values['id_source_event'] = get_parameter('id_source_event');
$values['custom_data'] = get_parameter('custom_data');
$values['custom_data_filter_type'] = get_parameter('custom_data_filter_type');
if (is_metaconsole()) {
$values['server_id'] = get_parameter('server_id');
@ -363,6 +365,8 @@ if ($update_event_filter) {
$values['id_extra'] = get_parameter('id_extra');
$values['user_comment'] = get_parameter('user_comment');
$values['id_source_event'] = get_parameter('id_source_event');
$values['custom_data'] = get_parameter('custom_data');
$values['custom_data_filter_type'] = get_parameter('custom_data_filter_type');
if (is_metaconsole() === true) {
$values['server_id'] = get_parameter('server_id');
@ -834,7 +838,9 @@ function save_new_filter() {
"id_extra": $("#text-id_extra").val(),
"user_comment": $("#text-user_comment").val(),
"id_source_event": $("#text-id_source_event").val(),
"server_id": $("#server_id").val()
"server_id": $("#server_id").val(),
"custom_data": $("#text-custom_data").val(),
"custom_data_filter_type": $("#custom_data_filter_type").val()
},
function (data) {
$("#info_box").hide();
@ -907,7 +913,9 @@ function save_update_filter() {
"id_extra": $("#text-id_extra").val(),
"user_comment": $("#text-user_comment").val(),
"id_source_event": $("#text-id_source_event").val(),
"server_id": $("#server_id").val()
"server_id": $("#server_id").val(),
"custom_data": $("#text-custom_data").val(),
"custom_data_filter_type": $("#custom_data_filter_type").val()
},
function (data) {

View File

@ -20,7 +20,7 @@
/**
* Pandora build version and version
*/
$build_version = 'PC220404';
$build_version = 'PC220405';
$pandora_version = 'v7.0NG.760';
// Do not overwrite default timezone set if defined.

View File

@ -210,6 +210,7 @@ function events_get_all_fields()
$columns['data'] = __('Data');
$columns['module_status'] = __('Module status');
$columns['module_custom_id'] = __('Module custom id');
$columns['custom_data'] = __('Custom data');
return $columns;
}
@ -310,6 +311,9 @@ function events_get_column_name($field, $table_alias=false)
case 'direccion':
return __('Agent IP');
case 'custom_data':
return __('Custom data');
default:
return __($field);
}
@ -1122,6 +1126,23 @@ function events_get_all(
);
}
// Custom data.
if (empty($filter['custom_data']) === false) {
if ($filter['custom_data_filter_type'] === '1') {
$sql_filters[] = sprintf(
' AND JSON_VALID(custom_data) = 1
AND (JSON_EXTRACT(custom_data, "$.*") LIKE lower("%%%s%%") COLLATE utf8mb4_0900_ai_ci) ',
io_safe_output($filter['custom_data'])
);
} else {
$sql_filters[] = sprintf(
' AND JSON_VALID(custom_data) = 1
AND (JSON_SEARCH(JSON_KEYS(custom_data), "all", lower("%%%s%%") COLLATE utf8mb4_0900_ai_ci) IS NOT NULL) ',
io_safe_output($filter['custom_data'])
);
}
}
// Validated or in process by.
if (empty($filter['id_user_ack']) === false) {
$sql_filters[] = sprintf(

View File

@ -129,7 +129,7 @@
<div style='height: 10px'>
<?php
$version = '7.0NG.760';
$build = '220404';
$build = '220405';
$banner = "v$version Build $build";
error_reporting(0);

View File

@ -134,7 +134,7 @@ if ($group_rep == 2) {
echo '<div class="nf">'.__('No events').'</div>';
}
} else {
// fields that the user has selected to show
// Fields that the user has selected to show.
if ($meta) {
$show_fields = events_meta_get_custom_fields_user();
} else {
@ -345,6 +345,13 @@ if ($group_rep == 2) {
$i++;
}
if ($fields === 'custom_data') {
$table->head[$i] = __('Custom data');
$table->align[$i] = 'left';
$i++;
}
}
if (in_array('estado', $show_fields)) {

View File

@ -226,6 +226,16 @@ $server_id = get_parameter(
$filter['id_server_meta']
);
$custom_data_filter_type = get_parameter(
'filter[custom_data_filter_type]',
$filter['custom_data_filter_type']
);
$custom_data = get_parameter(
'filter[custom_data]',
$filter['custom_data']
);
if (is_metaconsole() === true) {
// Connect to node database.
$id_node = $server_id;
@ -530,6 +540,8 @@ if ($loaded_filter !== false && $from_event_graph != 1 && !isset($fb64)) {
$user_comment = $filter['user_comment'];
$id_source_event = ($filter['id_source_event'] ?? '');
$server_id = $filter['server_id'];
$custom_data = $filter['custom_data'];
$custom_data_filter_type = $filter['custom_data_filter_type'];
}
}
@ -1451,6 +1463,54 @@ $adv_inputs[] = html_print_div(
true
);
// Custom data filter type.
$custom_data_filter_type_input = html_print_select(
[
'0' => __('Filter custom data by field name'),
'1' => __('Filter custom data by field value'),
],
'custom_data_filter_type',
$custom_data_filter_type,
'',
false,
-1,
true
);
$adv_inputs[] = html_print_div(
[
'class' => 'filter_input',
'content' => sprintf(
'<label>%s</label>%s',
__('Custom data filter'),
$custom_data_filter_type_input
),
],
true
);
// Custom data.
$custom_data_input = html_print_input_text(
'custom_data',
$custom_data,
'',
5,
255,
true
);
$adv_inputs[] = html_print_div(
[
'class' => 'filter_input',
'content' => sprintf(
'<label>%s</label>%s',
__('Custom data search'),
$custom_data_input
),
],
true
);
// Tags.
if (is_metaconsole() === true) {
$data = '<fieldset><legend class="pdd_0px">'.__('Events with following tags').'</legend>'.html_print_table($tabletags_with, true).'</fieldset>';
@ -2259,6 +2319,27 @@ function process_datatables_item(item) {
/* Module name */
item.id_agentmodule = item.module_name;
if (item.custom_data !== '') {
var custom_data_str = '';
var item_custom_data_obj = (function(json_str) {
try {
return JSON.parse(json_str);
} catch (err) {
return false;
}
})(item.custom_data);
if (item_custom_data_obj !== false) {
for (const [attr_name, val] of Object.entries(item_custom_data_obj)) {
custom_data_str += attr_name + ' = ' + val + '<br>';
}
item.custom_data = custom_data_str;
} else {
item.custom_data = '';
}
}
}
/* Datatables auxiliary functions ends */

View File

@ -127,6 +127,8 @@ if (is_ajax()) {
$values['source'] = get_parameter('source');
$values['id_extra'] = get_parameter('id_extra');
$values['user_comment'] = get_parameter('user_comment');
$values['custom_data'] = get_parameter('custom_data');
$values['custom_data_filter_type'] = get_parameter('custom_data_filter_type');
if (is_metaconsole()) {
$values['id_source_event'] = get_parameter('id_source_event');
@ -182,6 +184,8 @@ if (is_ajax()) {
$values['source'] = get_parameter('source');
$values['id_extra'] = get_parameter('id_extra');
$values['user_comment'] = get_parameter('user_comment');
$values['custom_data'] = get_parameter('custom_data');
$values['custom_data_filter_type'] = get_parameter('custom_data_filter_type');
if (is_metaconsole()) {
$values['id_source_event'] = get_parameter('id_source_event');
@ -1567,8 +1571,9 @@ $(document).ready( function() {
"id_extra": $("#text-id_extra").val(),
"user_comment": $("#text-user_comment").val(),
"id_source_event": $("#text-id_source_event").val(),
"server_id" : $("#server_id").val()
"server_id" : $("#server_id").val(),
"custom_data" : $("#text-custom_data").val(),
"custom_data_filter_type" : $("#custom_data_filter_type").val()
},
function (data) {
$(".info_box").hide();
@ -1670,7 +1675,9 @@ $(document).ready( function() {
"id_extra": $("#text-id_extra").val(),
"user_comment": $("#text-user_comment").val(),
"id_source_event": $("#text-id_source_event").val(),
"server_id" : $("#server_id").val()
"server_id" : $("#server_id").val(),
"custom_data" : $("#text-custom_data").val()
"custom_data_filter_type" : $("#custom_data_filter_type").val()
},
function (data) {
$(".info_box").hide();

View File

@ -226,7 +226,7 @@ try {
if ($custom_data_array !== null) {
array_walk(
$custom_data_array,
function (&$value, $field) {
function (&$value, $field) use ($separator) {
if (is_array($value) === true) {
$value = '['.implode($separator, $value).']';
}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.760
%define release 220404
%define release 220405
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.760
%define release 220404
%define release 220405
# User and Group under which Apache is running
%define httpd_name httpd

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_console
%define version 7.0NG.760
%define release 220404
%define release 220405
%define httpd_name httpd
# User and Group under which Apache is running
%define httpd_name apache2

View File

@ -1251,6 +1251,8 @@ CREATE TABLE IF NOT EXISTS `tevent_filter` (
`server_id` INT NOT NULL DEFAULT 0,
`time_from` TIME NULL,
`time_to` TIME NULL,
`custom_data` VARCHAR(500) DEFAULT '',
`custom_data_filter_type` TINYINT UNSIGNED DEFAULT 0,
PRIMARY KEY (`id_filter`)
) ENGINE=InnoDB DEFAULT CHARSET=UTF8MB4;

View File

@ -1,5 +1,5 @@
package: pandorafms-server
Version: 7.0NG.760-220404
Version: 7.0NG.760-220405
Architecture: all
Priority: optional
Section: admin

View File

@ -14,7 +14,7 @@
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
pandora_version="7.0NG.760-220404"
pandora_version="7.0NG.760-220405"
package_cpan=0
package_pandora=1

View File

@ -46,7 +46,7 @@ our @EXPORT = qw(
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.760";
my $pandora_build = "220404";
my $pandora_build = "220405";
our $VERSION = $pandora_version." ".$pandora_build;
# Setup hash

View File

@ -34,7 +34,7 @@ our @ISA = qw(Exporter);
# version: Defines actual version of Pandora Server for this module only
my $pandora_version = "7.0NG.760";
my $pandora_build = "220404";
my $pandora_build = "220405";
our $VERSION = $pandora_version." ".$pandora_build;
our %EXPORT_TAGS = ( 'all' => [ qw() ] );

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_server
%define version 7.0NG.760
%define release 220404
%define release 220405
Summary: Pandora FMS Server
Name: %{name}

View File

@ -3,7 +3,7 @@
#
%define name pandorafms_server
%define version 7.0NG.760
%define release 220404
%define release 220405
Summary: Pandora FMS Server
Name: %{name}

View File

@ -9,7 +9,7 @@
# **********************************************************************
PI_VERSION="7.0NG.760"
PI_BUILD="220404"
PI_BUILD="220405"
MODE=$1
if [ $# -gt 1 ]; then

View File

@ -35,7 +35,7 @@ use PandoraFMS::Config;
use PandoraFMS::DB;
# version: define current version
my $version = "7.0NG.760 Build 220404";
my $version = "7.0NG.760 Build 220405";
# Pandora server configuration
my %conf;

View File

@ -36,7 +36,7 @@ use Encode::Locale;
Encode::Locale::decode_argv;
# version: define current version
my $version = "7.0NG.760 Build 220404";
my $version = "7.0NG.760 Build 220405";
# save program name for logging
my $progname = basename($0);