From c7441a64b7b650afab4a77b69f7f74f0cffaf25b Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Mon, 14 Feb 2022 10:30:37 -0500 Subject: [PATCH] SearchKit - Customizable "No Results" text --- .../displays/searchAdminDisplayTable.html | 4 ++++ .../crmSearchAdminSearchListing.component.js | 15 ++++++++++++++- .../crmSearchDisplayTableBody.html | 2 +- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.html b/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.html index 4794ea0e40..3a8a214ff8 100644 --- a/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.html +++ b/ext/search_kit/ang/crmSearchAdmin/displays/searchAdminDisplayTable.html @@ -28,6 +28,10 @@ +
+ + +
diff --git a/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js b/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js index 46cea6c5a7..110ce193a1 100644 --- a/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js +++ b/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js @@ -64,12 +64,25 @@ this.initializeDisplay($scope, $element); // Keep tab counts up-to-date - put rowCount in current tab if there are no other filters $scope.$watch('$ctrl.rowCount', function(val) { - if (typeof val === 'number' && angular.equals(['has_base'], _.keys(ctrl.filters))) { + if (typeof val === 'number' && angular.equals(['has_base'], getActiveFilters())) { ctrl.tabCount = val; } }); + // Customize the noResultsText + $scope.$watch('$ctrl.filters', function() { + ctrl.settings.noResultsText = (angular.equals(['has_base'], getActiveFilters())) ? + ts('Welcome to Search Kit. Click the New Search button above to start composing your first search.') : + ts('No Saved Searches match filter criteria.'); + }, true); }; + // Get the names of in-use filters + function getActiveFilters() { + return _.keys(_.pick(ctrl.filters, function(val) { + return val !== null && (val === true || val === false || val.length); + })); + } + this.onPostRun.push(function(result) { _.each(result, function(row) { row.permissionToEdit = CRM.checkPerm('all CiviCRM permissions and ACLs') || !_.includes(row.data.display_acl_bypass, true); diff --git a/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTableBody.html b/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTableBody.html index 1bb55193a4..e1310ae63b 100644 --- a/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTableBody.html +++ b/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTableBody.html @@ -11,7 +11,7 @@

- {{:: ts('None Found') }} + {{ $ctrl.settings.noResultsText || ts('None Found') }}

-- 2.25.1