2013-10-08 Sergio Martin <sergio.martin@artica.es>

* include/functions_alerts.php
	include/javascript/jquery.pandora.controls.js
	include/functions_treeview.php
	operation/tree.php
	operation/agentes/ver_agente.php
	godmode/groups/group_list.php
	godmode/massive/massive_add_alerts.php
	godmode/massive/massive_delete_modules.php
	godmode/massive/massive_delete_alerts.php
	godmode/massive/massive_edit_modules.php
	godmode/reporting/graph_builder.graph_editor.php: Add sorting
	in many agents list retrieved by ajax and tree view



git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@8868 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
This commit is contained in:
zarzuelo 2013-10-08 09:48:26 +00:00
parent 719915003c
commit 79d4553472
12 changed files with 109 additions and 17 deletions

View File

@ -1,3 +1,18 @@
2013-10-08 Sergio Martin <sergio.martin@artica.es>
* include/functions_alerts.php
include/javascript/jquery.pandora.controls.js
include/functions_treeview.php
operation/tree.php
operation/agentes/ver_agente.php
godmode/groups/group_list.php
godmode/massive/massive_add_alerts.php
godmode/massive/massive_delete_modules.php
godmode/massive/massive_delete_alerts.php
godmode/massive/massive_edit_modules.php
godmode/reporting/graph_builder.graph_editor.php: Add sorting
in many agents list retrieved by ajax and tree view
2013-10-07 Sergio Martin <sergio.martin@artica.es> 2013-10-07 Sergio Martin <sergio.martin@artica.es>
* include/styles/pandora.css: Added a overflow hidden * include/styles/pandora.css: Added a overflow hidden

View File

@ -67,6 +67,8 @@ if (is_ajax ()) {
$disabled = (int) get_parameter ('disabled', 0); $disabled = (int) get_parameter ('disabled', 0);
$search = (string) get_parameter ('search', ''); $search = (string) get_parameter ('search', '');
$recursion = (int) get_parameter ('recursion', 0); $recursion = (int) get_parameter ('recursion', 0);
// Is is possible add keys prefix to avoid auto sorting in js object conversion
$keys_prefix = (string) get_parameter ('keys_prefix', '');
// Ids of agents to be include in the SQL clause as id_agent IN () // Ids of agents to be include in the SQL clause as id_agent IN ()
$filter_agents_json = (string) get_parameter ('filter_agents_json', ''); $filter_agents_json = (string) get_parameter ('filter_agents_json', '');
@ -87,9 +89,16 @@ if (is_ajax ()) {
$filter['string'] = $search; $filter['string'] = $search;
} }
$agents = agents_get_group_agents ($id_group, $filter, "none", false, $recursion); $agents = agents_get_group_agents ($id_group, $filter, "none", false, $recursion);
// Add keys prefix
if ($keys_prefix !== "") {
foreach($agents as $k => $v) {
$agents[$keys_prefix . $k] = $v;
unset($agents[$k]);
}
}
echo json_encode ($agents); echo json_encode ($agents);
return; return;
} }

View File

@ -35,10 +35,20 @@ if (is_ajax ()) {
if ($get_agents) { if ($get_agents) {
$id_group = (int) get_parameter ('id_group'); $id_group = (int) get_parameter ('id_group');
// Is is possible add keys prefix to avoid auto sorting in js object conversion
$keys_prefix = (string) get_parameter ('keys_prefix', '');
$agents_alerts = agents_get_group_agents ($id_group, false, "", false, $recursion); $agents = agents_get_group_agents ($id_group, false, "", false, $recursion);
echo json_encode ($agents_alerts); // Add keys prefix
if ($keys_prefix !== "") {
foreach($agents as $k => $v) {
$agents[$keys_prefix . $k] = $v;
unset($agents[$k]);
}
}
echo json_encode ($agents);
return; return;
} }
return; return;
@ -183,11 +193,16 @@ $(document).ready (function () {
{"page" : "godmode/massive/massive_add_alerts", {"page" : "godmode/massive/massive_add_alerts",
"get_agents" : 1, "get_agents" : 1,
"id_group" : this.value, "id_group" : this.value,
"recursion" : $("#checkbox-recursion").is(":checked") ? 1 : 0 "recursion" : $("#checkbox-recursion").is(":checked") ? 1 : 0,
// Add a key prefix to avoid auto sorting in js object conversion
"keys_prefix" : "_"
}, },
function (data, status) { function (data, status) {
options = ""; options = "";
jQuery.each (data, function (id, value) { jQuery.each (data, function (id, value) {
// Remove keys_prefix from the index
id = id.substring(1);
options += "<option value=\""+id+"\">"+value+"</option>"; options += "<option value=\""+id+"\">"+value+"</option>";
}); });
$("#id_agents").append (options); $("#id_agents").append (options);

View File

@ -36,6 +36,8 @@ if (is_ajax ()) {
if ($get_agents) { if ($get_agents) {
$id_group = (int) get_parameter ('id_group'); $id_group = (int) get_parameter ('id_group');
$id_alert_template = (int) get_parameter ('id_alert_template'); $id_alert_template = (int) get_parameter ('id_alert_template');
// Is is possible add keys prefix to avoid auto sorting in js object conversion
$keys_prefix = (string) get_parameter ('keys_prefix', '');
if ($recursion) { if ($recursion) {
$groups = groups_get_id_recursive($id_group, true); $groups = groups_get_id_recursive($id_group, true);
@ -53,7 +55,19 @@ if (is_ajax ()) {
} }
} }
echo json_encode (index_array ($agents_alerts, 'id_agente', 'nombre')); $agents = index_array ($agents_alerts, 'id_agente', 'nombre');
asort($agents);
// Add keys prefix
if ($keys_prefix !== "") {
foreach($agents as $k => $v) {
$agents[$keys_prefix . $k] = $v;
unset($agents[$k]);
}
}
echo json_encode ($agents);
return; return;
} }
return; return;
@ -252,11 +266,16 @@ $(document).ready (function () {
"get_agents" : 1, "get_agents" : 1,
"id_group" : this.value, "id_group" : this.value,
"recursion" : $("#checkbox-recursion").is(":checked") ? 1 : 0, "recursion" : $("#checkbox-recursion").is(":checked") ? 1 : 0,
"id_alert_template" : $("#id_alert_template").val() "id_alert_template" : $("#id_alert_template").val(),
// Add a key prefix to avoid auto sorting in js object conversion
"keys_prefix" : "_"
}, },
function (data, status) { function (data, status) {
options = ""; options = "";
jQuery.each (data, function (id, value) { jQuery.each (data, function (id, value) {
// Remove keys_prefix from the index
id = id.substring(1);
options += "<option value=\""+id+"\">"+value+"</option>"; options += "<option value=\""+id+"\">"+value+"</option>";
}); });
$("#id_agents").append (options); $("#id_agents").append (options);

View File

@ -459,12 +459,16 @@ $(document).ready (function () {
{"page" : "operation/agentes/ver_agente", {"page" : "operation/agentes/ver_agente",
"get_agents_group_json" : 1, "get_agents_group_json" : 1,
"recursion" : $("#checkbox-recursion").attr ("checked") ? 1 : 0, "recursion" : $("#checkbox-recursion").attr ("checked") ? 1 : 0,
"id_group" : this.value "id_group" : this.value,
// Add a key prefix to avoid auto sorting in js object conversion
"keys_prefix" : "_"
}, },
function (data, status) { function (data, status) {
$("#id_agents").html(''); $("#id_agents").html('');
jQuery.each (data, function (id, value) { jQuery.each (data, function (id, value) {
// Remove keys_prefix from the index
id = id.substring(1);
option = $("<option></option>").attr ("value", value["id_agente"]).html (value["nombre"]); option = $("<option></option>").attr ("value", value["id_agente"]).html (value["nombre"]);
$("#id_agents").append (option); $("#id_agents").append (option);
}); });

View File

@ -776,12 +776,17 @@ $(document).ready (function () {
{"page" : "operation/agentes/ver_agente", {"page" : "operation/agentes/ver_agente",
"get_agents_group_json" : 1, "get_agents_group_json" : 1,
"recursion" : $("#checkbox-recursion").attr ("checked") ? 1 : 0, "recursion" : $("#checkbox-recursion").attr ("checked") ? 1 : 0,
"id_group" : this.value "id_group" : this.value,
// Add a key prefix to avoid auto sorting in js object conversion
"keys_prefix" : "_"
}, },
function (data, status) { function (data, status) {
$("#id_agents").html(''); $("#id_agents").html('');
jQuery.each (data, function (id, value) { jQuery.each (data, function (id, value) {
// Remove keys_prefix from the index
id = id.substring(1);
option = $("<option></option>").attr ("value", value["id_agente"]).html (value["nombre"]); option = $("<option></option>").attr ("value", value["id_agente"]).html (value["nombre"]);
$("#id_agents").append (option); $("#id_agents").append (option);
}); });

View File

@ -197,14 +197,20 @@ function filterByGroup(idGroup) {
jQuery.post ("ajax.php", jQuery.post ("ajax.php",
{"page" : "godmode/groups/group_list", {"page" : "godmode/groups/group_list",
"get_group_agents" : 1, "get_group_agents" : 1,
"id_group" : idGroup "id_group" : idGroup,
// Add a key prefix to avoid auto sorting in js object conversion
"keys_prefix" : "_"
}, },
function (data, status) { function (data, status) {
i = 0 i = 0
jQuery.each (data, function (id, value) { jQuery.each (data, function (id, value) {
// Remove keys_prefix from the index
id = id.substring(1);
i++; i++;
$("#id_agents").append ($("<option></option>").attr ("value", id).html (value)); $("#id_agents").append ($("<option></option>").attr ("value", id).html (value));
}); });
if (i == 0) { if (i == 0) {
$("#id_agents").append ($("<option></option>").attr ("value", 0).html ('<?php echo __('None');?>')); $("#id_agents").append ($("<option></option>").attr ("value", 0).html ('<?php echo __('None');?>'));
} }

View File

@ -1370,6 +1370,7 @@ function alerts_get_agents_with_alert_template ($id_alert_template, $id_group, $
$filter['id_alert_template'] = $id_alert_template; $filter['id_alert_template'] = $id_alert_template;
$filter['tagente_modulo.disabled'] = '<> 1'; $filter['tagente_modulo.disabled'] = '<> 1';
$filter['delete_pending'] = '<> 1'; $filter['delete_pending'] = '<> 1';
if (empty ($id_agents)) { if (empty ($id_agents)) {
switch ($config["dbtype"]) { switch ($config["dbtype"]) {
case "mysql": case "mysql":

View File

@ -693,10 +693,10 @@ function treeview_getData ($type) {
switch ($config["dbtype"]) { switch ($config["dbtype"]) {
case "mysql": case "mysql":
case "postgresql": case "postgresql":
$list = db_get_all_rows_sql("SELECT * FROM tgrupo WHERE nombre IN (" . $stringAvariableGroups . ") $sql_search"); $list = db_get_all_rows_sql("SELECT * FROM tgrupo WHERE nombre IN (" . $stringAvariableGroups . ") $sql_search ORDER BY nombre COLLATE utf8_general_ci ASC");
break; break;
case "oracle": case "oracle":
$list = db_get_all_rows_sql("SELECT * FROM tgrupo WHERE dbms_lob.substr(nombre,4000,1) IN (" . $stringAvariableGroups . ")"); $list = db_get_all_rows_sql("SELECT * FROM tgrupo WHERE dbms_lob.substr(nombre,4000,1) IN (" . $stringAvariableGroups . ") ORDER BY nombre COLLATE utf8_general_ci ASC");
break; break;
} }
break; break;
@ -748,7 +748,8 @@ function treeview_getData ($type) {
tagente.id_grupo IN ($groups) AND tagente.id_grupo IN ($groups) AND
tagente.nombre LIKE '%$search_free%' AND tagente.nombre LIKE '%$search_free%' AND
tagente.disabled = 0 AND tagente.disabled = 0 AND
tagente_modulo.disabled = 0"; tagente_modulo.disabled = 0
ORDER BY tpolicies.name COLLATE utf8_general_ci ASC";
$list = db_get_all_rows_sql($sql); $list = db_get_all_rows_sql($sql);
@ -823,7 +824,8 @@ function treeview_getData ($type) {
tpolicies.id = tpolicy_modules.id_policy AND tpolicies.id = tpolicy_modules.id_policy AND
tagente.id_grupo IN ($groups) AND tagente.id_grupo IN ($groups) AND
tagente.disabled = 0 AND tagente.disabled = 0 AND
tagente_modulo.disabled = 0"); tagente_modulo.disabled = 0
ORDER BY tpolicies.name COLLATE utf8_general_ci ASC");
$element = 0; $element = 0;
switch ($select_status) { switch ($select_status) {
@ -955,7 +957,8 @@ function treeview_getData ($type) {
AND tagente.disabled = 0 AND tagente.disabled = 0
AND ttag_module.id_agente_modulo = tagente_modulo.id_agente_modulo" . AND ttag_module.id_agente_modulo = tagente_modulo.id_agente_modulo" .
$search_sql . $search_sql .
$user_tags_sql; $user_tags_sql .
"ORDER BY ttag.name COLLATE utf8_general_ci ASC";
$list = db_get_all_rows_sql($sql); $list = db_get_all_rows_sql($sql);
break; break;
@ -1301,7 +1304,7 @@ function treeview_getSecondBranchSQL ($fatherType, $id, $id_father) {
} }
// This line checks for initializated modules or (non-initialized) asyncronous modules // This line checks for initializated modules or (non-initialized) asyncronous modules
$sql .= ' AND disabled = 0 AND (utimestamp > 0 OR id_tipo_modulo IN (21,22,23))'; $sql .= ' AND disabled = 0 AND (utimestamp > 0 OR id_tipo_modulo IN (21,22,23)) ORDER BY nombre COLLATE utf8_general_ci ASC';
return $sql; return $sql;
} }
?> ?>

View File

@ -41,12 +41,16 @@
"recursion" : config.recursion, "recursion" : config.recursion,
"filter_agents_json" : config.filter_agents_json, "filter_agents_json" : config.filter_agents_json,
"disabled" : config.disabled ? 1 : 0, "disabled" : config.disabled ? 1 : 0,
// Add a key prefix to avoid auto sorting in js object conversion
"keys_prefix" : "_"
}; };
jQuery.post ("ajax.php", jQuery.post ("ajax.php",
opts, opts,
function (data, status) { function (data, status) {
jQuery.each (data, function (id, value) { jQuery.each (data, function (id, value) {
// Remove keys_prefix from the index
id = id.substring(1);
if (id !== 'keycount'){ if (id !== 'keycount'){
config.callbackPre (); config.callbackPre ();
option = $("<option></option>") option = $("<option></option>")

View File

@ -46,6 +46,8 @@ if (is_ajax ()) {
if ($get_agents_group_json) { if ($get_agents_group_json) {
$id_group = (int) get_parameter('id_group'); $id_group = (int) get_parameter('id_group');
$recursion = (int) get_parameter ('recursion', 0); $recursion = (int) get_parameter ('recursion', 0);
// Is is possible add keys prefix to avoid auto sorting in js object conversion
$keys_prefix = (string) get_parameter ('keys_prefix', '');
if ($id_group > 0) { if ($id_group > 0) {
$groups = array($id_group); $groups = array($id_group);
@ -59,10 +61,18 @@ if (is_ajax ()) {
$groups = array_keys($groups_orig); $groups = array_keys($groups_orig);
} }
$filter = " WHERE id_grupo IN (". implode(',', $groups) .")"; $filter = " WHERE id_grupo IN (". implode(',', $groups) .") ORDER BY nombre ASC";
$agents = db_get_all_rows_sql("SELECT id_agente, nombre $agents = db_get_all_rows_sql("SELECT id_agente, nombre
FROM tagente" . $filter); FROM tagente" . $filter);
// Add keys prefix
if ($keys_prefix !== "") {
foreach($agents as $k => $v) {
$agents[$keys_prefix . $k] = $v;
unset($agents[$k]);
}
}
echo json_encode($agents); echo json_encode($agents);
return; return;
} }

View File

@ -123,6 +123,7 @@ if (is_ajax ())
$avariableGroups = users_get_groups(); $avariableGroups = users_get_groups();
$avariableGroupsIds = array_keys($avariableGroups); $avariableGroupsIds = array_keys($avariableGroups);
$sql = treeview_getFirstBranchSQL ($type, $id, $avariableGroupsIds, $statusSel, $search_free); $sql = treeview_getFirstBranchSQL ($type, $id, $avariableGroupsIds, $statusSel, $search_free);
if ($sql === false) { if ($sql === false) {
$rows = array (); $rows = array ();
} }