From 449c02763ac0ed8e98c2b80148cb6b7874a9ea0f Mon Sep 17 00:00:00 2001
From: daniel <daniel.barbero@artica.es>
Date: Fri, 16 Nov 2018 13:22:10 +0100
Subject: [PATCH 1/2] fixed minor error cfv

---
 pandora_console/godmode/users/configure_user.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pandora_console/godmode/users/configure_user.php b/pandora_console/godmode/users/configure_user.php
index 77e7022e85..1ca83c3682 100644
--- a/pandora_console/godmode/users/configure_user.php
+++ b/pandora_console/godmode/users/configure_user.php
@@ -24,6 +24,7 @@ include_once($config['homedir'] . "/include/functions_profile.php");
 include_once($config['homedir'] . '/include/functions_users.php');
 include_once ($config['homedir'] . '/include/functions_groups.php');
 include_once ($config['homedir'] . '/include/functions_visual_map.php');
+include_once($config['homedir'] . '/include/functions_custom_fields.php');
 enterprise_include_once('include/functions_profile.php');
 
 $meta = false;

From 2eb47c1251839cb2b7eaec952d38f3399d7b8ede Mon Sep 17 00:00:00 2001
From: daniel <daniel.barbero@artica.es>
Date: Fri, 16 Nov 2018 15:00:09 +0100
Subject: [PATCH 2/2] fixed errors in custom fields view

---
 .../include/ajax/custom_fields.php            | 107 +++++++-----------
 pandora_console/include/functions_agents.php  |  63 +++++++++++
 pandora_console/include/functions_ui.php      |   2 +-
 .../include/javascript/jquery.cluetip.js      |   2 +-
 4 files changed, 106 insertions(+), 68 deletions(-)

diff --git a/pandora_console/include/ajax/custom_fields.php b/pandora_console/include/ajax/custom_fields.php
index 11fb495776..dfe7cf8c57 100644
--- a/pandora_console/include/ajax/custom_fields.php
+++ b/pandora_console/include/ajax/custom_fields.php
@@ -57,13 +57,13 @@ if($build_table_custom_fields){
 		case '1':
 			$order_by = "ORDER BY temp.name_custom_fields " . $type_order;
 			break;
-		case '2':
+		case '4':
 			$order_by = "ORDER BY tma.server_name " . $type_order;
 			break;
-		case '3':
+		case '2':
 			$order_by = "ORDER BY tma.alias " . $type_order;
 			break;
-		case '4':
+		case '3':
 			$order_by = "ORDER BY tma.direccion " . $type_order;
 			break;
 	}
@@ -158,65 +158,7 @@ if($build_table_custom_fields){
 	//prepare rows for table dinamic
 	$data = array();
 	foreach ($result as $values) {
-		switch ($values['status']) {
-			case AGENT_STATUS_NORMAL:
-				$image_status = html_print_image(
-					'images/status_sets/default/agent_ok.png',
-					true,
-					array(
-						'title' => __('Agents ok')
-					)
-				);
-				break;
-			case AGENT_STATUS_CRITICAL:
-				$image_status = html_print_image(
-					'images/status_sets/default/agent_critical.png',
-					true,
-					array(
-						'title' => __('Agents critical')
-					)
-				);
-			break;
-			case AGENT_STATUS_WARNING:
-				$image_status = html_print_image(
-					'images/status_sets/default/agent_warning.png',
-					true,
-					array(
-						'title' => __('Agents warning')
-					)
-				);
-			break;
-			case AGENT_STATUS_UNKNOWN:
-				$image_status = html_print_image(
-					'images/status_sets/default/agent_down.png',
-					true,
-					array(
-						'title' => __('Agents unknown')
-					)
-				);
-			break;
-			case AGENT_STATUS_ALERT_FIRED:
-				$image_status = 'alert';
-			break;
-			case AGENT_STATUS_NOT_INIT:
-				$image_status = html_print_image(
-					'images/status_sets/default/agent_no_data.png',
-					true,
-					array(
-						'title' => __('Agents not init')
-					)
-				);
-			break;
-			default:
-				$image_status= html_print_image(
-					'images/status_sets/default/agent_ok.png',
-					true,
-					array(
-						'title' => __('Agents ok')
-					)
-				);
-				break;
-		}
+		$image_status = agents_get_image_status($values['status']);
 
 		$data[] = array(
 			"ref" => $referencia,
@@ -224,7 +166,7 @@ if($build_table_custom_fields){
 			"server" => $values['server_name'],
 			"agent" => $values['alias'],
 			"IP" => $values['direccion'],
-			"status" => $image_status,
+			"status" => "<div id='reload_status_agent_" . $values['id_tmetaconsole_setup'] . "_" . $values['id_tagente'] ."'>" . $image_status . "</div>",
 			"id_agent" => $values['id_tagente'],
 			"id_server" => $values['id_tmetaconsole_setup']
 		);
@@ -262,6 +204,7 @@ if($build_table_child_custom_fields){
 			tam.min_warning, tam.max_warning,
 			tam.min_critical, tam.max_critical,
 			tam.str_warning, tam.str_critical,
+			tam.id_tipo_modulo,
 			tae.estado, tae.current_interval,
 			tae.utimestamp, tae.datos
 		FROM tagente_modulo tam
@@ -288,10 +231,21 @@ if($build_table_child_custom_fields){
 	$table_modules->head[5] = __('Status');
 
 	$table_modules->data = array();
+	$status_agent = -1;
 	if(isset($modules) && is_array($modules)){
 		foreach ($modules as $key => $value) {
 			$table_modules->data[$key][0] = $value['nombre'];
-			$table_modules->data[$key][1] = $value['datos'];
+			if($value["id_tipo_modulo"] != 3 &&
+				$value["id_tipo_modulo"] != 10 &&
+				$value["id_tipo_modulo"] != 17 &&
+				$value["id_tipo_modulo"] != 23 &&
+				$value["id_tipo_modulo"] != 33 ){
+				$table_modules->data[$key][1] = remove_right_zeros(number_format($value["datos"], $config['graph_precision']));
+			}
+			else{
+				$table_modules->data[$key][1] = $value["datos"];
+			}
+
 			$table_modules->data[$key][2] = ui_print_module_warn_value (
 				$value["max_warning"],
 				$value["min_warning"],
@@ -300,11 +254,15 @@ if($build_table_child_custom_fields){
 				$value["min_critical"],
 				$value["str_critical"]
 			);
+
 			$table_modules->data[$key][3] = $value['current_interval'];
 			$table_modules->data[$key][4] = ui_print_timestamp($value['utimestamp'], true);
 			switch ($value['estado']) {
 				case 0:
 				case 300:
+					if($status_agent != 1 && $status_agent != 2 && $status_agent != 3){
+						$status_agent = 0;
+					}
 					$table_modules->data[$key][5] = html_print_image(
 						'images/status_sets/default/severity_normal.png',
 						true,
@@ -315,6 +273,7 @@ if($build_table_child_custom_fields){
 					break;
 				case 1:
 				case 100:
+					$status_agent = 1;
 					$table_modules->data[$key][5] = html_print_image(
 						'images/status_sets/default/severity_critical.png',
 						true,
@@ -325,6 +284,10 @@ if($build_table_child_custom_fields){
 				break;
 				case 2:
 				case 200:
+					if($status_agent != 1){
+						$status_agent = 2;
+					}
+
 					$table_modules->data[$key][5] = html_print_image(
 						'images/status_sets/default/severity_warning.png',
 						true,
@@ -334,6 +297,10 @@ if($build_table_child_custom_fields){
 					);
 				break;
 				case 3:
+					if($status_agent != 1 && $status_agent != 2){
+						$status_agent = 3;
+					}
+
 					$table_modules->data[$key][5] = html_print_image(
 						'images/status_sets/default/severity_maintenance.png',
 						true,
@@ -344,6 +311,9 @@ if($build_table_child_custom_fields){
 				break;
 				case 4:
 				case 5:
+					if($status_agent == -1 || $status_agent == 4){
+						$status_agent = 5;
+					}
 					$table_modules->data[$key][5] = html_print_image(
 						'images/status_sets/default/severity_informational.png',
 						true,
@@ -353,6 +323,10 @@ if($build_table_child_custom_fields){
 					);
 				break;
 				default:
+					if($status_agent != 1 && $status_agent != 2 && $status_agent != 3){
+						$status_agent = 0;
+					}
+
 					$table_modules->data[$key][5] = html_print_image(
 						'images/status_sets/default/severity_normal.png',
 						true,
@@ -369,8 +343,9 @@ if($build_table_child_custom_fields){
 			metaconsole_restore_db();
 	}
 
-	html_print_table ($table_modules);
-
+	$data['modules_table'] = html_print_table($table_modules, true);
+	$data['img_status_agent'] = agents_get_image_status($status_agent);
+	echo json_encode($data);
 	return;
 }
 
diff --git a/pandora_console/include/functions_agents.php b/pandora_console/include/functions_agents.php
index c43ce16d79..6384d94cbe 100644
--- a/pandora_console/include/functions_agents.php
+++ b/pandora_console/include/functions_agents.php
@@ -2787,4 +2787,67 @@ function agents_get_status_clause($state, $show_not_init = true) {
 	// If the state is not an expected state, return no condition
 	return "1=1";
 }
+
+function agents_get_image_status($status){
+	switch ($status) {
+		case AGENT_STATUS_NORMAL:
+			$image_status = html_print_image(
+				'images/status_sets/default/agent_ok.png',
+				true,
+				array(
+					'title' => __('Agents ok')
+				)
+			);
+			break;
+		case AGENT_STATUS_CRITICAL:
+			$image_status = html_print_image(
+				'images/status_sets/default/agent_critical.png',
+				true,
+				array(
+					'title' => __('Agents critical')
+				)
+			);
+		break;
+		case AGENT_STATUS_WARNING:
+			$image_status = html_print_image(
+				'images/status_sets/default/agent_warning.png',
+				true,
+				array(
+					'title' => __('Agents warning')
+				)
+			);
+		break;
+		case AGENT_STATUS_UNKNOWN:
+			$image_status = html_print_image(
+				'images/status_sets/default/agent_down.png',
+				true,
+				array(
+					'title' => __('Agents unknown')
+				)
+			);
+		break;
+		case AGENT_STATUS_ALERT_FIRED:
+			$image_status = 'alert';
+		break;
+		case AGENT_STATUS_NOT_INIT:
+			$image_status = html_print_image(
+				'images/status_sets/default/agent_no_data.png',
+				true,
+				array(
+					'title' => __('Agents not init')
+				)
+			);
+		break;
+		default:
+			$image_status= html_print_image(
+				'images/status_sets/default/agent_ok.png',
+				true,
+				array(
+					'title' => __('Agents ok')
+				)
+			);
+			break;
+	}
+	return $image_status;
+}
 ?>
\ No newline at end of file
diff --git a/pandora_console/include/functions_ui.php b/pandora_console/include/functions_ui.php
index 09201e74bd..7d02e1ac11 100755
--- a/pandora_console/include/functions_ui.php
+++ b/pandora_console/include/functions_ui.php
@@ -2089,7 +2089,7 @@ function ui_print_moduletype_icon ($id_moduletype, $return = false, $relative =
  * @return string HTML string
  */
 function ui_print_module_warn_value ($max_warning, $min_warning, $str_warning, $max_critical, $min_critical, $str_critical) {
-	$data = "<span style='font-size: 8px' title='" . __("Warning") . ": " . __("Max") . $max_warning . "/" . __("Min") . $min_warning . " - " . __("Critical") . ": " . __("Max") . $max_critical . "/" . __("Min") . $min_critical . "'>";
+	$data = "<span title='" . __("Warning") . ": " . __("Max") . $max_warning . "/" . __("Min") . $min_warning . " - " . __("Critical") . ": " . __("Max") . $max_critical . "/" . __("Min") . $min_critical . "'>";
 	
 	if ($max_warning != $min_warning) {
 		$data .= format_for_graph($max_warning) ."/". format_for_graph ($min_warning);
diff --git a/pandora_console/include/javascript/jquery.cluetip.js b/pandora_console/include/javascript/jquery.cluetip.js
index 711ec0c014..1f8ecc8091 100644
--- a/pandora_console/include/javascript/jquery.cluetip.js
+++ b/pandora_console/include/javascript/jquery.cluetip.js
@@ -202,7 +202,7 @@
           ajaxSettings.complete = function() {
             imgCount = $('#cluetip-inner img').length;
             if (imgCount) {
-              $('#cluetip-inner img').load(function() {
+              $('#cluetip-inner img').on('load', function() {
                 imgCount--;
                 if (imgCount<1) {
                   $('#cluetip-waitimage').hide();