From 404f44be98091f641fb57979d61eb67a3d23bf28 Mon Sep 17 00:00:00 2001
From: mdtrooper <tres.14159@gmail.com>
Date: Tue, 5 Mar 2013 16:03:01 +0000
Subject: [PATCH] 2013-03-05 Miguel de Dios <miguel.dedios@artica.es>

	* extensions/snmp_explorer.php: improved the code style.

	* include/functions_html.php, include/ajax/module.php: rewrote the
	code for to use the last autocomplete jquery UI.




git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7786 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
---
 pandora_console/ChangeLog                    |  7 ++
 pandora_console/extensions/snmp_explorer.php |  1 -
 pandora_console/include/ajax/module.php      | 12 +--
 pandora_console/include/functions_html.php   | 92 ++++++++++----------
 4 files changed, 59 insertions(+), 53 deletions(-)

diff --git a/pandora_console/ChangeLog b/pandora_console/ChangeLog
index 09856f461b..4e28d7df32 100644
--- a/pandora_console/ChangeLog
+++ b/pandora_console/ChangeLog
@@ -1,3 +1,10 @@
+2013-03-05 Miguel de Dios <miguel.dedios@artica.es>
+	
+	* extensions/snmp_explorer.php: improved the code style.
+	
+	* include/functions_html.php, include/ajax/module.php: rewrote the
+	code for to use the last autocomplete jquery UI.
+
 2013-03-05  Mario Pulido <mario.pulido@artica.es>
         
         *include/help/en/help_view_services.php,
diff --git a/pandora_console/extensions/snmp_explorer.php b/pandora_console/extensions/snmp_explorer.php
index 8af6de7719..a56472dea9 100755
--- a/pandora_console/extensions/snmp_explorer.php
+++ b/pandora_console/extensions/snmp_explorer.php
@@ -393,7 +393,6 @@ function snmp_explorer() {
 	ui_require_jquery_file ('pandora.controls');
 	ui_require_jquery_file ('ajaxqueue');
 	ui_require_jquery_file ('bgiframe');
-	//ui_require_jquery_file ('autocomplete');
 ?>
 <script language="javascript" type="text/javascript">
 /* <![CDATA[ */
diff --git a/pandora_console/include/ajax/module.php b/pandora_console/include/ajax/module.php
index 0de55e5a8e..fbe72d5eba 100644
--- a/pandora_console/include/ajax/module.php
+++ b/pandora_console/include/ajax/module.php
@@ -23,18 +23,20 @@ if ($search_modules) {
 	$filter = get_parameter('q', '') . '%';
 	$other_filter = json_decode(io_safe_output(get_parameter('other_filter')), true);
 	
-	$modules = agents_get_modules($id_agents, false, (array('nombre' => $filter) + $other_filter));
+	$modules = agents_get_modules($id_agents, false,
+		(array('nombre' => $filter) + $other_filter));
 	
 	if ($modules === false) $modules = array();
+	
 	$modules = array_unique($modules);
 	
-	foreach ($modules as $module) {
-		echo io_safe_output($module) . "\n";
-	}
+	$modules = io_safe_output($modules);
+	
+	echo json_encode($modules);
 }
 
 $get_plugin_macros = get_parameter('get_plugin_macros');
-if($get_plugin_macros) {
+if ($get_plugin_macros) {
 	$plugin_macros = db_get_value('macros','tplugin','id',get_parameter('id_plugin',0));
 	
 	$macros = array();
diff --git a/pandora_console/include/functions_html.php b/pandora_console/include/functions_html.php
index f239c98665..ae6e1e01d4 100644
--- a/pandora_console/include/functions_html.php
+++ b/pandora_console/include/functions_html.php
@@ -1876,7 +1876,7 @@ function html_print_autocomplete_modules($name = 'module', $default = '', $id_ag
 			$agents = db_get_all_rows_sql('SELECT id_agente FROM tagente WHERE id_grupo IN (' . implode(',', $groups) . ')');
 			
 			if ($agents === false) $agents = array();
-		
+			
 			$id_agentsACL = array();
 			foreach ($agents as $agent) {
 				if (array_search($agent['id_agente'], $id_agents) !== false) {
@@ -1890,56 +1890,54 @@ function html_print_autocomplete_modules($name = 'module', $default = '', $id_ag
 	
 	ob_start();
 	
-	ui_require_jquery_file ('autocomplete');
-	
-	?>
-	<script type="text/javascript">
-	function escapeHTML (str)
-	{
-		var div = document.createElement('div');
-		var text = document.createTextNode(str);
-		div.appendChild(text);
-		return div.innerHTML;
-	}
-	
-		$(document).ready (function () {
-			$("#text-<?php echo $name; ?>").autocomplete(
-				"ajax.php",
-				{
-					minChars: 2,
-					scroll:true,
-					extraParams: {
-						page: "include/ajax/module",
-						search_modules: 1,
-						id_agents: '<?php echo json_encode($id_agents); ?>',
-						other_filter: '<?php echo json_encode($filter); ?>'
-					},
-					formatItem: function (data, i, total) {
-						if (total == 0)
-							$("#text-<?php echo $name; ?>").css ('background-color', '#cc0000');
-						else
-							$("#text-<?php echo $name; ?>").css ('background-color', '');
-						
-						if (data == "")
-							return false;
-						
-						return escapeHTML(data[0]);
-					},
-					delay: 200
-				}
-			);
-			
-			$("#text-<?php echo $name; ?>").result (
-				<?php echo $scriptResult; ?>
-			);
-		});
-	</script>
-	<?php
-	
 	html_print_input_text_extended ($name, $default, 'text-' . $name, '', 30, 100, false, '',
 		array('style' => 'background: url(images/lightning_blue.png) no-repeat right;'));
 	ui_print_help_tip(__('Type at least two characters to search the module.'), false);
 	
+	$javascript_ajax_page =
+		ui_get_full_url('ajax.php', false, false, false, false);
+	?>
+	<script type="text/javascript">
+		function escapeHTML (str)
+		{
+			var div = document.createElement('div');
+			var text = document.createTextNode(str);
+			div.appendChild(text);
+			return div.innerHTML;
+		}
+		
+		$(document).ready (function () {
+				$("#text-<?php echo $name; ?>").autocomplete({
+					minLength: 2,
+					source: function( request, response ) {
+							var term = request.term; //Word to search
+							
+							data_params = {
+								page: "include/ajax/module",
+								q: term,
+								search_modules: 1,
+								id_agents: '<?php echo json_encode($id_agents); ?>',
+								other_filter: '<?php echo json_encode($filter); ?>'
+							};
+							
+							jQuery.ajax ({
+								data: data_params,
+								async: false,
+								type: "POST",
+								url: action="<?php echo $javascript_ajax_page;?>",
+								timeout: 10000,
+								dataType: "json",
+								success: function (data) {
+										response(data);
+									}
+								});
+						}
+					}
+				);
+			});
+	</script>
+	<?php
+	
 	$output = ob_get_clean();
 	
 	if ($return) {