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