diff --git a/pandora_console/extras/mr/60.sql b/pandora_console/extras/mr/60.sql
new file mode 100644
index 0000000000..bf1ff4131a
--- /dev/null
+++ b/pandora_console/extras/mr/60.sql
@@ -0,0 +1,5 @@
+START TRANSACTION;
+
+ALTER TABLE `tagent_custom_fields` ADD `is_link_enabled` TINYINT(1) NOT NULL DEFAULT 0;
+
+COMMIT;
diff --git a/pandora_console/godmode/agentes/agent_manager.php b/pandora_console/godmode/agentes/agent_manager.php
index 2261c5e9a5..836b68ba68 100644
--- a/pandora_console/godmode/agentes/agent_manager.php
+++ b/pandora_console/godmode/agentes/agent_manager.php
@@ -872,6 +872,35 @@ foreach ($fields as $field) {
true,
true
);
+ } else if ($field['is_link_enabled']) {
+ list($link_text, $link_url) = json_decode($custom_value, true);
+
+ if (json_last_error() !== JSON_ERROR_NONE) {
+ $link_text = '';
+ $link_url = '';
+ }
+
+ $data_field[1] = ''.__('Link text:').'';
+ $data_field[1] .= '
';
+ $data_field[1] .= html_print_textarea(
+ 'customvalue_'.$field['id_field'].'[]',
+ 2,
+ 65,
+ $link_text,
+ 'class="min-height-30px',
+ true
+ );
+ $data_field[1] .= '
';
+ $data_field[1] .= ''.__('Link URL:').'';
+ $data_field[1] .= '
';
+ $data_field[1] .= html_print_textarea(
+ 'customvalue_'.$field['id_field'].'[]',
+ 2,
+ 65,
+ $link_url,
+ 'class="min-height-30px',
+ true
+ );
} else {
$data_field[1] = html_print_textarea(
'customvalue_'.$field['id_field'],
diff --git a/pandora_console/godmode/agentes/configurar_agente.php b/pandora_console/godmode/agentes/configurar_agente.php
index f873795ae6..2fd9fa8948 100644
--- a/pandora_console/godmode/agentes/configurar_agente.php
+++ b/pandora_console/godmode/agentes/configurar_agente.php
@@ -238,7 +238,15 @@ if ($create_agent) {
$field_values = [];
foreach ($fields as $field) {
- $field_values[$field['id_field']] = (string) get_parameter_post('customvalue_'.$field['id_field'], '');
+ $field_value = get_parameter_post('customvalue_'.$field['id_field'], '');
+
+ if ($field['is_link_enabled']) {
+ $field_value = json_encode($field_value);
+ } else {
+ $field_value = (string) $field_value;
+ }
+
+ $field_values[$field['id_field']] = $field_value;
}
// Check if agent exists (BUG WC-50518-2).
@@ -999,7 +1007,22 @@ if ($update_agent) {
$field_values = [];
foreach ($fields as $field) {
- $field_values[$field['id_field']] = (string) get_parameter_post('customvalue_'.$field['id_field'], '');
+ $field_value = get_parameter_post('customvalue_'.$field['id_field'], '');
+
+ if ($field['is_link_enabled']) {
+ if ($field_value[1] !== '') {
+ $parsed_url = parse_url($field_value[1]);
+ if (empty($parsed_url['scheme']) === true) {
+ $field_value[1] = 'http://'.ltrim($field_value[1], '/');
+ }
+ }
+
+ $field_value = json_encode($field_value);
+ } else {
+ $field_value = (string) $field_value;
+ }
+
+ $field_values[$field['id_field']] = $field_value;
}
foreach ($field_values as $key => $value) {
diff --git a/pandora_console/godmode/agentes/configure_field.php b/pandora_console/godmode/agentes/configure_field.php
index 7ef0fe042a..f7c80c832c 100755
--- a/pandora_console/godmode/agentes/configure_field.php
+++ b/pandora_console/godmode/agentes/configure_field.php
@@ -30,6 +30,8 @@ $display_on_front = (bool) get_parameter('display_on_front', 0);
$is_password_type = (bool) get_parameter('is_password_type', 0);
$is_combo_enable = (bool) get_parameter('is_combo_enable', 0);
$combo_values = (string) get_parameter('combo_values', '');
+$is_link_enabled = (bool) get_parameter('is_link_enabled', 0);
+
// Header.
if ($id_field) {
$field = db_get_row_filter('tagent_custom_fields', ['id_field' => $id_field]);
@@ -38,6 +40,7 @@ if ($id_field) {
$is_password_type = $field['is_password_type'];
$combo_values = $field['combo_values'] ? $field['combo_values'] : '';
$is_combo_enable = $config['is_combo_enable'];
+ $is_link_enabled = $field['is_link_enabled'];
ui_print_page_header(__('Update agent custom field'), 'images/custom_field.png', false, '', true, '');
} else {
ui_print_page_header(__('Create agent custom field'), 'images/custom_field.png', false, '', true, '');
@@ -128,6 +131,17 @@ $table->data[4][1] = html_print_textarea(
true
);
+$table->data[5][0] = __('Link type');
+$table->data[5][1] = html_print_checkbox_switch_extended(
+ 'is_link_enabled',
+ 1,
+ $is_link_enabled,
+ false,
+ '',
+ '',
+ true
+);
+
echo '