SearchKit - Remove redundant param from GetSearchTasks api
authorcolemanw <coleman@civicrm.org>
Sun, 28 May 2023 18:14:09 +0000 (14:14 -0400)
committercolemanw <coleman@civicrm.org>
Tue, 11 Jul 2023 21:10:03 +0000 (17:10 -0400)
ext/search_kit/Civi/Api4/Action/SearchDisplay/GetSearchTasks.php
ext/search_kit/ang/crmSearchAdmin/displays/common/searchAdminTasksConfig.component.js
ext/search_kit/ang/crmSearchTasks/traits/searchDisplayTasksTrait.service.js

index 17b3b91c530b072e7718589183c0ff95127513c4..ef6fe74dd7439300744ffaffd5958d75360bee78 100644 (file)
@@ -21,20 +21,17 @@ class GetSearchTasks extends \Civi\Api4\Generic\AbstractAction {
    */
   protected $display;
 
-  /**
-   * Name of entity
-   * @var string
-   * @required
-   */
-  protected $entity;
-
   /**
    * @param \Civi\Api4\Generic\Result $result
    * @throws \CRM_Core_Exception
    */
   public function _run(\Civi\Api4\Generic\Result $result) {
+    $this->loadSavedSearch();
+    $this->loadSearchDisplay();
+
     // Adding checkPermissions filters out actions the user is not allowed to perform
-    $entityName = ($this->entity === 'RelationshipCache') ? 'Relationship' : $this->entity;
+    $entityName = $this->savedSearch['api_entity'];
+    $entityName = ($entityName === 'RelationshipCache') ? 'Relationship' : $entityName;
     $entity = Entity::get($this->checkPermissions)->addWhere('name', '=', $entityName)
       ->addSelect('name', 'title_plural')
       ->setChain([
@@ -47,9 +44,6 @@ class GetSearchTasks extends \Civi\Api4\Generic\AbstractAction {
       return;
     }
 
-    $this->loadSavedSearch();
-    $this->loadSearchDisplay();
-
     $tasks = [$entity['name'] => []];
 
     if (array_key_exists($entity['name'], \CRM_Export_BAO_Export::getComponents())) {
@@ -233,9 +227,9 @@ class GetSearchTasks extends \Civi\Api4\Generic\AbstractAction {
     // 2. To allow tasks to be added/removed per search display
     //    Note: Use Events::W_LATE to do so after the tasks are filtered per search-display settings.
     // 3. To get a full list of Angular modules which provide tasks.
-    //    Note: That's why this hook needs the base-level array and not just the array of tasks for `$this->entity`.
+    //    Note: That's why this hook needs the base-level array and not just the array of tasks for `$entity`.
     //    Although it may seem wasteful to have extensions add tasks for all possible entities and then
-    //    discard most of it (all but the ones relevant to `$this->entity`), it's necessary to do it this way
+    //    discard most of it (all but the ones relevant to `$entity`), it's necessary to do it this way
     //    so that they can be declared as angular dependencies - see search_kit_civicrm_angularModules().
     $null = NULL;
     $checkPermissions = $this->checkPermissions;
index 11887b95709c3ee2f371333a2623f4dc7a3e9181..0451576f058421299a6641d390f432fcdc16d9d1 100644 (file)
@@ -14,7 +14,6 @@
 
       this.$onInit = function() {
         crmApi4('SearchDisplay', 'getSearchTasks', {
-          entity: ctrl.apiEntity,
           savedSearch: {api_entity: ctrl.apiEntity, api_params: ctrl.apiParams}
         }).then(function(tasks) {
           ctrl.allTasks = tasks;
index d7e916b919b2195b359b608386322ee4b7d21c39..56a439a23ed179f4f6ffd2ac676294295a8cee8e 100644 (file)
@@ -19,7 +19,7 @@
         }
         fetchedMetadata = crmApi4({
           entityInfo: ['Entity', 'get', {select: ['name', 'title', 'title_plural', 'primary_key'], where: [['name', '=', mngr.getEntityName()]]}, 0],
-          tasks: ['SearchDisplay', 'getSearchTasks', {entity: displayCtrl.apiEntity, savedSearch: displayCtrl.search, display: displayCtrl.display}]
+          tasks: ['SearchDisplay', 'getSearchTasks', {savedSearch: displayCtrl.search, display: displayCtrl.display}]
         }).then(function(result) {
           mngr.entityInfo = result.entityInfo;
           mngr.tasks = result.tasks;