From 4afe3e364f0bf085eb86571154f884d204854a37 Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Sat, 4 Sep 2021 14:22:12 -0400 Subject: [PATCH] SearchKit - Show shorter date in listing and fix functions in tokens --- .../Api4/Action/SearchDisplay/AbstractRunAction.php | 11 ++++++++--- .../crmSearchAdminSearchListing.component.js | 10 ++++++---- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php b/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php index 03d392d511..d18254c7c1 100644 --- a/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php +++ b/ext/search_kit/Civi/Api4/Action/SearchDisplay/AbstractRunAction.php @@ -319,6 +319,9 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { * @param array $apiParams */ protected function augmentSelectClause(&$apiParams): void { + $existing = array_map(function($item) { + return explode(' AS ', $item)[1] ?? $item; + }, $apiParams['select']); $additions = []; // Add primary key field if actions are enabled if (!empty($this->display['settings']['actions'])) { @@ -334,14 +337,16 @@ abstract class AbstractRunAction extends \Civi\Api4\Generic\AbstractAction { } // Select value fields for in-place editing - if (isset($column['editable']['value']) && !in_array($column['editable']['value'], $apiParams['select'])) { - $apiParams['select'][] = $column['editable']['value']; + if (isset($column['editable']['value'])) { + $additions[] = $column['editable']['value']; } } // Add fields referenced via token $tokens = []; preg_match_all('/\\[([^]]+)\\]/', $possibleTokens, $tokens); - $apiParams['select'] = array_unique(array_merge($apiParams['select'], $additions, $tokens[1])); + // Only add fields not already in SELECT clause + $additions = array_diff(array_merge($additions, $tokens[1]), $existing); + $apiParams['select'] = array_unique(array_merge($apiParams['select'], $additions)); } /** diff --git a/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js b/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js index 038ec00c2e..e6e8bb5077 100644 --- a/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js +++ b/ext/search_kit/ang/crmSearchAdmin/searchListing/crmSearchAdminSearchListing.component.js @@ -28,6 +28,8 @@ 'api_params', 'created_date', 'modified_date', + 'DATE(created_date) AS date_created', + 'DATE(modified_date) AS date_modified', 'GROUP_CONCAT(display.name ORDER BY display.id) AS display_name', 'GROUP_CONCAT(display.label ORDER BY display.id) AS display_label', 'GROUP_CONCAT(display.type:icon ORDER BY display.id) AS display_icon', @@ -96,13 +98,13 @@ }), searchMeta.fieldToColumn('created_date', { label: ts('Created'), - dataType: 'Date', - rewrite: ts('%1 by %2', {1: '[created_date]', 2: '[created_id.display_name]'}) + title: '[created_date]', + rewrite: ts('%1 by %2', {1: '[date_created]', 2: '[created_id.display_name]'}) }), searchMeta.fieldToColumn('modified_date', { label: ts('Last Modified'), - dataType: 'Date', - rewrite: ts('%1 by %2', {1: '[modified_date]', 2: '[modified_id.display_name]'}) + title: '[modified_date]', + rewrite: ts('%1 by %2', {1: '[date_modified]', 2: '[modified_id.display_name]'}) }), { type: 'include', -- 2.25.1