From 3b9d14d8d724f3ea20a826ee069ae8544a4d6ec0 Mon Sep 17 00:00:00 2001
From: Jaap Jansma <jaap.jansma@civicoop.org>
Date: Thu, 25 Feb 2021 15:15:32 +0100
Subject: [PATCH] Added weight to search/reports outputs.

---
 CHANGELOG.md                                           |  2 ++
 CRM/Contact/DataProcessorContactSearch.php             |  5 +++++
 CRM/DataprocessorSearch/ActivitySearch.php             |  5 +++++
 CRM/DataprocessorSearch/CaseSearch.php                 |  5 +++++
 CRM/DataprocessorSearch/ContributionSearch.php         |  5 +++++
 CRM/DataprocessorSearch/MembershipSearch.php           |  5 +++++
 CRM/DataprocessorSearch/ParticipantSearch.php          |  5 +++++
 CRM/DataprocessorSearch/Search.php                     |  5 +++++
 Civi/DataProcessor/Output/UIOutputHelper.php           |  3 +++
 .../OutputConfiguration/DataProcessorContactSearch.tpl | 10 ++++++++++
 .../Form/OutputConfiguration/ActivitySearch.tpl        | 10 ++++++++++
 .../Form/OutputConfiguration/CaseSearch.tpl            | 10 ++++++++++
 .../Form/OutputConfiguration/ContributionSearch.tpl    | 10 ++++++++++
 .../Form/OutputConfiguration/MembershipSearch.tpl      | 10 ++++++++++
 .../Form/OutputConfiguration/ParticipantSearch.tpl     | 10 ++++++++++
 .../Form/OutputConfiguration/Search.tpl                | 10 ++++++++++
 16 files changed, 110 insertions(+)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1027cf81..90a1651b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,7 @@
 # Version 1.33 (not yet released)
 
+* Added weight to search/reports outputs.
+
 # Version 1.32
 
 * Added Field Output Handler for clean file names.  E.g. change `Expense/2/receipt_802fd5cd009e0a39cf2202f4bfb9c0b4.pdf`
diff --git a/CRM/Contact/DataProcessorContactSearch.php b/CRM/Contact/DataProcessorContactSearch.php
index 1a94e1dd..4bd7c327 100644
--- a/CRM/Contact/DataProcessorContactSearch.php
+++ b/CRM/Contact/DataProcessorContactSearch.php
@@ -65,6 +65,7 @@ class CRM_Contact_DataProcessorContactSearch implements UIFormOutputInterface {
     // navigation field
     $navigationOptions = $navigation->getNavigationOptions();
     $form->add('select', 'navigation_parent_path', ts('Parent Menu'), array('' => ts('- select -')) + $navigationOptions, true);
+    $form->add('text', 'navigation_weight', E::ts('Weight'), array('class' => 'huge'), false);
 
     $defaults = array();
     if ($output) {
@@ -84,6 +85,9 @@ class CRM_Contact_DataProcessorContactSearch implements UIFormOutputInterface {
         if (isset($output['configuration']['navigation_parent_path'])) {
           $defaults['navigation_parent_path'] = $output['configuration']['navigation_parent_path'];
         }
+        if (isset($output['configuration']['navigation_weight'])) {
+          $defaults['navigation_weight'] = $output['configuration']['navigation_weight'];
+        }
         if (isset($output['configuration']['hide_id_field'])) {
           $defaults['hide_id_field'] = $output['configuration']['hide_id_field'];
         }
@@ -135,6 +139,7 @@ class CRM_Contact_DataProcessorContactSearch implements UIFormOutputInterface {
     $configuration['hidden_fields'] = $submittedValues['hidden_fields'];
     $configuration['no_result_text'] = $submittedValues['no_result_text'];
     $configuration['navigation_parent_path'] = $submittedValues['navigation_parent_path'];
+    $configuration['navigation_weight'] = $submittedValues['navigation_weight'];
     $configuration['hide_id_field'] = $submittedValues['hide_id_field'];
     $configuration['help_text'] = $submittedValues['help_text'];
     $configuration['expanded_search'] = isset($submittedValues['expanded_search']) ? $submittedValues['expanded_search'] : false;
diff --git a/CRM/DataprocessorSearch/ActivitySearch.php b/CRM/DataprocessorSearch/ActivitySearch.php
index d0d5cb95..f03a4858 100644
--- a/CRM/DataprocessorSearch/ActivitySearch.php
+++ b/CRM/DataprocessorSearch/ActivitySearch.php
@@ -63,6 +63,7 @@ class CRM_DataprocessorSearch_ActivitySearch implements UIFormOutputInterface {
     // navigation field
     $navigationOptions = $navigation->getNavigationOptions();
     $form->add('select', 'navigation_parent_path', ts('Parent Menu'), array('' => ts('- select -')) + $navigationOptions, true);
+    $form->add('text', 'navigation_weight', E::ts('Weight'), array('class' => 'huge'), false);
 
     $defaults = array();
     if ($output) {
@@ -76,6 +77,9 @@ class CRM_DataprocessorSearch_ActivitySearch implements UIFormOutputInterface {
         if (isset($output['configuration']['navigation_parent_path'])) {
           $defaults['navigation_parent_path'] = $output['configuration']['navigation_parent_path'];
         }
+        if (isset($output['configuration']['navigation_weight'])) {
+          $defaults['navigation_weight'] = $output['configuration']['navigation_weight'];
+        }
         if (isset($output['configuration']['hide_id_field'])) {
           $defaults['hide_id_field'] = $output['configuration']['hide_id_field'];
         }
@@ -123,6 +127,7 @@ class CRM_DataprocessorSearch_ActivitySearch implements UIFormOutputInterface {
     $output['permission'] = $submittedValues['permission'];
     $configuration['activity_id_field'] = $submittedValues['activity_id_field'];
     $configuration['navigation_parent_path'] = $submittedValues['navigation_parent_path'];
+    $configuration['navigation_weight'] = $submittedValues['navigation_weight'];
     $configuration['hide_id_field'] = $submittedValues['hide_id_field'];
     $configuration['no_result_text'] = $submittedValues['no_result_text'];
     $configuration['hidden_fields'] = $submittedValues['hidden_fields'];
diff --git a/CRM/DataprocessorSearch/CaseSearch.php b/CRM/DataprocessorSearch/CaseSearch.php
index 82ae1d16..26fb5190 100644
--- a/CRM/DataprocessorSearch/CaseSearch.php
+++ b/CRM/DataprocessorSearch/CaseSearch.php
@@ -69,6 +69,7 @@ class CRM_DataprocessorSearch_CaseSearch implements UIFormOutputInterface {
     // navigation field
     $navigationOptions = $navigation->getNavigationOptions();
     $form->add('select', 'navigation_parent_path', ts('Parent Menu'), array('' => ts('- select -')) + $navigationOptions, true);
+    $form->add('text', 'navigation_weight', E::ts('Weight'), array('class' => 'huge'), false);
 
     $defaults = array();
     if ($output) {
@@ -85,6 +86,9 @@ class CRM_DataprocessorSearch_CaseSearch implements UIFormOutputInterface {
         if (isset($output['configuration']['navigation_parent_path'])) {
           $defaults['navigation_parent_path'] = $output['configuration']['navigation_parent_path'];
         }
+        if (isset($output['configuration']['navigation_weight'])) {
+          $defaults['navigation_weight'] = $output['configuration']['navigation_weight'];
+        }
         if (isset($output['configuration']['hide_id_fields'])) {
           $defaults['hide_id_fields'] = $output['configuration']['hide_id_fields'];
         }
@@ -138,6 +142,7 @@ class CRM_DataprocessorSearch_CaseSearch implements UIFormOutputInterface {
     $configuration['no_result_text'] = $submittedValues['no_result_text'];
     $configuration['hidden_fields'] = $submittedValues['hidden_fields'];
     $configuration['navigation_parent_path'] = $submittedValues['navigation_parent_path'];
+    $configuration['navigation_weight'] = $submittedValues['navigation_weight'];
     $configuration['hide_id_fields'] = $submittedValues['hide_id_fields'];
     $configuration['help_text'] = $submittedValues['help_text'];
     $configuration['expanded_search'] = isset($submittedValues['expanded_search']) ? $submittedValues['expanded_search'] : false;
diff --git a/CRM/DataprocessorSearch/ContributionSearch.php b/CRM/DataprocessorSearch/ContributionSearch.php
index ade051bd..c77a785d 100644
--- a/CRM/DataprocessorSearch/ContributionSearch.php
+++ b/CRM/DataprocessorSearch/ContributionSearch.php
@@ -63,6 +63,7 @@ class CRM_DataprocessorSearch_ContributionSearch implements UIFormOutputInterfac
     // navigation field
     $navigationOptions = $navigation->getNavigationOptions();
     $form->add('select', 'navigation_parent_path', ts('Parent Menu'), array('' => ts('- select -')) + $navigationOptions, true);
+    $form->add('text', 'navigation_weight', E::ts('Weight'), array('class' => 'huge'), false);
 
     $defaults = array();
     if ($output) {
@@ -76,6 +77,9 @@ class CRM_DataprocessorSearch_ContributionSearch implements UIFormOutputInterfac
         if (isset($output['configuration']['navigation_parent_path'])) {
           $defaults['navigation_parent_path'] = $output['configuration']['navigation_parent_path'];
         }
+        if (isset($output['configuration']['navigation_weight'])) {
+          $defaults['navigation_weight'] = $output['configuration']['navigation_weight'];
+        }
         if (isset($output['configuration']['no_result_text'])) {
           $defaults['no_result_text'] = $output['configuration']['no_result_text'];
         } else {
@@ -123,6 +127,7 @@ class CRM_DataprocessorSearch_ContributionSearch implements UIFormOutputInterfac
     $output['permission'] = $submittedValues['permission'];
     $configuration['contribution_id_field'] = $submittedValues['contribution_id_field'];
     $configuration['navigation_parent_path'] = $submittedValues['navigation_parent_path'];
+    $configuration['navigation_weight'] = $submittedValues['navigation_weight'];
     $configuration['hide_id_field'] = $submittedValues['hide_id_field'];
     $configuration['hidden_fields'] = $submittedValues['hidden_fields'];
     $configuration['no_result_text'] = $submittedValues['no_result_text'];
diff --git a/CRM/DataprocessorSearch/MembershipSearch.php b/CRM/DataprocessorSearch/MembershipSearch.php
index 6e29db7d..4b63d1a0 100644
--- a/CRM/DataprocessorSearch/MembershipSearch.php
+++ b/CRM/DataprocessorSearch/MembershipSearch.php
@@ -63,6 +63,7 @@ class CRM_DataprocessorSearch_MembershipSearch implements UIFormOutputInterface
     // navigation field
     $navigationOptions = $navigation->getNavigationOptions();
     $form->add('select', 'navigation_parent_path', ts('Parent Menu'), array('' => ts('- select -')) + $navigationOptions, true);
+    $form->add('text', 'navigation_weight', E::ts('Weight'), array('class' => 'huge'), false);
 
     $defaults = array();
     if ($output) {
@@ -81,6 +82,9 @@ class CRM_DataprocessorSearch_MembershipSearch implements UIFormOutputInterface
         if (isset($output['configuration']['navigation_parent_path'])) {
           $defaults['navigation_parent_path'] = $output['configuration']['navigation_parent_path'];
         }
+        if (isset($output['configuration']['navigation_weight'])) {
+          $defaults['navigation_weight'] = $output['configuration']['navigation_weight'];
+        }
         if (isset($output['configuration']['hide_id_field'])) {
           $defaults['hide_id_field'] = $output['configuration']['hide_id_field'];
         }
@@ -123,6 +127,7 @@ class CRM_DataprocessorSearch_MembershipSearch implements UIFormOutputInterface
     $output['permission'] = $submittedValues['permission'];
     $configuration['membership_id_field'] = $submittedValues['membership_id_field'];
     $configuration['navigation_parent_path'] = $submittedValues['navigation_parent_path'];
+    $configuration['navigation_weight'] = $submittedValues['navigation_weight'];
     $configuration['hide_id_field'] = $submittedValues['hide_id_field'];
     $configuration['no_result_text'] = $submittedValues['no_result_text'];
     $configuration['hidden_fields'] = $submittedValues['hidden_fields'];
diff --git a/CRM/DataprocessorSearch/ParticipantSearch.php b/CRM/DataprocessorSearch/ParticipantSearch.php
index a0874c7d..4bfdcef9 100644
--- a/CRM/DataprocessorSearch/ParticipantSearch.php
+++ b/CRM/DataprocessorSearch/ParticipantSearch.php
@@ -63,6 +63,7 @@ class CRM_DataprocessorSearch_ParticipantSearch implements UIFormOutputInterface
     // navigation field
     $navigationOptions = $navigation->getNavigationOptions();
     $form->add('select', 'navigation_parent_path', ts('Parent Menu'), array('' => ts('- select -')) + $navigationOptions, true);
+    $form->add('text', 'navigation_weight', E::ts('Weight'), array('class' => 'huge'), false);
 
     $defaults = array();
     if ($output) {
@@ -76,6 +77,9 @@ class CRM_DataprocessorSearch_ParticipantSearch implements UIFormOutputInterface
         if (isset($output['configuration']['navigation_parent_path'])) {
           $defaults['navigation_parent_path'] = $output['configuration']['navigation_parent_path'];
         }
+        if (isset($output['configuration']['navigation_weight'])) {
+          $defaults['navigation_weight'] = $output['configuration']['navigation_weight'];
+        }
         if (isset($output['configuration']['hide_id_field'])) {
           $defaults['hide_id_field'] = $output['configuration']['hide_id_field'];
         }
@@ -124,6 +128,7 @@ class CRM_DataprocessorSearch_ParticipantSearch implements UIFormOutputInterface
     $configuration['participant_id_field'] = $submittedValues['participant_id_field'];
     $configuration['no_result_text'] = $submittedValues['no_result_text'];
     $configuration['navigation_parent_path'] = $submittedValues['navigation_parent_path'];
+    $configuration['navigation_weight'] = $submittedValues['navigation_weight'];
     $configuration['hide_id_field'] = $submittedValues['hide_id_field'];
     $configuration['hidden_fields'] = $submittedValues['hidden_fields'];
     $configuration['help_text'] = $submittedValues['help_text'];
diff --git a/CRM/DataprocessorSearch/Search.php b/CRM/DataprocessorSearch/Search.php
index 975fa87b..27f39f9b 100644
--- a/CRM/DataprocessorSearch/Search.php
+++ b/CRM/DataprocessorSearch/Search.php
@@ -66,6 +66,7 @@ class CRM_DataprocessorSearch_Search implements UIFormOutputInterface {
     // navigation field
     $navigationOptions = $navigation->getNavigationOptions();
     $form->add('select', 'navigation_parent_path', ts('Parent Menu'), array('' => ts('- select -')) + $navigationOptions, true);
+    $form->add('text', 'navigation_weight', E::ts('Weight'), array('class' => 'huge'), false);
 
     $defaults = array();
     if ($output) {
@@ -84,6 +85,9 @@ class CRM_DataprocessorSearch_Search implements UIFormOutputInterface {
         if (isset($output['configuration']['navigation_parent_path'])) {
           $defaults['navigation_parent_path'] = $output['configuration']['navigation_parent_path'];
         }
+        if (isset($output['configuration']['navigation_weight'])) {
+          $defaults['navigation_weight'] = $output['configuration']['navigation_weight'];
+        }
         if (isset($output['configuration']['hide_id_field'])) {
           $defaults['hide_id_field'] = $output['configuration']['hide_id_field'];
         }
@@ -131,6 +135,7 @@ class CRM_DataprocessorSearch_Search implements UIFormOutputInterface {
     $output['permission'] = $submittedValues['permission'];
     $configuration['id_field'] = $submittedValues['id_field'];
     $configuration['navigation_parent_path'] = $submittedValues['navigation_parent_path'];
+    $configuration['navigation_weight'] = $submittedValues['navigation_weight'];
     $configuration['no_result_text'] = $submittedValues['no_result_text'];
     $configuration['hide_id_field'] = $submittedValues['hide_id_field'];
     $configuration['hidden_fields'] = $submittedValues['hidden_fields'];
diff --git a/Civi/DataProcessor/Output/UIOutputHelper.php b/Civi/DataProcessor/Output/UIOutputHelper.php
index 9bcee7d2..d2f7cbc5 100644
--- a/Civi/DataProcessor/Output/UIOutputHelper.php
+++ b/Civi/DataProcessor/Output/UIOutputHelper.php
@@ -86,6 +86,9 @@ class UIOutputHelper {
           if (isset($output['permission'])) {
             $item['permission'] = $output['permission'];
           }
+          if (isset($output['configuration']['navigation_weight'])) {
+            $item['weight'] = $output['configuration']['navigation_weight'];
+          }
           _dataprocessor_civix_insert_navigation_menu($menu, $output['configuration']['navigation_parent_path'], $item);
         }
       }
diff --git a/templates/CRM/Contact/Form/OutputConfiguration/DataProcessorContactSearch.tpl b/templates/CRM/Contact/Form/OutputConfiguration/DataProcessorContactSearch.tpl
index fc551ff0..45c0c497 100644
--- a/templates/CRM/Contact/Form/OutputConfiguration/DataProcessorContactSearch.tpl
+++ b/templates/CRM/Contact/Form/OutputConfiguration/DataProcessorContactSearch.tpl
@@ -4,6 +4,16 @@
         <div class="content">{$form.navigation_parent_path.html}</div>
         <div class="clear"></div>
     </div>
+    <div class="crm-section">
+      <div class="label">{$form.navigation_weight.label}</div>
+      <div class="content">{$form.navigation_weight.html}
+        <p class="description">
+          {ts 1='https://lab.civicrm.org/dev/core/-/issues/2424'}This will define the order in the navigation menu. A lower value means more at the top.  <br />
+            Up to CiviCRM 5.36 this seems to be broken in CiviCRM Core. See this <a href="%1">bug report</a>
+          {/ts}</p>
+      </div>
+      <div class="clear"></div>
+    </div>
     <div class="crm-section">
         <div class="label">{$form.permission.label}</div>
         <div class="content">{$form.permission.html}</div>
diff --git a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.tpl b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.tpl
index 35b8f3fd..75a77ac7 100644
--- a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ActivitySearch.tpl
@@ -4,6 +4,16 @@
         <div class="content">{$form.navigation_parent_path.html}</div>
         <div class="clear"></div>
     </div>
+    <div class="crm-section">
+      <div class="label">{$form.navigation_weight.label}</div>
+      <div class="content">{$form.navigation_weight.html}
+        <p class="description">
+          {ts 1='https://lab.civicrm.org/dev/core/-/issues/2424'}This will define the order in the navigation menu. A lower value means more at the top.  <br />
+            Up to CiviCRM 5.36 this seems to be broken in CiviCRM Core. See this <a href="%1">bug report</a>
+          {/ts}</p>
+      </div>
+      <div class="clear"></div>
+    </div>
     <div class="crm-section">
         <div class="label">{$form.permission.label}</div>
         <div class="content">{$form.permission.html}</div>
diff --git a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/CaseSearch.tpl b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/CaseSearch.tpl
index 853b5b48..d97b2625 100644
--- a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/CaseSearch.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/CaseSearch.tpl
@@ -4,6 +4,16 @@
         <div class="content">{$form.navigation_parent_path.html}</div>
         <div class="clear"></div>
     </div>
+    <div class="crm-section">
+      <div class="label">{$form.navigation_weight.label}</div>
+      <div class="content">{$form.navigation_weight.html}
+        <p class="description">
+          {ts 1='https://lab.civicrm.org/dev/core/-/issues/2424'}This will define the order in the navigation menu. A lower value means more at the top.  <br />
+            Up to CiviCRM 5.36 this seems to be broken in CiviCRM Core. See this <a href="%1">bug report</a>
+          {/ts}</p>
+      </div>
+      <div class="clear"></div>
+    </div>
     <div class="crm-section">
         <div class="label">{$form.permission.label}</div>
         <div class="content">{$form.permission.html}</div>
diff --git a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ContributionSearch.tpl b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ContributionSearch.tpl
index d69ecce0..400045fb 100644
--- a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ContributionSearch.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ContributionSearch.tpl
@@ -4,6 +4,16 @@
         <div class="content">{$form.navigation_parent_path.html}</div>
         <div class="clear"></div>
     </div>
+    <div class="crm-section">
+      <div class="label">{$form.navigation_weight.label}</div>
+      <div class="content">{$form.navigation_weight.html}
+        <p class="description">
+          {ts 1='https://lab.civicrm.org/dev/core/-/issues/2424'}This will define the order in the navigation menu. A lower value means more at the top.  <br />
+            Up to CiviCRM 5.36 this seems to be broken in CiviCRM Core. See this <a href="%1">bug report</a>
+          {/ts}</p>
+      </div>
+      <div class="clear"></div>
+    </div>
     <div class="crm-section">
         <div class="label">{$form.permission.label}</div>
         <div class="content">{$form.permission.html}</div>
diff --git a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/MembershipSearch.tpl b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/MembershipSearch.tpl
index 5a2a812a..c3603719 100644
--- a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/MembershipSearch.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/MembershipSearch.tpl
@@ -4,6 +4,16 @@
         <div class="content">{$form.navigation_parent_path.html}</div>
         <div class="clear"></div>
     </div>
+    <div class="crm-section">
+      <div class="label">{$form.navigation_weight.label}</div>
+      <div class="content">{$form.navigation_weight.html}
+        <p class="description">
+          {ts 1='https://lab.civicrm.org/dev/core/-/issues/2424'}This will define the order in the navigation menu. A lower value means more at the top.  <br />
+            Up to CiviCRM 5.36 this seems to be broken in CiviCRM Core. See this <a href="%1">bug report</a>
+          {/ts}</p>
+      </div>
+      <div class="clear"></div>
+    </div>
     <div class="crm-section">
         <div class="label">{$form.permission.label}</div>
         <div class="content">{$form.permission.html}</div>
diff --git a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ParticipantSearch.tpl b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ParticipantSearch.tpl
index b80d5704..b6b741c2 100644
--- a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ParticipantSearch.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/ParticipantSearch.tpl
@@ -4,6 +4,16 @@
         <div class="content">{$form.navigation_parent_path.html}</div>
         <div class="clear"></div>
     </div>
+    <div class="crm-section">
+      <div class="label">{$form.navigation_weight.label}</div>
+      <div class="content">{$form.navigation_weight.html}
+        <p class="description">
+          {ts 1='https://lab.civicrm.org/dev/core/-/issues/2424'}This will define the order in the navigation menu. A lower value means more at the top.  <br />
+            Up to CiviCRM 5.36 this seems to be broken in CiviCRM Core. See this <a href="%1">bug report</a>
+          {/ts}</p>
+      </div>
+      <div class="clear"></div>
+    </div>
     <div class="crm-section">
         <div class="label">{$form.permission.label}</div>
         <div class="content">{$form.permission.html}</div>
diff --git a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/Search.tpl b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/Search.tpl
index b497eb23..519e7f27 100644
--- a/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/Search.tpl
+++ b/templates/CRM/DataprocessorSearch/Form/OutputConfiguration/Search.tpl
@@ -4,6 +4,16 @@
         <div class="content">{$form.navigation_parent_path.html}</div>
         <div class="clear"></div>
     </div>
+    <div class="crm-section">
+      <div class="label">{$form.navigation_weight.label}</div>
+      <div class="content">{$form.navigation_weight.html}
+        <p class="description">
+          {ts 1='https://lab.civicrm.org/dev/core/-/issues/2424'}This will define the order in the navigation menu. A lower value means more at the top.  <br />
+           Up to CiviCRM 5.36 this seems to be broken in CiviCRM Core. See this <a href="%1">bug report</a>
+          {/ts}</p>
+      </div>
+      <div class="clear"></div>
+    </div>
     <div class="crm-section">
         <div class="label">{$form.permission.label}</div>
         <div class="content">{$form.permission.html}</div>
-- 
GitLab