From 6a220208b4839b668ebe1b3b2561d61d9bbdf125 Mon Sep 17 00:00:00 2001
From: fbsanchez <fborja.sanchez@artica.es>
Date: Mon, 12 Apr 2021 19:16:39 +0200
Subject: [PATCH 01/13] reviewing correlated alerts

---
 pandora_console/include/styles/alert.css | 90 ++++++++++++------------
 1 file changed, 45 insertions(+), 45 deletions(-)

diff --git a/pandora_console/include/styles/alert.css b/pandora_console/include/styles/alert.css
index 9a068cba34..9af7559eaf 100644
--- a/pandora_console/include/styles/alert.css
+++ b/pandora_console/include/styles/alert.css
@@ -1,12 +1,44 @@
+.rules div {
+  display: inline-block;
+}
+
 li#li-buttons-alert-list > div {
   margin-left: 10px;
 }
 
+ul.sample li {
+  padding-bottom: 1em;
+}
+ul.sample li:last-child {
+  padding-bottom: 0;
+}
+
 #rule-builder .rule-builder-actions li {
   display: inline;
   width: auto;
 }
 
+li#li-filters_show_action_alerts > label,
+li#li-buttons-alert-list > label,
+li#li-filters-alert-list > label {
+  width: initial;
+}
+
+form#advanced_filters_alert ul li label,
+form#general_filters_alert ul li label {
+  width: 150px;
+}
+
+#rules.flex-row label {
+  flex: 1 1 70px;
+}
+
+li#li-from-to-threshold > label:not(:first-child),
+li#li-time-from-to > label:not(:first-child) {
+  width: initial;
+  margin-right: 15px;
+}
+
 #rule-builder .rule-builder-actions li label {
   width: 0;
 }
@@ -21,10 +53,6 @@ ul.sample {
   flex: 1 1 300px;
 }
 
-#rules.flex-row label {
-  flex: 1 1 70px;
-}
-
 #rules.flex-row div {
   flex: 10 1 200px;
 }
@@ -39,17 +67,6 @@ span.rule-title {
   width: 100%;
 }
 
-li#li-filters_show_action_alerts > label,
-li#li-buttons-alert-list > label,
-li#li-filters-alert-list > label {
-  width: initial;
-}
-
-form#advanced_filters_alert ul li label,
-form#general_filters_alert ul li label {
-  width: 150px;
-}
-
 form#conditions_filters_alert ul li label:first-child {
   width: 300px;
 }
@@ -62,17 +79,14 @@ li#li-description textarea {
   flex: 1 1 auto;
 }
 
-li#li-from-to-threshold > label:not(:first-child),
-li#li-time-from-to > label:not(:first-child) {
-  width: initial;
-  margin-right: 15px;
-}
-
 li#li-from-to-threshold > input,
 li#li-time-from-to > input {
   margin-right: 15px;
 }
-
+.mode_table_firing table.info_table thead tr th img {
+  padding: 10px;
+  vertical-align: middle;
+}
 form#advanced_filters_alert textarea {
   flex: 1 1 auto;
   height: 5em;
@@ -107,12 +121,7 @@ ul.sample {
   flex-grow: 1;
   justify-content: space-between;
 }
-ul.sample li {
-  padding-bottom: 1em;
-}
-ul.sample li:last-child {
-  padding-bottom: 0;
-}
+
 div.target {
   flex-grow: 1;
   flex-basis: auto;
@@ -140,28 +149,28 @@ div.target.flex {
   position: relative;
   top: 25%;
   display: block;
-  left: 37%;
+  margin: 0 auto;
   font-size: 3em;
   color: #aaa;
   overflow: hidden;
-  width: 6em;
   background: #fff;
   text-align: center;
-  z-index: 2;
 }
-div#rules.show::after {
+div#rules::after {
+  content: "Drop Here";
   position: relative;
-  top: 25%;
   display: block;
-  left: 37%;
+  margin: 2em auto;
   font-size: 3em;
   color: #aaa;
   overflow: hidden;
-  width: 6em;
   background: #fff;
   text-align: center;
-  z-index: 2;
 }
+div#rules.cleanup::after {
+  content: none;
+}
+
 div#rules.show {
   box-shadow: 0 0 15px -5px #424242;
   border: 1px solid #ddd;
@@ -209,10 +218,6 @@ div#rules.show {
   background-color: #424242;
 }
 
-.rules div {
-  display: inline-block;
-}
-
 .inEdit {
   background-color: #888;
 }
@@ -253,11 +258,6 @@ div#rules.show {
   font-weight: bolder;
 }
 
-.mode_table_firing table.info_table thead tr th img {
-  padding: 10px;
-  vertical-align: middle;
-}
-
 #rules select.click-list-elements {
   border-radius: 0px;
   background-color: #424242;

From 1b4251cf4961891278982ebcb59a93074729f0b7 Mon Sep 17 00:00:00 2001
From: fbsanchez <fborja.sanchez@artica.es>
Date: Mon, 12 Apr 2021 20:10:58 +0200
Subject: [PATCH 02/13] minor improvement, disabledElements

---
 pandora_console/include/styles/alert.css | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/pandora_console/include/styles/alert.css b/pandora_console/include/styles/alert.css
index 9af7559eaf..9679e9483c 100644
--- a/pandora_console/include/styles/alert.css
+++ b/pandora_console/include/styles/alert.css
@@ -120,6 +120,7 @@ ul.sample {
   max-width: 50%;
   flex-grow: 1;
   justify-content: space-between;
+  min-width: 300px;
 }
 
 div.target {
@@ -194,7 +195,10 @@ div#rules.show {
   opacity: 0.2;
   cursor: not-allowed;
 }
-
+.field.disabledElements {
+  opacity: 0.2;
+  cursor: not-allowed;
+}
 .log {
   background-color: #638460;
 }

From a80e50b7301858ff5e98a3a5c5e705a30731a8a8 Mon Sep 17 00:00:00 2001
From: fbsanchez <fborja.sanchez@artica.es>
Date: Wed, 14 Apr 2021 21:39:58 +0200
Subject: [PATCH 03/13] Update tevent_rule schema

---
 pandora_console/extras/mr/46.sql                              | 2 ++
 pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql | 1 +
 pandora_console/pandoradb.sql                                 | 1 +
 3 files changed, 4 insertions(+)

diff --git a/pandora_console/extras/mr/46.sql b/pandora_console/extras/mr/46.sql
index 717b459590..ae957a0b47 100644
--- a/pandora_console/extras/mr/46.sql
+++ b/pandora_console/extras/mr/46.sql
@@ -4,6 +4,8 @@ ALTER TABLE `tagent_custom_fields` MODIFY COLUMN `combo_values` TEXT NOT NULL DE
 ALTER TABLE `treport_content` MODIFY `external_source` MEDIUMTEXT;
 ALTER TABLE `treport_content_template` MODIFY `external_source` MEDIUMTEXT;
 
+ALTER TABLE `tevent_rule` ADD COLUMN `tag_name` TEXT AFTER `id_tag` COMMENT "Aux value to improve alerts performance";
+
 UPDATE `talert_commands` SET `fields_descriptions` = '[\"Event&#x20;name\",\"Event&#x20;type\",\"Source\",\"Agent&#x20;name&#x20;or&#x20;_agent_\",\"Event&#x20;severity\",\"ID&#x20;extra\",\"Tags&#x20;separated&#x20;by&#x20;commas\",\"Comments\",\"\",\"\"]' WHERE `name` = "Monitoring&#x20;Event";
 
 UPDATE `tskin` SET `name` = 'Default&#x20;theme' , `relative_path` = 'pandora.css' WHERE `id` = 1;
diff --git a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
index c124721019..afea0ea995 100644
--- a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
+++ b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
@@ -627,6 +627,7 @@ ALTER TABLE `tevent_rule` ADD COLUMN `operator_log_agent` text COMMENT 'Operator
 ALTER TABLE `tevent_rule` MODIFY COLUMN `event_type` enum('','unknown','alert_fired','alert_recovered','alert_ceased','alert_manual_validation','recon_host_detected','system','error','new_agent','going_up_warning','going_up_critical','going_down_warning','going_down_normal','going_down_critical','going_up_normal') default '';
 ALTER TABLE `tevent_rule` MODIFY COLUMN `criticity` int(4) unsigned DEFAULT NULL;
 ALTER TABLE `tevent_rule` MODIFY COLUMN `id_grupo` mediumint(4) DEFAULT NULL;
+ALTER TABLE `tevent_rule` ADD COLUMN `tag_name` TEXT COMMENT "Aux value to improve correlated alerts performance" AFTER `id_tag`;
 
 UPDATE `tevent_rule` SET `operator_agent` = "REGEX" WHERE `agent` != '';
 UPDATE `tevent_rule` SET `operator_id_usuario` = "REGEX" WHERE `id_usuario` != '';
diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql
index 2733dd80a1..a43b9cdde1 100644
--- a/pandora_console/pandoradb.sql
+++ b/pandora_console/pandoradb.sql
@@ -2922,6 +2922,7 @@ CREATE TABLE IF NOT EXISTS `tevent_rule` (
 	`criticity` int(4) unsigned default NULL,
 	`user_comment` text NOT NULL,
 	`id_tag` integer(10) unsigned NOT NULL default '0',
+	`tag_name` text COMMENT 'Aux value to improve alerts performance',
 	`name` text default '',
 	`group_recursion` INT(1) unsigned default 0,
 	`log_content` text,

From 2b05cde214c4cd3ebbdf4192aea0358f1a0d6528 Mon Sep 17 00:00:00 2001
From: fbsanchez <fborja.sanchez@artica.es>
Date: Wed, 14 Apr 2021 21:42:19 +0200
Subject: [PATCH 04/13] Revert "Update tevent_rule schema"

This reverts commit a80e50b7301858ff5e98a3a5c5e705a30731a8a8.

 Changes to be committed:
	modified:   pandora_console/extras/mr/46.sql
	modified:   pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
	modified:   pandora_console/pandoradb.sql
---
 pandora_console/extras/mr/46.sql                              | 2 --
 pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql | 1 -
 pandora_console/pandoradb.sql                                 | 1 -
 3 files changed, 4 deletions(-)

diff --git a/pandora_console/extras/mr/46.sql b/pandora_console/extras/mr/46.sql
index ae957a0b47..717b459590 100644
--- a/pandora_console/extras/mr/46.sql
+++ b/pandora_console/extras/mr/46.sql
@@ -4,8 +4,6 @@ ALTER TABLE `tagent_custom_fields` MODIFY COLUMN `combo_values` TEXT NOT NULL DE
 ALTER TABLE `treport_content` MODIFY `external_source` MEDIUMTEXT;
 ALTER TABLE `treport_content_template` MODIFY `external_source` MEDIUMTEXT;
 
-ALTER TABLE `tevent_rule` ADD COLUMN `tag_name` TEXT AFTER `id_tag` COMMENT "Aux value to improve alerts performance";
-
 UPDATE `talert_commands` SET `fields_descriptions` = '[\"Event&#x20;name\",\"Event&#x20;type\",\"Source\",\"Agent&#x20;name&#x20;or&#x20;_agent_\",\"Event&#x20;severity\",\"ID&#x20;extra\",\"Tags&#x20;separated&#x20;by&#x20;commas\",\"Comments\",\"\",\"\"]' WHERE `name` = "Monitoring&#x20;Event";
 
 UPDATE `tskin` SET `name` = 'Default&#x20;theme' , `relative_path` = 'pandora.css' WHERE `id` = 1;
diff --git a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
index afea0ea995..c124721019 100644
--- a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
+++ b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
@@ -627,7 +627,6 @@ ALTER TABLE `tevent_rule` ADD COLUMN `operator_log_agent` text COMMENT 'Operator
 ALTER TABLE `tevent_rule` MODIFY COLUMN `event_type` enum('','unknown','alert_fired','alert_recovered','alert_ceased','alert_manual_validation','recon_host_detected','system','error','new_agent','going_up_warning','going_up_critical','going_down_warning','going_down_normal','going_down_critical','going_up_normal') default '';
 ALTER TABLE `tevent_rule` MODIFY COLUMN `criticity` int(4) unsigned DEFAULT NULL;
 ALTER TABLE `tevent_rule` MODIFY COLUMN `id_grupo` mediumint(4) DEFAULT NULL;
-ALTER TABLE `tevent_rule` ADD COLUMN `tag_name` TEXT COMMENT "Aux value to improve correlated alerts performance" AFTER `id_tag`;
 
 UPDATE `tevent_rule` SET `operator_agent` = "REGEX" WHERE `agent` != '';
 UPDATE `tevent_rule` SET `operator_id_usuario` = "REGEX" WHERE `id_usuario` != '';
diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql
index a43b9cdde1..2733dd80a1 100644
--- a/pandora_console/pandoradb.sql
+++ b/pandora_console/pandoradb.sql
@@ -2922,7 +2922,6 @@ CREATE TABLE IF NOT EXISTS `tevent_rule` (
 	`criticity` int(4) unsigned default NULL,
 	`user_comment` text NOT NULL,
 	`id_tag` integer(10) unsigned NOT NULL default '0',
-	`tag_name` text COMMENT 'Aux value to improve alerts performance',
 	`name` text default '',
 	`group_recursion` INT(1) unsigned default 0,
 	`log_content` text,

From 114f23f474a1060be535b366ccd3a85c6a7e9626 Mon Sep 17 00:00:00 2001
From: fbsanchez <fborja.sanchez@artica.es>
Date: Wed, 14 Apr 2021 22:36:56 +0200
Subject: [PATCH 05/13] Added event_server_cache_ttl

---
 pandora_server/conf/pandora_server.conf.new |  3 +++
 pandora_server/lib/PandoraFMS/Config.pm     |  4 ++++
 pandora_server/lib/PandoraFMS/DB.pm         | 15 +++++++++++++++
 3 files changed, 22 insertions(+)

diff --git a/pandora_server/conf/pandora_server.conf.new b/pandora_server/conf/pandora_server.conf.new
index 538fb1bdef..f3a44a1bfe 100644
--- a/pandora_server/conf/pandora_server.conf.new
+++ b/pandora_server/conf/pandora_server.conf.new
@@ -470,6 +470,9 @@ log_window 3600
 # Pre-load windows on start with available information. (PANDORA FMS ENTERPRISE ONLY).
 #preload_windows 0
 
+# Correlated Alerts, group cache ttl (in seconds). Set to 0 to disable. (PANDORA FMS ENTERPRISE ONLY).
+#event_server_cache_ttl 10
+
 # If set to 1, an alert will not be fired if the last event it generated is in 'in-process' status.
 
 event_inhibit_alerts 0
diff --git a/pandora_server/lib/PandoraFMS/Config.pm b/pandora_server/lib/PandoraFMS/Config.pm
index 7788686d08..ca5dd2705a 100644
--- a/pandora_server/lib/PandoraFMS/Config.pm
+++ b/pandora_server/lib/PandoraFMS/Config.pm
@@ -302,6 +302,7 @@ sub pandora_load_config {
 	$pa_config->{"eventserver"} = 1; # 4.0
 	$pa_config->{"event_window"} = 3600; # 4.0
 	$pa_config->{"log_window"} = 3600; # 7.741
+	$pa_config->{"event_server_cache_ttl"} = 10; # 7.754
 	$pa_config->{"preload_windows"} = 0; # 7.741
 	$pa_config->{"icmpserver"} = 0; # 4.0
 	$pa_config->{"icmp_threads"} = 3; # 4.0
@@ -1001,6 +1002,9 @@ sub pandora_load_config {
 		elsif ($parametro =~ m/^preload_windows\s+([0-9]*)/i) {
 			$pa_config->{'preload_windows'}= clean_blank($1);
 		}
+		elsif ($parametro =~ m/^event_server_cache_ttl\s+([0-9]*)/i) {
+			$pa_config->{"event_server_cache_ttl"} = clean_blank($1);
+		}
 		elsif ($parametro =~ m/^snmp_threads\s+([0-9]*)/i) {
 			$pa_config->{'snmp_threads'}= clean_blank($1);
 		}
diff --git a/pandora_server/lib/PandoraFMS/DB.pm b/pandora_server/lib/PandoraFMS/DB.pm
index 045e84f1e2..1148984d18 100644
--- a/pandora_server/lib/PandoraFMS/DB.pm
+++ b/pandora_server/lib/PandoraFMS/DB.pm
@@ -92,6 +92,7 @@ our @EXPORT = qw(
 		get_priority_name
 		get_server_id
 		get_tag_id
+		get_tag_name
 		get_group_name
 		get_template_id
 		get_template_module_id
@@ -276,6 +277,20 @@ sub get_tag_id ($$) {
 	return defined ($rc) ? $rc : -1;
 }
 
+########################################################################
+## Return the name of a tag given its id.
+########################################################################
+sub get_tag_name ($$) {
+	my ($dbh, $id) = @_;
+
+	my $rc = get_db_value(
+		$dbh, "SELECT name FROM ttag
+					WHERE id_tag = ?",
+		safe_input($id)
+	);
+	return $rc;
+}
+
 ########################################################################
 ## Return the first enabled server name found.
 ########################################################################

From 21d72f41f9d07da464dbd819a7dc1976ca80ab87 Mon Sep 17 00:00:00 2001
From: fbsanchez <fborja.sanchez@artica.es>
Date: Thu, 15 Apr 2021 00:20:42 +0200
Subject: [PATCH 06/13] Revert "Revert "Update tevent_rule schema""

This reverts commit 2b05cde214c4cd3ebbdf4192aea0358f1a0d6528.

 Changes to be committed:
	modified:   pandora_console/extras/mr/46.sql
	modified:   pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
	modified:   pandora_console/pandoradb.sql
---
 pandora_console/extras/mr/46.sql                              | 2 ++
 pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql | 1 +
 pandora_console/pandoradb.sql                                 | 1 +
 3 files changed, 4 insertions(+)

diff --git a/pandora_console/extras/mr/46.sql b/pandora_console/extras/mr/46.sql
index 717b459590..ae957a0b47 100644
--- a/pandora_console/extras/mr/46.sql
+++ b/pandora_console/extras/mr/46.sql
@@ -4,6 +4,8 @@ ALTER TABLE `tagent_custom_fields` MODIFY COLUMN `combo_values` TEXT NOT NULL DE
 ALTER TABLE `treport_content` MODIFY `external_source` MEDIUMTEXT;
 ALTER TABLE `treport_content_template` MODIFY `external_source` MEDIUMTEXT;
 
+ALTER TABLE `tevent_rule` ADD COLUMN `tag_name` TEXT AFTER `id_tag` COMMENT "Aux value to improve alerts performance";
+
 UPDATE `talert_commands` SET `fields_descriptions` = '[\"Event&#x20;name\",\"Event&#x20;type\",\"Source\",\"Agent&#x20;name&#x20;or&#x20;_agent_\",\"Event&#x20;severity\",\"ID&#x20;extra\",\"Tags&#x20;separated&#x20;by&#x20;commas\",\"Comments\",\"\",\"\"]' WHERE `name` = "Monitoring&#x20;Event";
 
 UPDATE `tskin` SET `name` = 'Default&#x20;theme' , `relative_path` = 'pandora.css' WHERE `id` = 1;
diff --git a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
index c124721019..afea0ea995 100644
--- a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
+++ b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
@@ -627,6 +627,7 @@ ALTER TABLE `tevent_rule` ADD COLUMN `operator_log_agent` text COMMENT 'Operator
 ALTER TABLE `tevent_rule` MODIFY COLUMN `event_type` enum('','unknown','alert_fired','alert_recovered','alert_ceased','alert_manual_validation','recon_host_detected','system','error','new_agent','going_up_warning','going_up_critical','going_down_warning','going_down_normal','going_down_critical','going_up_normal') default '';
 ALTER TABLE `tevent_rule` MODIFY COLUMN `criticity` int(4) unsigned DEFAULT NULL;
 ALTER TABLE `tevent_rule` MODIFY COLUMN `id_grupo` mediumint(4) DEFAULT NULL;
+ALTER TABLE `tevent_rule` ADD COLUMN `tag_name` TEXT COMMENT "Aux value to improve correlated alerts performance" AFTER `id_tag`;
 
 UPDATE `tevent_rule` SET `operator_agent` = "REGEX" WHERE `agent` != '';
 UPDATE `tevent_rule` SET `operator_id_usuario` = "REGEX" WHERE `id_usuario` != '';
diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql
index 2733dd80a1..a43b9cdde1 100644
--- a/pandora_console/pandoradb.sql
+++ b/pandora_console/pandoradb.sql
@@ -2922,6 +2922,7 @@ CREATE TABLE IF NOT EXISTS `tevent_rule` (
 	`criticity` int(4) unsigned default NULL,
 	`user_comment` text NOT NULL,
 	`id_tag` integer(10) unsigned NOT NULL default '0',
+	`tag_name` text COMMENT 'Aux value to improve alerts performance',
 	`name` text default '',
 	`group_recursion` INT(1) unsigned default 0,
 	`log_content` text,

From 2e45e0bde404dc939b14d649be45dd96ea277765 Mon Sep 17 00:00:00 2001
From: fbsanchez <fborja.sanchez@artica.es>
Date: Thu, 15 Apr 2021 10:35:21 +0200
Subject: [PATCH 07/13] Fixes in table tevent_rule definition

---
 pandora_console/extras/mr/46.sql              | 16 +++++++++++-
 .../pandoradb_migrate_6.0_to_7.0.mysql.sql    | 17 ++++++++++++-
 pandora_console/pandoradb.sql                 | 25 +++++++++----------
 3 files changed, 43 insertions(+), 15 deletions(-)

diff --git a/pandora_console/extras/mr/46.sql b/pandora_console/extras/mr/46.sql
index ae957a0b47..2d0c2a8a84 100644
--- a/pandora_console/extras/mr/46.sql
+++ b/pandora_console/extras/mr/46.sql
@@ -4,7 +4,21 @@ ALTER TABLE `tagent_custom_fields` MODIFY COLUMN `combo_values` TEXT NOT NULL DE
 ALTER TABLE `treport_content` MODIFY `external_source` MEDIUMTEXT;
 ALTER TABLE `treport_content_template` MODIFY `external_source` MEDIUMTEXT;
 
-ALTER TABLE `tevent_rule` ADD COLUMN `tag_name` TEXT AFTER `id_tag` COMMENT "Aux value to improve alerts performance";
+ALTER TABLE `tevent_rule` MODIFY COLUMN `agent` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `id_usuario` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `id_grupo` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `evento` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `event_type` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `module` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `alert` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `criticity` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `user_comment` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `id_tag` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `name` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `group_recursion` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `log_content` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `log_source` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `log_agent` TEXT;
 
 UPDATE `talert_commands` SET `fields_descriptions` = '[\"Event&#x20;name\",\"Event&#x20;type\",\"Source\",\"Agent&#x20;name&#x20;or&#x20;_agent_\",\"Event&#x20;severity\",\"ID&#x20;extra\",\"Tags&#x20;separated&#x20;by&#x20;commas\",\"Comments\",\"\",\"\"]' WHERE `name` = "Monitoring&#x20;Event";
 
diff --git a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
index afea0ea995..b0d6a00048 100644
--- a/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
+++ b/pandora_console/extras/pandoradb_migrate_6.0_to_7.0.mysql.sql
@@ -627,7 +627,22 @@ ALTER TABLE `tevent_rule` ADD COLUMN `operator_log_agent` text COMMENT 'Operator
 ALTER TABLE `tevent_rule` MODIFY COLUMN `event_type` enum('','unknown','alert_fired','alert_recovered','alert_ceased','alert_manual_validation','recon_host_detected','system','error','new_agent','going_up_warning','going_up_critical','going_down_warning','going_down_normal','going_down_critical','going_up_normal') default '';
 ALTER TABLE `tevent_rule` MODIFY COLUMN `criticity` int(4) unsigned DEFAULT NULL;
 ALTER TABLE `tevent_rule` MODIFY COLUMN `id_grupo` mediumint(4) DEFAULT NULL;
-ALTER TABLE `tevent_rule` ADD COLUMN `tag_name` TEXT COMMENT "Aux value to improve correlated alerts performance" AFTER `id_tag`;
+
+ALTER TABLE `tevent_rule` MODIFY COLUMN `agent` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `id_usuario` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `id_grupo` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `evento` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `event_type` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `module` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `alert` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `criticity` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `user_comment` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `id_tag` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `name` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `group_recursion` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `log_content` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `log_source` TEXT;
+ALTER TABLE `tevent_rule` MODIFY COLUMN `log_agent` TEXT;
 
 UPDATE `tevent_rule` SET `operator_agent` = "REGEX" WHERE `agent` != '';
 UPDATE `tevent_rule` SET `operator_id_usuario` = "REGEX" WHERE `id_usuario` != '';
diff --git a/pandora_console/pandoradb.sql b/pandora_console/pandoradb.sql
index a43b9cdde1..df81d3094b 100644
--- a/pandora_console/pandoradb.sql
+++ b/pandora_console/pandoradb.sql
@@ -2912,19 +2912,18 @@ CREATE TABLE IF NOT EXISTS `tevent_rule` (
 	`order` int(10) unsigned default '0',
 	`window` int(10) NOT NULL default '0',
 	`count` int(4) NOT NULL default '1',
-	`agent` text default '',
-	`id_usuario` varchar(100) NOT NULL default '',
-	`id_grupo` mediumint(4) default NULL,
-	`evento` text NOT NULL default '',
-	`event_type` enum('','unknown','alert_fired','alert_recovered','alert_ceased','alert_manual_validation','recon_host_detected','system','error','new_agent','going_up_warning','going_up_critical','going_down_warning','going_down_normal','going_down_critical','going_up_normal') default '',
-	`module` text default '',
-	`alert` text default '',
-	`criticity` int(4) unsigned default NULL,
-	`user_comment` text NOT NULL,
-	`id_tag` integer(10) unsigned NOT NULL default '0',
-	`tag_name` text COMMENT 'Aux value to improve alerts performance',
-	`name` text default '',
-	`group_recursion` INT(1) unsigned default 0,
+	`agent` text,
+	`id_usuario` text,
+	`id_grupo` text,
+	`evento` text,
+	`event_type` text,
+	`module` text,
+	`alert` text,
+	`criticity` text,
+	`user_comment` text,
+	`id_tag` text,
+	`name` text,
+	`group_recursion` text,
 	`log_content` text,
 	`log_source` text,
 	`log_agent` text,

From ada6bccfd6568800c1a6e386463412adf4533406 Mon Sep 17 00:00:00 2001
From: "alejandro.campos@artica.es" <alejandro.campos@artica.es>
Date: Thu, 15 Apr 2021 12:12:06 +0200
Subject: [PATCH 08/13] changed request protocol

---
 pandora_console/godmode/setup/setup_integria.php | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pandora_console/godmode/setup/setup_integria.php b/pandora_console/godmode/setup/setup_integria.php
index 7cec5eccd1..9e63fb3639 100644
--- a/pandora_console/godmode/setup/setup_integria.php
+++ b/pandora_console/godmode/setup/setup_integria.php
@@ -834,7 +834,7 @@ echo '</form>';
 
         // AJAX call to check API connection.
         $.ajax({
-            type: "GET",
+            type: "POST",
             url: url,
             dataType: "json",
             data: data

From 3ff361977c4fa846d6b473dc0b044584f6553bda Mon Sep 17 00:00:00 2001
From: "alejandro.campos@artica.es" <alejandro.campos@artica.es>
Date: Fri, 16 Apr 2021 10:02:34 +0200
Subject: [PATCH 09/13] check page load protocol on integria setup

---
 pandora_console/include/functions_config.php | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php
index d2bed417b4..b4c946f666 100644
--- a/pandora_console/include/functions_config.php
+++ b/pandora_console/include/functions_config.php
@@ -1645,7 +1645,11 @@ function config_update_config()
                     $integria_hostname = (string) get_parameter('integria_hostname', $config['integria_hostname']);
 
                     if (parse_url($integria_hostname, PHP_URL_SCHEME) === null) {
-                        $integria_hostname = 'http://'.$integria_hostname;
+                        if (empty($_SERVER['HTTPS']) === false) {
+                            $integria_hostname = 'https://'.$integria_hostname;
+                        } else {
+                            $integria_hostname = 'http://'.$integria_hostname;
+                        }
                     }
 
                     if (!config_update_value('integria_hostname', $integria_hostname)) {

From 6ebb6f6843edc89368568722bde92c4673ba6e5f Mon Sep 17 00:00:00 2001
From: marcos <marcos.alconada@artica.es>
Date: Mon, 19 Apr 2021 12:59:52 +0200
Subject: [PATCH 10/13] fixeed visual error vc legacy mode

---
 pandora_console/include/functions_html.php    |  7 +-
 .../include/functions_visual_map_editor.php   | 80 +++++++++++++++++--
 pandora_console/include/styles/pandora.css    |  2 +-
 3 files changed, 79 insertions(+), 10 deletions(-)

diff --git a/pandora_console/include/functions_html.php b/pandora_console/include/functions_html.php
index c5a16434f8..1e9c406919 100644
--- a/pandora_console/include/functions_html.php
+++ b/pandora_console/include/functions_html.php
@@ -718,7 +718,8 @@ function html_print_select(
     $select_all=false,
     $simple_multiple_options=false,
     $required=false,
-    $truncate_size=false
+    $truncate_size=false,
+    $select2_enable=true
 ) {
     $output = "\n";
 
@@ -890,7 +891,7 @@ function html_print_select(
         $select2 = 'select2_dark.min';
     }
 
-    if ($multiple === false) {
+    if ($multiple === false && $select2_enable === true) {
         if (is_ajax()) {
             $output .= '<script src="';
             $output .= ui_get_full_url(
@@ -5400,4 +5401,4 @@ function html_print_select_search(
     } else {
         echo $output;
     }
-}
\ No newline at end of file
+}
diff --git a/pandora_console/include/functions_visual_map_editor.php b/pandora_console/include/functions_visual_map_editor.php
index 1cd69f59b9..b32714b819 100755
--- a/pandora_console/include/functions_visual_map_editor.php
+++ b/pandora_console/include/functions_visual_map_editor.php
@@ -336,7 +336,7 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background)
                 'icon',
                 'group_item',
             ];
-            $form_items['preview_row']['html'] = '<td align="left" colspan="2" class="right">'.'<div id="preview" class="right"></div></td>';
+            $form_items['preview_row']['html'] = '<td align="left" colspan="2">'.'<div id="preview" class="right"></div></td>';
 
             $form_items['background_color'] = [];
             $form_items['background_color']['items'] = [
@@ -358,6 +358,18 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background)
                 'white',
                 true,
                 false,
+                false,
+                '',
+                false,
+                '',
+                false,
+                false,
+                false,
+                '',
+                false,
+                false,
+                false,
+                false,
                 false
             ).'</td>';
 
@@ -510,7 +522,29 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background)
             $form_items['event_max_time_row'] = [];
             $form_items['event_max_time_row']['items'] = ['auto_sla_graph'];
             $form_items['event_max_time_row']['html'] = '<td align="left">'.__('Max. Time').'</td>
-				<td align="left">'.html_print_select($event_times, 'event_max_time_row', '', '', 0, 86400, true, false, false).'</td>';
+				<td align="left">'.html_print_select(
+                $event_times,
+                'event_max_time_row',
+                '',
+                '',
+                0,
+                86400,
+                true,
+                false,
+                false,
+                '',
+                false,
+                '',
+                false,
+                false,
+                false,
+                '',
+                false,
+                false,
+                false,
+                false,
+                false
+            ).'</td>';
 
             $form_items['type_graph'] = [];
             $form_items['type_graph']['items'] = [
@@ -530,6 +564,18 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background)
                 'area',
                 true,
                 false,
+                false,
+                '',
+                false,
+                '',
+                false,
+                false,
+                false,
+                '',
+                false,
+                false,
+                false,
+                false,
                 false
             ).'</td>';
 
@@ -800,7 +846,29 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background)
             $form_items['bars_graph_type'] = [];
             $form_items['bars_graph_type']['items'] = ['bars_graph'];
             $form_items['bars_graph_type']['html'] = '<td align="left">'.__('Type').'</td>
-				<td align="left">'.html_print_select($bars_graph_types, 'bars_graph_type', 'vertical', '', '', '', true).'</td>';
+				<td align="left">'.html_print_select(
+                $bars_graph_types,
+                'bars_graph_type',
+                'vertical',
+                '',
+                '',
+                '',
+                true,
+                false,
+                true,
+                '',
+                false,
+                '',
+                false,
+                false,
+                false,
+                '',
+                false,
+                false,
+                false,
+                false,
+                false
+            ).'</td>';
 
             // Insert and modify before the buttons to create or update.
             if (enterprise_installed()) {
@@ -809,11 +877,11 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background)
 
             $form_items['button_update_row'] = [];
             $form_items['button_update_row']['items'] = ['datos'];
-            $form_items['button_update_row']['html'] = '<td align="left" colspan="2" class="right">'.html_print_button(__('Cancel'), 'cancel_button', false, 'cancel_button_palette_callback();', 'class="sub cancel"', true).'<span ="margin-right:10px;">&nbsp</span>'.html_print_button(__('Update'), 'update_button', false, 'update_button_palette_callback();', 'class="sub upd"', true).'</td>';
+            $form_items['button_update_row']['html'] = '<td align="left" colspan="2" style="text-align: right;">'.html_print_button(__('Cancel'), 'cancel_button', false, 'cancel_button_palette_callback();', 'class="sub cancel"', true).'<span ="margin-right:10px;">&nbsp</span>'.html_print_button(__('Update'), 'update_button', false, 'update_button_palette_callback();', 'class="sub upd"', true).'</td>';
 
             $form_items['button_create_row'] = [];
             $form_items['button_create_row']['items'] = ['datos'];
-            $form_items['button_create_row']['html'] = '<td align="left" colspan="2" class="right">'.html_print_button(__('Cancel'), 'cancel_button', false, 'cancel_button_palette_callback();', 'class="sub cancel"', true).'<span ="margin-right:10px;">&nbsp</span>'.html_print_button(__('Create'), 'create_button', false, 'create_button_palette_callback();', 'class="sub wand"', true).'</td>';
+            $form_items['button_create_row']['html'] = '<td align="left" colspan="2"  style="text-align: right;">'.html_print_button(__('Cancel'), 'cancel_button', false, 'cancel_button_palette_callback();', 'class="sub cancel"', true).'<span ="margin-right:10px;">&nbsp</span>'.html_print_button(__('Create'), 'create_button', false, 'create_button_palette_callback();', 'class="sub wand"', true).'</td>';
 
             foreach ($form_items as $item => $item_options) {
                 echo '<tr id="'.$item.'"   class="'.implode(' ', (array) $item_options['items']).'">';
@@ -829,7 +897,7 @@ function visual_map_editor_print_item_palette($visualConsole_id, $background)
                 </td>
             </tr>
         </tbody>
-        <tbody id="advance_options" class="invisible">
+        <tbody id="advance_options" style="display: none">
             <?php
             $form_items_advance = [];
 
diff --git a/pandora_console/include/styles/pandora.css b/pandora_console/include/styles/pandora.css
index 2b5377fd12..740e5c6053 100644
--- a/pandora_console/include/styles/pandora.css
+++ b/pandora_console/include/styles/pandora.css
@@ -8348,7 +8348,7 @@ span,
   float: right;
   margin-right: 100px;
 }
-.steps_vsmap {
+div.steps_vsmap {
   display: none;
   position: absolute;
   z-index: 99;

From 4655668ca49fc854c4e47caa31169fd08d10182c Mon Sep 17 00:00:00 2001
From: marcos <marcos.alconada@artica.es>
Date: Mon, 19 Apr 2021 14:16:30 +0200
Subject: [PATCH 11/13] fixeed visual error vc legacy mode

---
 .../godmode/reporting/visual_console_builder.editor.php         | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pandora_console/godmode/reporting/visual_console_builder.editor.php b/pandora_console/godmode/reporting/visual_console_builder.editor.php
index 310efdfabc..48ef5cc2f9 100755
--- a/pandora_console/godmode/reporting/visual_console_builder.editor.php
+++ b/pandora_console/godmode/reporting/visual_console_builder.editor.php
@@ -85,7 +85,7 @@ visual_map_editor_print_item_palette($visualConsole['id'], $background);
 if (!defined('METACONSOLE')) {
     echo '<div id="frame_view" class="frame_view_meta">';
 } else {
-    echo '<div id="frame_view" class="frame_view_node">';
+    echo '<div id="frame_view" class="frame_view_node mrgn_top_meta_35px">';
 }
 
 echo '<div id="background" class="" style="top:0px;

From 0a6fd37913c35040f7a1575b450a4d1fb93cb555 Mon Sep 17 00:00:00 2001
From: fbsanchez <fborja.sanchez@artica.es>
Date: Mon, 19 Apr 2021 14:51:22 +0200
Subject: [PATCH 12/13] minor style change

---
 pandora_console/include/styles/alert.css | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pandora_console/include/styles/alert.css b/pandora_console/include/styles/alert.css
index 9679e9483c..eb8f2d7583 100644
--- a/pandora_console/include/styles/alert.css
+++ b/pandora_console/include/styles/alert.css
@@ -129,6 +129,7 @@ div.target {
   margin-left: 3em;
   display: flex;
   flex-direction: column;
+  width: 100%;
 }
 div.target.flex {
   display: block;

From 7275bdd0612657c6618865053c1986507293b40b Mon Sep 17 00:00:00 2001
From: fbsanchez <fborja.sanchez@artica.es>
Date: Mon, 19 Apr 2021 18:11:34 +0200
Subject: [PATCH 13/13] Allow transfer_xml direct file paths in pluginTools

---
 pandora_server/lib/PandoraFMS/PluginTools.pm | 95 ++++++++++----------
 1 file changed, 50 insertions(+), 45 deletions(-)

diff --git a/pandora_server/lib/PandoraFMS/PluginTools.pm b/pandora_server/lib/PandoraFMS/PluginTools.pm
index 9c9d64ab90..a193c87f73 100644
--- a/pandora_server/lib/PandoraFMS/PluginTools.pm
+++ b/pandora_server/lib/PandoraFMS/PluginTools.pm
@@ -792,59 +792,64 @@ sub transfer_xml {
 	my $file_name;
 	my $file_path;
 
-	if (! (empty ($name))) {
-		$file_name = $name . "." . sprintf("%d",getCurrentUTimeMilis(). (rand()*10000)) . ".data";
-	}
-	else {
-		# Inherit file name
-		($file_name) = $xml =~ /\s+agent_name='(.*?)'\s+.*$/m;
-		if (empty($file_name)){
-			($file_name) = $xml =~ /\s+agent_name="(.*?)"\s+.*$/m;
+	if (! -f $xml) {
+		if (! (empty ($name))) {
+			$file_name = $name . "." . sprintf("%d",getCurrentUTimeMilis(). (rand()*10000)) . ".data";
 		}
-		if (empty($file_name)){
-			$file_name = trim(`hostname`);
+		else {
+			# Inherit file name
+			($file_name) = $xml =~ /\s+agent_name='(.*?)'\s+.*$/m;
+			if (empty($file_name)){
+				($file_name) = $xml =~ /\s+agent_name="(.*?)"\s+.*$/m;
+			}
+			if (empty($file_name)){
+				$file_name = trim(`hostname`);
+			}
+
+			$file_name .=  "." . sprintf("%d",time()) . ".data";
 		}
 
-		$file_name .=  "." . sprintf("%d",time()) . ".data";
-	}
+		logger($conf, "transfer_xml", "Failed to generate file name.") if empty($file_name);
 
-	logger($conf, "transfer_xml", "Failed to generate file name.") if empty($file_name);
+		$conf->{temp} = $conf->{tmp}             if (empty($conf->{temp}) && defined($conf->{tmp}));
+		$conf->{temp} = $conf->{temporal}        if (empty($conf->{temp}) && defined($conf->{temporal}));
+		$conf->{temp} = $conf->{__system}->{tmp} if (empty($conf->{temp}) && defined($conf->{__system})) && (ref($conf->{__system}) eq "HASH");
+		$conf->{temp} = $ENV{'TMP'}              if empty($conf->{temp}) && $^O =~ /win/i;
+		$conf->{temp} = '/tmp'                   if empty($conf->{temp}) && $^O =~ /lin/i;
 
-	$conf->{temp} = $conf->{tmp}             if (empty($conf->{temp}) && defined($conf->{tmp}));
-	$conf->{temp} = $conf->{temporal}        if (empty($conf->{temp}) && defined($conf->{temporal}));
-	$conf->{temp} = $conf->{__system}->{tmp} if (empty($conf->{temp}) && defined($conf->{__system})) && (ref($conf->{__system}) eq "HASH");
-	$conf->{temp} = $ENV{'TMP'}              if empty($conf->{temp}) && $^O =~ /win/i;
-	$conf->{temp} = '/tmp'                   if empty($conf->{temp}) && $^O =~ /lin/i;
-
-	$file_path = $conf->{temp} . "/" . $file_name;
-	
-	#Creating XML file in temp directory
-	
-	if ( -e $file_path ) {
-		sleep (1);
-		$file_name = $name . "." . sprintf("%d",time()) . ".data";
 		$file_path = $conf->{temp} . "/" . $file_name;
+		
+		#Creating XML file in temp directory
+		
+		if ( -e $file_path ) {
+			sleep (1);
+			$file_name = $name . "." . sprintf("%d",time()) . ".data";
+			$file_path = $conf->{temp} . "/" . $file_name;
+		}
+
+		my $r = open (my $FD, ">>", $file_path);
+
+		if (empty($r)) {
+			print_stderror($conf, "Cannot write to [" . $file_path . "]", $conf->{'debug'});
+			return undef;
+		}
+		
+		my $bin_opts = ':raw:encoding(UTF8)';
+		
+		if ($^O eq "Windows") {
+			$bin_opts .= ':crlf';
+		}
+		
+		binmode($FD, $bin_opts);
+
+		print $FD $xml;
+
+		close ($FD);
+
+	} else {
+		$file_path = $xml;
 	}
 
-	my $r = open (my $FD, ">>", $file_path);
-
-	if (empty($r)) {
-		print_stderror($conf, "Cannot write to [" . $file_path . "]", $conf->{'debug'});
-		return undef;
-	}
-	
-	my $bin_opts = ':raw:encoding(UTF8)';
-	
-	if ($^O eq "Windows") {
-		$bin_opts .= ':crlf';
-	}
-	
-	binmode($FD, $bin_opts);
-
-	print $FD $xml;
-
-	close ($FD);
-
 	# Reassign default values if not present
 	$conf->{tentacle_client} = "tentacle_client" if empty($conf->{tentacle_client});
 	$conf->{tentacle_port}   = "41121"     if empty($conf->{tentacle_port});