From 72817052116b41b3eb8ff89c8aeef496a2a4d489 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Mon, 16 Aug 2021 14:58:24 -0400 Subject: [PATCH] SearchKit - Refactor refresh code into traits --- .../crmSearchAdminResultsTable.component.js | 5 ----- .../ang/crmSearchDisplay/colType/field.html | 2 +- .../traits/searchDisplayBaseTrait.service.js | 6 +++--- .../crmSearchDisplayList.component.js | 5 ----- .../crmSearchDisplayTable.component.js | 13 ------------- .../traits/searchDisplayTasksTrait.service.js | 11 +++++++++++ 6 files changed, 15 insertions(+), 27 deletions(-) diff --git a/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.component.js b/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.component.js index 2bc06594bb..fbf615db77 100644 --- a/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.component.js +++ b/ext/search_kit/ang/crmSearchAdmin/resultsTable/crmSearchAdminResultsTable.component.js @@ -62,11 +62,6 @@ $scope.$watch('$ctrl.search.api_params', buildSettings, true); }; - // Refresh current page - this.refresh = function(row) { - ctrl.runSearch(); - }; - // Add callbacks for pre & post run this.onPreRun.push(function(apiParams) { apiParams.debug = true; diff --git a/ext/search_kit/ang/crmSearchDisplay/colType/field.html b/ext/search_kit/ang/crmSearchDisplay/colType/field.html index 342f9cae44..14f8a14620 100644 --- a/ext/search_kit/ang/crmSearchDisplay/colType/field.html +++ b/ext/search_kit/ang/crmSearchDisplay/colType/field.html @@ -1,4 +1,4 @@ - + {{:: $ctrl.formatFieldValue(row, col) }} diff --git a/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js b/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js index 86900be0db..ee7cfe1a2b 100644 --- a/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js +++ b/ext/search_kit/ang/crmSearchDisplay/traits/searchDisplayBaseTrait.service.js @@ -149,7 +149,7 @@ }, // Call SearchDisplay.run and update ctrl.results and ctrl.rowCount - runSearch: function() { + runSearch: function(editedRow) { var ctrl = this, apiParams = this.getApiParams(); this.loading = true; @@ -170,13 +170,13 @@ } } _.each(ctrl.onPostRun, function(callback) { - callback.call(ctrl, results, 'success'); + callback.call(ctrl, results, 'success', editedRow); }); }, function(error) { ctrl.results = []; ctrl.editing = ctrl.loading = false; _.each(ctrl.onPostRun, function(callback) { - callback.call(ctrl, error, 'error'); + callback.call(ctrl, error, 'error', editedRow); }); }); }, diff --git a/ext/search_kit/ang/crmSearchDisplayList/crmSearchDisplayList.component.js b/ext/search_kit/ang/crmSearchDisplayList/crmSearchDisplayList.component.js index 0f726367c5..e033c007d5 100644 --- a/ext/search_kit/ang/crmSearchDisplayList/crmSearchDisplayList.component.js +++ b/ext/search_kit/ang/crmSearchDisplayList/crmSearchDisplayList.component.js @@ -23,11 +23,6 @@ this.initializeDisplay($scope, $element); }; - // Refresh current page - this.refresh = function(row) { - ctrl.runSearch(); - }; - } }); diff --git a/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.component.js b/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.component.js index c1adf84e18..096c033d95 100644 --- a/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.component.js +++ b/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.component.js @@ -22,19 +22,6 @@ this.initializeDisplay($scope, $element); }; - // Refresh page after inline-editing a row - this.refresh = function(row) { - var rowId = row.id; - ctrl.runSearch() - .then(function() { - // If edited row disappears (because edits cause it to not meet search criteria), deselect it - var index = ctrl.selectedRows.indexOf(rowId); - if (index > -1 && !_.findWhere(ctrl.results, {id: rowId})) { - ctrl.selectedRows.splice(index, 1); - } - }); - }; - } }); diff --git a/ext/search_kit/ang/crmSearchTasks/traits/searchDisplayTasksTrait.service.js b/ext/search_kit/ang/crmSearchTasks/traits/searchDisplayTasksTrait.service.js index 27475eac63..9e97132366 100644 --- a/ext/search_kit/ang/crmSearchTasks/traits/searchDisplayTasksTrait.service.js +++ b/ext/search_kit/ang/crmSearchTasks/traits/searchDisplayTasksTrait.service.js @@ -57,6 +57,17 @@ // Reset selection when filters are changed this.selectedRows.length = 0; this.allRowsSelected = false; + }], + + // Overwrite empty onPostRun array from searchDisplayBaseTrait + onPostRun: [function(results, status, editedRow) { + if (editedRow && status === 'success') { + // If edited row disappears (because edits cause it to not meet search criteria), deselect it + var index = this.selectedRows.indexOf(editedRow.id); + if (index > -1 && !_.findWhere(results, {id: editedRow.id})) { + this.selectedRows.splice(index, 1); + } + } }] }; -- 2.25.1