SearchKit - fix multiple displays on the same page
authorColeman Watts <coleman@civicrm.org>
Sun, 21 Nov 2021 17:34:29 +0000 (12:34 -0500)
committerColeman Watts <coleman@civicrm.org>
Sun, 21 Nov 2021 17:34:29 +0000 (12:34 -0500)
ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js

index ef6adc989fb985bc7a83c705514276d1765a3edc..e1e49cbf8d9ca845d7aeb031665693c94d9b17b1 100644 (file)
@@ -3,13 +3,6 @@
 
   // Trait provides base methods and properties common to all search display types
   angular.module('crmSearchDisplay').factory('searchDisplayBaseTrait', function(crmApi4) {
-    var ts = CRM.ts('org.civicrm.search_kit'),
-      runCount = 0;
-
-    // Get value from column data, specify either 'raw' or 'view'
-    function getValue(data, ret) {
-      return (data || {})[ret];
-    }
 
     // Return a base trait shared by all search display controllers
     // Gets mixed in using angular.extend()
@@ -20,6 +13,7 @@
       onChangeFilters: [],
       onPreRun: [],
       onPostRun: [],
+      _runCount: 0,
 
       // Called by the controller's $onInit function
       initializeDisplay: function($scope, $element) {
       // Call SearchDisplay.run and update ctrl.results and ctrl.rowCount
       runSearch: function(editedRow) {
         var ctrl = this,
-          requestId = ++runCount,
+          requestId = ++this._runCount,
           apiParams = this.getApiParams();
         this.loading = true;
         _.each(ctrl.onPreRun, function(callback) {
           callback.call(ctrl, apiParams);
         });
         return crmApi4('SearchDisplay', 'run', apiParams).then(function(results) {
-          if (requestId < runCount) {
+          if (requestId < ctrl._runCount) {
             return; // Another request started after this one
           }
           ctrl.results = results;
             callback.call(ctrl, results, 'success', editedRow);
           });
         }, function(error) {
-          if (requestId < runCount) {
+          if (requestId < ctrl._runCount) {
             return; // Another request started after this one
           }
           ctrl.results = [];