diff --git a/CHANGELOG.md b/CHANGELOG.md index 1027cf812cf08c5fa3e91d0217eee6a1a274ed8c..90a1651b9ee8bf354cd2f3357e30c2d17eece7e6 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 1a94e1dd8fbda4a30cf23199d9d49c7a66165328..4bd7c327e803ed4a9852f8ac320100774f63e944 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 d0d5cb9575308bef15dcfa3e8fa38031fd75d6cb..f03a485806c9c16fc20e5351468a1efde99d14a3 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 82ae1d16a066741e0b60dc373f86780e0bbeab90..26fb51908fbe733103e0b32eb0f636c45c523c9a 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 ade051bd2e136445776617982313ed36ebedbc23..c77a785d337338af0218b82bada80258a3317726 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 6e29db7d1f1e7b80f1ecf790ea4c71239de08826..4b63d1a0133a5b64242967e02bdda1ef97a8cc1f 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 a0874c7d3193672e0134a0b193d4e8976ca9ed24..4bfdcef9f593ba9e3d1db151c48cc4332076efd0 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 975fa87b31e8459f238a9597371c3e9cc5ad7da5..27f39f9b05d298d6a42c452687eb506d4b06adfc 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 9bcee7d2fbed4285ba5cce19ec8cc8fcb86bc4b9..d2f7cbc52a5b24141f3405527ba804ca9ba0f9c1 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 fc551ff0076d2e822918ca36373bfb45ba025aff..45c0c4976827ef75f3d94713109e7836fd080234 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 35b8f3fd9def1e9293d39d4db71dda32472b1fd6..75a77ac7f8b260bc406579e9475a44b165d50ce6 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 853b5b485493ada022d9bb16e5a9d78110f05bee..d97b26254c5e70b6a9a9158cd10acfd2f654640d 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 d69ecce03df9614f2ecc6aaf7690ee0d4cf8a9d5..400045fbcd31f98130e8968ca3857be8eb451cfe 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 5a2a812a65d603ab2fb4a3bef3710affc0b121f4..c36037193fc11e08c1123e0a00f3892228c0b4af 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 b80d5704ba7cd9aa5266de5b257b74a2eb1a2406..b6b741c2b9dcfb984368a6296747ac9c629afdde 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 b497eb23e852cde841d87a9177edd0062be2950e..519e7f270889bdd16da7c2652df2cfec7aff4998 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>