From aef17937a6d1bf00d2ca446bf3c5fc81644b3b92 Mon Sep 17 00:00:00 2001 From: Eileen McNaughton Date: Tue, 4 Jul 2023 08:21:07 +1200 Subject: [PATCH] Add weights to contact search actions --- CRM/Contact/BAO/Contact.php | 11 +++++++---- CRM/Contact/Form/Search.php | 4 ++-- CRM/Contact/Selector.php | 17 +++++++++-------- CRM/Core/Action.php | 2 +- 4 files changed, 19 insertions(+), 15 deletions(-) diff --git a/CRM/Contact/BAO/Contact.php b/CRM/Contact/BAO/Contact.php index b4c5d7ea8a..a925762dd4 100644 --- a/CRM/Contact/BAO/Contact.php +++ b/CRM/Contact/BAO/Contact.php @@ -2804,7 +2804,7 @@ LEFT JOIN civicrm_email ON ( civicrm_contact.id = civicrm_email.contact_id ) $menu = [ 'view' => [ 'title' => ts('View Contact'), - 'weight' => 0, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), 'ref' => 'view-contact', 'class' => 'no-popup', 'key' => 'view', @@ -2812,7 +2812,7 @@ LEFT JOIN civicrm_email ON ( civicrm_contact.id = civicrm_email.contact_id ) ], 'add' => [ 'title' => ts('Edit Contact'), - 'weight' => 0, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), 'ref' => 'edit-contact', 'class' => 'no-popup', 'key' => 'add', @@ -2820,7 +2820,7 @@ LEFT JOIN civicrm_email ON ( civicrm_contact.id = civicrm_email.contact_id ) ], 'delete' => [ 'title' => ts('Delete Contact'), - 'weight' => 0, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::DELETE), 'ref' => 'delete-contact', 'key' => 'delete', 'permissions' => ['access deleted contacts', 'delete contacts'], @@ -2957,7 +2957,7 @@ LEFT JOIN civicrm_email ON ( civicrm_contact.id = civicrm_email.contact_id ) 'key' => 'print', 'tab' => 'print', 'href' => CRM_Utils_System::url('civicrm/contact/view/print', - "reset=1&print=1" + 'reset=1&print=1' ), 'class' => 'print', 'icon' => 'crm-i fa-print', @@ -3056,6 +3056,7 @@ LEFT JOIN civicrm_email ON ( civicrm_contact.id = civicrm_email.contact_id ) 'ref' => $values['ref'], 'class' => $values['class'] ?? NULL, 'key' => $values['key'], + 'weight' => $values['weight'], ]; continue; } @@ -3073,6 +3074,7 @@ LEFT JOIN civicrm_email ON ( civicrm_contact.id = civicrm_email.contact_id ) 'tab' => $values['tab'] ?? NULL, 'class' => $values['class'] ?? NULL, 'key' => $values['key'], + 'weight' => $values['weight'], ]; } else { @@ -3096,6 +3098,7 @@ LEFT JOIN civicrm_email ON ( civicrm_contact.id = civicrm_email.contact_id ) 'class' => $value['class'] ?? NULL, 'icon' => $value['icon'] ?? NULL, 'key' => $value['key'], + 'weight' => $value['weight'], ]; } } diff --git a/CRM/Contact/Form/Search.php b/CRM/Contact/Form/Search.php index 475366a5b9..575b3d38c2 100644 --- a/CRM/Contact/Form/Search.php +++ b/CRM/Contact/Form/Search.php @@ -682,8 +682,8 @@ class CRM_Contact_Form_Search extends CRM_Core_Form_Search { // show the context menu only when we’re not searching for deleted contacts; CRM-5673 if (empty($this->_formValues['deleted_contacts'])) { $menuItems = CRM_Contact_BAO_Contact::contextMenu(); - $primaryActions = CRM_Utils_Array::value('primaryActions', $menuItems, []); - $this->_contextMenu = CRM_Utils_Array::value('moreActions', $menuItems, []); + $primaryActions = $menuItems['primaryActions'] ?? []; + $this->_contextMenu = $menuItems['moreActions'] ?? []; $this->assign('contextMenu', $primaryActions + $this->_contextMenu); } diff --git a/CRM/Contact/Selector.php b/CRM/Contact/Selector.php index 888554112b..3f4035144a 100644 --- a/CRM/Contact/Selector.php +++ b/CRM/Contact/Selector.php @@ -262,7 +262,7 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se 'qs' => "reset=1&cid=%%id%%{$searchContext}{$extraParams}", 'title' => ts('View Contact Details'), 'ref' => 'view-contact', - 'weight' => -20, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::VIEW), ], CRM_Core_Action::UPDATE => [ 'name' => ts('Edit'), @@ -271,36 +271,37 @@ class CRM_Contact_Selector extends CRM_Core_Selector_Base implements CRM_Core_Se 'qs' => "reset=1&action=update&cid=%%id%%{$searchContext}{$extraParams}", 'title' => ts('Edit Contact Details'), 'ref' => 'edit-contact', - 'weight' => -10, + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::UPDATE), ], ]; $config = CRM_Core_Config::singleton(); //CRM-16552: mapAPIKey is not mandatory as google no longer requires an API Key - if ($config->mapProvider && ($config->mapAPIKey || $config->mapProvider == 'Google')) { + if (\Civi::settings()->get('mapProvider') === 'Google' || (\Civi::settings()->get('mapProvider') && \Civi::settings()->get('mapAPIKey'))) { self::$_links[CRM_Core_Action::MAP] = [ 'name' => ts('Map'), 'url' => 'civicrm/contact/map', 'qs' => "reset=1&cid=%%id%%{$searchContext}{$extraParams}", 'title' => ts('Map Contact'), + 'weight' => CRM_Core_Action::getWeight(CRM_Core_Action::MAP), ]; } // Adding Context Menu Links in more action if ($contextMenu) { $counter = 7000; - foreach ($contextMenu as $key => $value) { + foreach ($contextMenu as $value) { $contextVal = '&context=' . $value['key']; - if ($value['key'] == 'delete') { + if ($value['key'] === 'delete') { $contextVal = $searchContext; } $url = "civicrm/contact/view/{$value['key']}"; $qs = "reset=1&action=add&cid=%%id%%{$contextVal}{$extraParams}"; - if ($value['key'] == 'activity') { + if ($value['key'] === 'activity') { $qs = "action=browse&selectedChild=activity&reset=1&cid=%%id%%{$extraParams}"; } - elseif ($value['key'] == 'email') { - $url = "civicrm/contact/view/activity"; + elseif ($value['key'] === 'email') { + $url = 'civicrm/contact/view/activity'; $qs = "atype=3&action=add&reset=1&cid=%%id%%{$extraParams}"; } diff --git a/CRM/Core/Action.php b/CRM/Core/Action.php index 932c4e0457..cb6ae64fc8 100644 --- a/CRM/Core/Action.php +++ b/CRM/Core/Action.php @@ -138,7 +138,7 @@ class CRM_Core_Action { self::MAP => [ 'name' => 'map', 'label' => ts('Map'), - 'weight' => 0, + 'weight' => 10, 'icon' => 'fa-cog', ], self::COPY => [ -- 2.25.1