diff --git a/pandora_console/godmode/massive/massive_edit_modules.php b/pandora_console/godmode/massive/massive_edit_modules.php index 4f77c3e824..1285b015b7 100755 --- a/pandora_console/godmode/massive/massive_edit_modules.php +++ b/pandora_console/godmode/massive/massive_edit_modules.php @@ -341,8 +341,12 @@ $table->data['form_agents_2'][1] = html_print_select($status_list, 'status_agents', 'selected', '', __('All'), AGENT_STATUS_ALL, true); $table->data['form_agents_2'][3] = ''; - - +$tags = tags_get_user_tags(); +$table->rowstyle['form_agents_4'] = 'vertical-align: top;'; +$table->rowclass['form_agents_4'] = 'select_agents_row select_agents_row_2'; +$table->data['form_agents_4'][0] = __('Tags'); +$table->data['form_agents_4'][1] = html_print_select ($tags, 'tags[]', + $tags_name, false, __('Any'), -1, true, true, true); $table->rowstyle['form_agents_3'] = 'vertical-align: top;'; $table->rowclass['form_agents_3'] = 'select_agents_row select_agents_row_2'; @@ -974,7 +978,6 @@ $(document).ready (function () { $("#groups_select").change ( function () { - if (this.value < 0) { clean_lists(); $(".select_agents_row_2").css('display', 'none'); @@ -1059,14 +1062,12 @@ $(document).ready (function () { }); $("#tags").change(function() { - selector = $("#form_edit input[name=selection_mode]:checked").val(); - if(selector == 'agents') { - $("#id_agents").trigger("change"); - } - else if(selector == 'modules') { - $("#module_type").trigger("change"); - } + $("#module_type").trigger("change"); + }); + $("#tags1").change(function() { + selector = $("#form_edit input[name=selection_mode]:checked").val(); + $("#id_agents").trigger("change"); }); }); diff --git a/pandora_console/include/javascript/pandora.js b/pandora_console/include/javascript/pandora.js index 9480896cf3..e9d12424b0 100644 --- a/pandora_console/include/javascript/pandora.js +++ b/pandora_console/include/javascript/pandora.js @@ -175,7 +175,9 @@ function agent_changed_by_multiple_agents (event, id_agent, selected) { //val() because the var is same idAgents.push($(val).val()); }); - + + var tags_to_search = $('#tags1').val(); + //Hack to find only enabled modules //Pass a flag as global var find_modules = 'all'; @@ -226,6 +228,7 @@ function agent_changed_by_multiple_agents (event, id_agent, selected) { "page": "operation/agentes/ver_agente", "get_agent_modules_json_for_multiple_agents": 1, "id_agent[]": idAgents, + "tags[]": tags_to_search, "all": find_modules, "module_types_excluded[]": module_types_excluded, "name": module_name, @@ -401,8 +404,6 @@ function alert_templates_changed_by_multiple_agents_with_alerts (event, id_agent templates.push($(val).val()); }); - console.log(templates); - $('#module').attr ('disabled', 1); $('#module').empty (); $('#module').append ($('').html ("Loading...").attr ("value", 0)); @@ -1092,7 +1093,7 @@ function openURLTagWindow(url) { window.open(url, '','width=300, height=300, toolbar=no, location=no, directories=no, status=no, menubar=no'); } -function removeTinyMCE(elementID) {console.log(elementID); +function removeTinyMCE(elementID) { if (elementID.length > 0 && !isEmptyObject(tinyMCE)) tinyMCE.EditorManager.execCommand('mceRemoveControl', true, elementID); } diff --git a/pandora_console/operation/agentes/ver_agente.php b/pandora_console/operation/agentes/ver_agente.php index 9e5b35c7f4..381b089b68 100644 --- a/pandora_console/operation/agentes/ver_agente.php +++ b/pandora_console/operation/agentes/ver_agente.php @@ -301,6 +301,7 @@ if (is_ajax ()) { if ($get_agent_modules_json_for_multiple_agents) { $idAgents = get_parameter('id_agent'); + $tags = get_parameter('tags', null); $module_types_excluded = get_parameter('module_types_excluded', array()); $module_name = (string) get_parameter('name'); $selection_mode = get_parameter('selection_mode', 'common'); @@ -491,7 +492,7 @@ if (is_ajax ()) { } else { if(implode(',', $idAgents) < 0) { - $sql = 'SELECT DISTINCT(nombre) FROM tagente_modulo + $sql = 'SELECT DISTINCT nombre, id_agente_modulo FROM tagente_modulo WHERE nombre IN ( SELECT nombre FROM tagente_modulo @@ -499,7 +500,7 @@ if (is_ajax ()) { HAVING count(nombre) = (SELECT count(nombre) FROM tagente_modulo))'; } else { - $sql = 'SELECT DISTINCT(nombre) + $sql = 'SELECT DISTINCT nombre, id_agente_modulo FROM tagente_modulo t1 WHERE ' . $filter . ' AND t1.delete_pending = 0 @@ -521,6 +522,31 @@ if (is_ajax ()) { $nameModules = db_get_all_rows_sql($sql); + if ($tags != null) { + if ((count($tags) >= 1) && ($tags[0] != "") && ($tags[0] != -1)) { + $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 ($nameModules 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; + } + } + $nameModules = $final_modules; + } + else { + $nameModules = array(); + } + } + } + if ($nameModules == false) { $nameModules = array(); }