From c26db22fa5f9d2951c39d38d10bac5ed08266fe3 Mon Sep 17 00:00:00 2001
From: miguel angel rasteu <miguelangel.rasteu@pandorafms.com>
Date: Thu, 13 Apr 2023 11:07:09 +0200
Subject: [PATCH 1/4] #10563 Move menu item Links from Management to Operation.
 Add button in setup to global disable the Feedback functionality

---
 pandora_console/general/header.php            |  5 +++-
 pandora_console/godmode/menu.php              | 18 ++++++++-------
 .../godmode/setup/setup_general.php           | 13 +++++++++++
 pandora_console/include/functions_config.php  |  8 +++++++
 pandora_console/operation/menu.php            | 23 +++++++++++++++++++
 5 files changed, 58 insertions(+), 9 deletions(-)

diff --git a/pandora_console/general/header.php b/pandora_console/general/header.php
index b0cbc0cec5..38f36fe730 100644
--- a/pandora_console/general/header.php
+++ b/pandora_console/general/header.php
@@ -352,7 +352,10 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
         }
 
         // Button for feedback pandora.
-        if (enterprise_installed()) {
+        if (enterprise_installed() && (            (!isset($config['activate_feedback'])
+            || (isset($config['activate_feedback'])
+            && $config['activate_feedback'] === true )) )
+        ) {
             $header_feedback = '<div id="feedback-icon-header">';
             $header_feedback .= '<div id="modal-feedback-form" class="invisible"></div>';
             $header_feedback .= '<div id="msg-header" class="invisible"></div>';
diff --git a/pandora_console/godmode/menu.php b/pandora_console/godmode/menu.php
index f6e4aac358..79670bc02b 100644
--- a/pandora_console/godmode/menu.php
+++ b/pandora_console/godmode/menu.php
@@ -546,21 +546,23 @@ if ($access_console_node === true) {
         }
     }
 
-    $menu_godmode['links']['text'] = __('Links');
-    $menu_godmode['links']['sec2'] = '';
-    $menu_godmode['links']['id'] = 'god-links';
+    /*
+        $menu_godmode['links']['text'] = __('Links');
+        $menu_godmode['links']['sec2'] = '';
+        $menu_godmode['links']['id'] = 'god-links';
 
-    $sub = [];
-    $rows = db_get_all_rows_in_table('tlink', 'name');
-    foreach ($rows as $row) {
+        $sub = [];
+        $rows = db_get_all_rows_in_table('tlink', 'name');
+        foreach ($rows as $row) {
         // Audit //meter en extensiones.
         $sub[$row['link']]['text'] = $row['name'];
         $sub[$row['link']]['id'] = $row['name'];
         $sub[$row['link']]['type'] = 'direct';
         $sub[$row['link']]['subtype'] = 'new_blank';
-    }
+        }
 
-    $menu_godmode['links']['sub'] = $sub;
+        $menu_godmode['links']['sub'] = $sub;
+    */
 }
 
 // Warp Manager.
diff --git a/pandora_console/godmode/setup/setup_general.php b/pandora_console/godmode/setup/setup_general.php
index ad7a40aa8b..ce0216ce64 100644
--- a/pandora_console/godmode/setup/setup_general.php
+++ b/pandora_console/godmode/setup/setup_general.php
@@ -429,6 +429,19 @@ $table->data[$i++][] = html_print_label_input_block(
     )
 );
 
+$table->data[$i++][] = html_print_label_input_block(
+    __('Enable Feedback'),
+    html_print_checkbox_switch_extended(
+        'activate_feedback',
+        1,
+        $config['activate_feedback'],
+        false,
+        '',
+        '',
+        true
+    )
+);
+
 $table->colspan[$i][] = 2;
 $table->data[$i++][] = html_print_label_input_block(
     __('Timezone setup'),
diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php
index b94892e7c1..a990c96398 100644
--- a/pandora_console/include/functions_config.php
+++ b/pandora_console/include/functions_config.php
@@ -264,6 +264,10 @@ function config_update_config()
                         $error_update[] = __('Enable Sflow');
                     }
 
+                    if (config_update_value('activate_feedback', (bool) get_parameter('activate_feedback'), true) === false) {
+                        $error_update[] = __('Enable Feedback');
+                    }
+
                     if (config_update_value('general_network_path', get_parameter('general_network_path'), true) === false) {
                         $error_update[] = __('General network path');
                     } else {
@@ -3330,6 +3334,10 @@ function config_process_config()
         config_update_value('autoupdate', 1);
     }
 
+    if (!isset($config['activate_feedback'])) {
+        config_update_value('activate_feedback', 1);
+    }
+
     if (!isset($config['api_password'])) {
         config_update_value('api_password', '');
     }
diff --git a/pandora_console/operation/menu.php b/pandora_console/operation/menu.php
index 8b6d9f4749..fe381e0449 100644
--- a/pandora_console/operation/menu.php
+++ b/pandora_console/operation/menu.php
@@ -628,6 +628,27 @@ if ($favorite_menu !== false) {
 }
 
 
+// Links.
+$rows = db_get_all_rows_in_table('tlink', 'name');
+// $rows = [];
+if (!empty($rows)) {
+    $menu_operation['links']['text'] = __('Links');
+    $menu_operation['links']['sec2'] = '';
+    $menu_operation['links']['id'] = 'god-links';
+
+    $sub = [];
+    foreach ($rows as $row) {
+        // Audit //meter en extensiones.
+        $sub[$row['link']]['text'] = $row['name'];
+        $sub[$row['link']]['id'] = $row['name'];
+        $sub[$row['link']]['type'] = 'direct';
+        $sub[$row['link']]['subtype'] = 'new_blank';
+    }
+
+    $menu_operation['links']['sub'] = $sub;
+}
+
+
 
 
 // Workspace.
@@ -785,6 +806,8 @@ if ($access_console_node === true) {
     // ~ }
 }
 
+
+
 // Save operation menu array to use in operation/extensions.php view
 $operation_menu_array = $menu_operation;
 

From dc41e1c37753c005e8b326d2c9c733eb8c6d6bf8 Mon Sep 17 00:00:00 2001
From: miguel angel rasteu <miguelangel.rasteu@pandorafms.com>
Date: Thu, 13 Apr 2023 11:36:13 +0200
Subject: [PATCH 2/4] fix if in header and declare correctly a value

---
 pandora_console/general/header.php           | 5 +----
 pandora_console/include/functions_config.php | 2 +-
 2 files changed, 2 insertions(+), 5 deletions(-)

diff --git a/pandora_console/general/header.php b/pandora_console/general/header.php
index 38f36fe730..5609ab46d6 100644
--- a/pandora_console/general/header.php
+++ b/pandora_console/general/header.php
@@ -352,10 +352,7 @@ echo sprintf('<div id="header_table" class="header_table_%s">', $menuTypeClass);
         }
 
         // Button for feedback pandora.
-        if (enterprise_installed() && (            (!isset($config['activate_feedback'])
-            || (isset($config['activate_feedback'])
-            && $config['activate_feedback'] === true )) )
-        ) {
+        if (enterprise_installed() && $config['activate_feedback'] !== false) {
             $header_feedback = '<div id="feedback-icon-header">';
             $header_feedback .= '<div id="modal-feedback-form" class="invisible"></div>';
             $header_feedback .= '<div id="msg-header" class="invisible"></div>';
diff --git a/pandora_console/include/functions_config.php b/pandora_console/include/functions_config.php
index a990c96398..ba2f1efa89 100644
--- a/pandora_console/include/functions_config.php
+++ b/pandora_console/include/functions_config.php
@@ -3335,7 +3335,7 @@ function config_process_config()
     }
 
     if (!isset($config['activate_feedback'])) {
-        config_update_value('activate_feedback', 1);
+        config_update_value('activate_feedback', true);
     }
 
     if (!isset($config['api_password'])) {

From b043717df5d9ba7077116b7fa96f234d19be9659 Mon Sep 17 00:00:00 2001
From: miguel angel rasteu <miguelangel.rasteu@pandorafms.com>
Date: Thu, 13 Apr 2023 13:49:05 +0200
Subject: [PATCH 3/4] #15263 created filter for modules

---
 .../godmode/agentes/module_manager.php        | 77 ++++++++++++++++++-
 1 file changed, 73 insertions(+), 4 deletions(-)

diff --git a/pandora_console/godmode/agentes/module_manager.php b/pandora_console/godmode/agentes/module_manager.php
index 3cb5ce9787..92bb1f224e 100644
--- a/pandora_console/godmode/agentes/module_manager.php
+++ b/pandora_console/godmode/agentes/module_manager.php
@@ -47,8 +47,74 @@ if (isset($policy_page) === false) {
     $policy_page = false;
 }
 
-$checked = (bool) get_parameter('checked');
+$checked = (bool) get_parameter('status_hierachy_mode');
+$status_hierachy_mode = (bool) get_parameter('status_hierachy_mode');
 $sec2 = (string) get_parameter('sec2');
+// Table for filter bar.
+$filterTable = new stdClass();
+$filterTable->class = 'filter-table-adv w100p';
+$filterTable->size[0] = '20%';
+$filterTable->size[1] = '20%';
+$filterTable->size[2] = '20%';
+$filterTable->size[3] = '20%';
+$filterTable->size[4] = '20%';
+$filterTable->data = [];
+$filterTable->cellstyle[0][0] = 'width:0';
+$filterTable->data[0][0] = __('Search');
+$filterTable->data[1][0] .= html_print_input_text(
+    'search_string',
+    $search_string,
+    '',
+    30,
+    255,
+    true,
+    false,
+    false,
+    '',
+    ''
+);
+$filterTable->data[0][0] .= html_print_input_hidden('search', 1, true);
+
+if ((bool) $policy_page === false) {
+    $filterTable->data[0][1] = __('Show in hierachy mode');
+    $filterTable->data[1][1] = html_print_checkbox_switch(
+        'status_hierachy_mode',
+        ((string) $checked),
+        ((string) $checked),
+        true,
+        false,
+        'onChange=change_mod_filter();'
+    );
+}
+
+$filterTable->data[1][2] = html_print_submit_button(
+    __('Filter'),
+    'filter',
+    false,
+    [
+        'icon'  => 'search',
+        'class' => 'float-right',
+        'mode'  => 'secondary mini',
+    ],
+    true
+);
+
+// Print filter table.
+echo '<form id="create_module_type" method="post" action="'.$url.'">';
+ui_toggle(
+    html_print_table($filterTable, true).'</form>',
+    '<span class="subsection_header_title">'.__('Filter').'</span>',
+    __('Filter'),
+    'filter',
+    true,
+    false,
+    '',
+    'white-box-content no_border',
+    'filter-datatable-main box-flat white_table_graph fixed_filter_bar'
+);
+echo '</form>';
+
+
 
 if (isset($id_agente) === false) {
     return;
@@ -1199,14 +1265,17 @@ html_print_div(
         if (/checked/.test(window.location)) {
             var url = window.location.toString();
             if (checked) {
-                window.location = url.replace("checked=false", "checked=true");
+                //window.location = url.replace("checked=0", "checked=1");
+                $("#checkbox-status_hierachy_mode").val('1');
             }
             else {
-                window.location = url.replace("checked=true", "checked=false");
+                //window.location = url.replace("checked=1", "checked=0");
+                $("#checkbox-status_hierachy_mode").val('0');
             }
         }
         else {
-            window.location = window.location + "&checked=true";
+            //window.location = window.location + "&checked=1";
+            $("#checkbox-status_hierachy_mode").val('1');
         }
     }
 

From 10c7d4dddb2046752d82a1b0e065dfa68718ac33 Mon Sep 17 00:00:00 2001
From: miguel angel rasteu <miguelangel.rasteu@pandorafms.com>
Date: Thu, 13 Apr 2023 13:54:11 +0200
Subject: [PATCH 4/4] #15263 created filter for modules

---
 pandora_console/godmode/agentes/module_manager.php | 1 +
 1 file changed, 1 insertion(+)

diff --git a/pandora_console/godmode/agentes/module_manager.php b/pandora_console/godmode/agentes/module_manager.php
index 92bb1f224e..f4881c0373 100644
--- a/pandora_console/godmode/agentes/module_manager.php
+++ b/pandora_console/godmode/agentes/module_manager.php
@@ -73,6 +73,7 @@ $filterTable->data[1][0] .= html_print_input_text(
     '',
     ''
 );
+
 $filterTable->data[0][0] .= html_print_input_hidden('search', 1, true);
 
 if ((bool) $policy_page === false) {