mirror of
https://github.com/pandorafms/pandorafms.git
synced 2025-07-28 00:04:37 +02:00
Merge branch '2737-Optimización-de-tags-dev-2' into 'develop'
Fixed tags filter on Tree tags See merge request artica/pandorafms!1862
This commit is contained in:
commit
d23e47dd9d
@ -385,6 +385,9 @@ echo '</form>';
|
|||||||
echo '<h3 class="error invisible" id="message"> </h3>';
|
echo '<h3 class="error invisible" id="message"> </h3>';
|
||||||
|
|
||||||
ui_require_jquery_file ('form');
|
ui_require_jquery_file ('form');
|
||||||
|
//Hack to translate text "none" in PHP to javascript
|
||||||
|
echo '<span id ="none_text" style="display: none;">' . __('None') . '</span>';
|
||||||
|
echo '<span id ="select_agent_first_text" style="display: none;">' . __('Please, select an agent first') . '</span>';
|
||||||
ui_require_jquery_file ('pandora.controls');
|
ui_require_jquery_file ('pandora.controls');
|
||||||
|
|
||||||
if ($selection_mode == 'modules') {
|
if ($selection_mode == 'modules') {
|
||||||
|
@ -709,6 +709,7 @@ echo '</form>';
|
|||||||
echo '<h3 class="error invisible" id="message"> </h3>';
|
echo '<h3 class="error invisible" id="message"> </h3>';
|
||||||
//Hack to translate text "none" in PHP to javascript
|
//Hack to translate text "none" in PHP to javascript
|
||||||
echo '<span id ="none_text" style="display: none;">' . __('None') . '</span>';
|
echo '<span id ="none_text" style="display: none;">' . __('None') . '</span>';
|
||||||
|
echo '<span id ="select_agent_first_text" style="display: none;">' . __('Please, select an agent first') . '</span>';
|
||||||
ui_require_jquery_file ('pandora.controls');
|
ui_require_jquery_file ('pandora.controls');
|
||||||
|
|
||||||
if ($selection_mode == 'modules') {
|
if ($selection_mode == 'modules') {
|
||||||
|
@ -1087,6 +1087,34 @@ You can of course remove the warnings, that's why we include the source and do n
|
|||||||
$agents2[$value['id_agente']] = $value['alias'];
|
$agents2[$value['id_agente']] = $value['alias'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((empty($agents2)) || $agents2 == -1) $agents = array();
|
||||||
|
|
||||||
|
$agents_select = array();
|
||||||
|
if (is_array($id_agents) || is_object($id_agents)){
|
||||||
|
foreach ($id_agents as $id) {
|
||||||
|
foreach ($agents2 as $key => $a) {
|
||||||
|
if ($key == (int)$id) {
|
||||||
|
$agents_select[$key] = $key;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
html_print_select($agents2, 'id_agents3[]', $agents_select, $script = '', "", 0, false, true, true, '', false, "min-width: 180px");
|
||||||
|
echo "<span id='spinner_hack' style='display:none;'>" . html_print_image('images/spinner.gif', true) . "</span>";
|
||||||
|
?>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr id="agents_modules_row" style="" class="datos">
|
||||||
|
<td style="font-weight:bold;"><?php echo __('Agents'); ?></td>
|
||||||
|
<td>
|
||||||
|
<?php
|
||||||
|
|
||||||
|
$all_agent_log = agents_get_agents(false,array('id_agente','alias'));
|
||||||
|
foreach ($all_agent_log as $key => $value) {
|
||||||
|
$agents2[$value['id_agente']] = $value['alias'];
|
||||||
|
}
|
||||||
|
|
||||||
// $agents = agents_get_group_agents($group);
|
// $agents = agents_get_group_agents($group);
|
||||||
if ((empty($agents2)) || $agents2 == -1) $agents = array();
|
if ((empty($agents2)) || $agents2 == -1) $agents = array();
|
||||||
|
|
||||||
@ -1101,7 +1129,6 @@ You can of course remove the warnings, that's why we include the source and do n
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
html_print_select($agents2, 'id_agents2[]', $agents_select, $script = '', "", 0, false, true, true, '', false, "min-width: 180px");
|
html_print_select($agents2, 'id_agents2[]', $agents_select, $script = '', "", 0, false, true, true, '', false, "min-width: 180px");
|
||||||
echo "<span id='spinner_hack' style='display:none;'>" . html_print_image('images/spinner.gif', true) . "</span>";
|
|
||||||
?>
|
?>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
@ -2862,6 +2889,7 @@ function chooseType() {
|
|||||||
$("#row_percentil").hide();
|
$("#row_percentil").hide();
|
||||||
$("#log_help_tip").css("visibility", "hidden");
|
$("#log_help_tip").css("visibility", "hidden");
|
||||||
$("#agents_row").hide();
|
$("#agents_row").hide();
|
||||||
|
$("#agents_modules_row").hide();
|
||||||
$("#select_agent_modules").hide();
|
$("#select_agent_modules").hide();
|
||||||
$("#modules_row").hide();
|
$("#modules_row").hide();
|
||||||
$("#row_show_summary_group").hide();
|
$("#row_show_summary_group").hide();
|
||||||
@ -3328,7 +3356,7 @@ function chooseType() {
|
|||||||
$("#row_group").show();
|
$("#row_group").show();
|
||||||
$("#row_module_group").show();
|
$("#row_module_group").show();
|
||||||
$("#select_agent_modules").show();
|
$("#select_agent_modules").show();
|
||||||
$("#agents_row").show();
|
$("#agents_modules_row").show();
|
||||||
$("#modules_row").show();
|
$("#modules_row").show();
|
||||||
$("#row_historical_db_check").hide();
|
$("#row_historical_db_check").hide();
|
||||||
break;
|
break;
|
||||||
@ -3499,7 +3527,7 @@ function set_last_value_period() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function source_change_agents() {
|
function source_change_agents() {
|
||||||
$("#id_agents2").empty();
|
$("#id_agents3").empty();
|
||||||
$("#spinner_hack").show();
|
$("#spinner_hack").show();
|
||||||
jQuery.post ("ajax.php",
|
jQuery.post ("ajax.php",
|
||||||
{"page" : "operation/agentes/ver_agente",
|
{"page" : "operation/agentes/ver_agente",
|
||||||
@ -3508,7 +3536,7 @@ function source_change_agents() {
|
|||||||
},
|
},
|
||||||
function (data, status) {
|
function (data, status) {
|
||||||
for (var clave in data) {
|
for (var clave in data) {
|
||||||
$("#id_agents2").append('<option value="'+clave+'">'+data[clave]+'</option>');
|
$("#id_agents3").append('<option value="'+clave+'">'+data[clave]+'</option>');
|
||||||
}
|
}
|
||||||
$("#spinner_hack").hide();
|
$("#spinner_hack").hide();
|
||||||
},
|
},
|
||||||
|
@ -41,6 +41,8 @@ class Tree {
|
|||||||
protected $L2conditionInside = '';
|
protected $L2conditionInside = '';
|
||||||
protected $L2inner = '';
|
protected $L2inner = '';
|
||||||
|
|
||||||
|
protected $L3forceTagCondition = false;
|
||||||
|
|
||||||
const TV_DEFAULT_AGENT_STATUS = -1;
|
const TV_DEFAULT_AGENT_STATUS = -1;
|
||||||
|
|
||||||
public function __construct($type, $rootType = '', $id = -1, $rootID = -1, $serverID = false, $childrenMethod = "on_demand", $access = 'AR') {
|
public function __construct($type, $rootType = '', $id = -1, $rootID = -1, $serverID = false, $childrenMethod = "on_demand", $access = 'AR') {
|
||||||
@ -891,7 +893,9 @@ class Tree {
|
|||||||
$module_status_filter = $this->getModuleStatusFilterFromTestado();
|
$module_status_filter = $this->getModuleStatusFilterFromTestado();
|
||||||
$agent_filter = "AND ta.id_agente = " . $this->id;
|
$agent_filter = "AND ta.id_agente = " . $this->id;
|
||||||
$tag_condition = $this->getTagCondition();
|
$tag_condition = $this->getTagCondition();
|
||||||
$tag_join = empty($tag_condition) ? '' : $this->getTagJoin();
|
$tag_join = empty($tag_condition) && (!$this->L3forceTagCondition)
|
||||||
|
? ''
|
||||||
|
: $this->getTagJoin();
|
||||||
|
|
||||||
$condition = $this->L2condition;
|
$condition = $this->L2condition;
|
||||||
$inner = $this->L2inner;
|
$inner = $this->L2inner;
|
||||||
|
@ -37,6 +37,8 @@ class TreeTag extends Tree {
|
|||||||
|
|
||||||
$this->L2condition = "AND ttm.id_tag = " . $this->rootID;
|
$this->L2condition = "AND ttm.id_tag = " . $this->rootID;
|
||||||
$this->L2inner = $this->L1innerInside;
|
$this->L2inner = $this->L1innerInside;
|
||||||
|
|
||||||
|
$this->L3forceTagCondition = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getData() {
|
protected function getData() {
|
||||||
@ -52,10 +54,6 @@ class TreeTag extends Tree {
|
|||||||
protected function getTagJoin () {
|
protected function getTagJoin () {
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getTagCondition () {
|
|
||||||
return '';
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
@ -1069,7 +1069,7 @@ function agents_get_group_agents (
|
|||||||
*/
|
*/
|
||||||
function agents_get_modules ($id_agent = null, $details = false,
|
function agents_get_modules ($id_agent = null, $details = false,
|
||||||
$filter = false, $indexed = true, $get_not_init_modules = true,
|
$filter = false, $indexed = true, $get_not_init_modules = true,
|
||||||
$noACLs = false) {
|
$force_tags = false) {
|
||||||
|
|
||||||
global $config;
|
global $config;
|
||||||
|
|
||||||
@ -1205,7 +1205,7 @@ function agents_get_modules ($id_agent = null, $details = false,
|
|||||||
}
|
}
|
||||||
|
|
||||||
$sql_tags_join = "";
|
$sql_tags_join = "";
|
||||||
if (tags_has_user_acl_tags($config['id_user'])){
|
if (tags_has_user_acl_tags($config['id_user']) || $force_tags){
|
||||||
$where_tags = tags_get_acl_tags($config['id_user'], $id_groups, 'AR',
|
$where_tags = tags_get_acl_tags($config['id_user'], $id_groups, 'AR',
|
||||||
'module_condition', 'AND', 'tagente_modulo', false, array(),
|
'module_condition', 'AND', 'tagente_modulo', false, array(),
|
||||||
true);
|
true);
|
||||||
|
@ -189,8 +189,10 @@ function agent_changed_by_multiple_agents (event, id_agent, selected) {
|
|||||||
$('#module').empty ();
|
$('#module').empty ();
|
||||||
|
|
||||||
if (isEmptyObject(data)) {
|
if (isEmptyObject(data)) {
|
||||||
var noneText = $("#none_text").html(); //Trick for catch the translate text.
|
//Trick for catch the translate text.
|
||||||
|
var noneText = $("#id_agents").val() === null
|
||||||
|
? $("#select_agent_first_text").html()
|
||||||
|
: $("#none_text").html();
|
||||||
if (noneText == null) {
|
if (noneText == null) {
|
||||||
noneText = 'None';
|
noneText = 'None';
|
||||||
}
|
}
|
||||||
|
@ -340,6 +340,11 @@ if (is_ajax ()) {
|
|||||||
'tmetaconsole_setup', 'id', $id_server);
|
'tmetaconsole_setup', 'id', $id_server);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (empty($idAgents[0])) {
|
||||||
|
echo json_encode(array());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
$filter = '1 = 1';
|
$filter = '1 = 1';
|
||||||
|
|
||||||
$all = (string)get_parameter('all', 'all');
|
$all = (string)get_parameter('all', 'all');
|
||||||
@ -674,24 +679,25 @@ if (is_ajax ()) {
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
$search = false;
|
$search = false;
|
||||||
|
|
||||||
|
$force_tags = !empty($tags);
|
||||||
|
if ($force_tags) {
|
||||||
|
$filter['ttag_module.id_tag IN '] = "(" . implode(",", $tags) . ")";
|
||||||
|
}
|
||||||
if (is_metaconsole() && !$force_local_modules) {
|
if (is_metaconsole() && !$force_local_modules) {
|
||||||
if (enterprise_include_once ('include/functions_metaconsole.php') !== ENTERPRISE_NOT_HOOK) {
|
if (enterprise_include_once ('include/functions_metaconsole.php') !== ENTERPRISE_NOT_HOOK) {
|
||||||
$connection = metaconsole_get_connection($server_name);
|
$connection = metaconsole_get_connection($server_name);
|
||||||
|
|
||||||
|
|
||||||
if ($server_id > 0) {
|
if ($server_id > 0) {
|
||||||
$connection = metaconsole_get_connection_by_id($server_id);
|
$connection = metaconsole_get_connection_by_id($server_id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (metaconsole_load_external_db($connection) == NOERR) {
|
if (metaconsole_load_external_db($connection) == NOERR) {
|
||||||
/* Get all agents if no agent was given */
|
/* Get all agents if no agent was given */
|
||||||
if ($id_agent == 0)
|
if ($id_agent == 0)
|
||||||
$id_agent = array_keys(
|
$id_agent = array_keys(
|
||||||
agents_get_group_agents(
|
agents_get_group_agents(
|
||||||
array_keys (users_get_groups ()), $search, "none"));
|
array_keys (users_get_groups ()), $search, "none"));
|
||||||
$agent_modules = agents_get_modules ($id_agent, $fields, $filter, $indexed, true, false, $tags);
|
$agent_modules = agents_get_modules ($id_agent, $fields, $filter, $indexed, true, $force_tags);
|
||||||
}
|
}
|
||||||
// Restore db connection
|
// Restore db connection
|
||||||
metaconsole_restore_db();
|
metaconsole_restore_db();
|
||||||
@ -703,35 +709,12 @@ if (is_ajax ()) {
|
|||||||
$id_agent = array_keys(
|
$id_agent = array_keys(
|
||||||
agents_get_group_agents(
|
agents_get_group_agents(
|
||||||
array_keys(users_get_groups ()), $search, "none"));
|
array_keys(users_get_groups ()), $search, "none"));
|
||||||
$agent_modules = agents_get_modules ($id_agent, $fields, $filter, $indexed, true, false, $tags);
|
$agent_modules = agents_get_modules ($id_agent, $fields, $filter, $indexed, true, $force_tags);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (empty($agent_modules))
|
if (empty($agent_modules))
|
||||||
$agent_modules = array();
|
$agent_modules = array();
|
||||||
|
|
||||||
if (!empty($tags)) {
|
|
||||||
$implode_tags = implode(",", $tags);
|
|
||||||
$tag_modules = db_get_all_rows_sql("SELECT DISTINCT id_agente_modulo FROM ttag_module WHERE id_tag IN (" . $implode_tags . ")");
|
|
||||||
if ($tag_modules) {
|
|
||||||
$final_modules = array();
|
|
||||||
foreach ($agent_modules as $key => $module) {
|
|
||||||
$in_array = false;
|
|
||||||
foreach ($tag_modules as $t_module) {
|
|
||||||
if ($module['id_agente_modulo'] == $t_module['id_agente_modulo']) {
|
|
||||||
$in_array = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if ($in_array) {
|
|
||||||
$final_modules[] = $module;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$agent_modules = $final_modules;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
$agent_modules = array();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach ($agent_modules as $key => $module) {
|
foreach ($agent_modules as $key => $module) {
|
||||||
$agent_modules[$key]['nombre'] = io_safe_output($module['nombre']);
|
$agent_modules[$key]['nombre'] = io_safe_output($module['nombre']);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user