From 791f6777a1178d2ff074b611a5235d7d1e507f5f Mon Sep 17 00:00:00 2001 From: Coleman Watts Date: Sun, 18 Jul 2021 15:39:14 -0400 Subject: [PATCH] SearchKit - Allow tokens in link text --- ext/search_kit/Civi/Api4/Action/SearchDisplay/Run.php | 1 + .../ang/crmSearchAdmin/crmSearchAdminLinkGroup.html | 3 ++- ext/search_kit/ang/crmSearchDisplay/colType/buttons.html | 2 +- ext/search_kit/ang/crmSearchDisplay/colType/links.html | 2 +- ext/search_kit/ang/crmSearchDisplay/colType/menu.html | 2 +- .../crmSearchDisplayList/crmSearchDisplayList.component.js | 4 ++++ .../crmSearchDisplayTable/crmSearchDisplayTable.component.js | 4 ++++ 7 files changed, 14 insertions(+), 4 deletions(-) diff --git a/ext/search_kit/Civi/Api4/Action/SearchDisplay/Run.php b/ext/search_kit/Civi/Api4/Action/SearchDisplay/Run.php index 7ecfa7e2b0..a4ef5d8f5a 100644 --- a/ext/search_kit/Civi/Api4/Action/SearchDisplay/Run.php +++ b/ext/search_kit/Civi/Api4/Action/SearchDisplay/Run.php @@ -366,6 +366,7 @@ class Run extends \Civi\Api4\Generic\AbstractAction { $possibleTokens .= ($column['rewrite'] ?? '') . ($column['link']['path'] ?? ''); if (!empty($column['links'])) { $possibleTokens .= implode('', array_column($column['links'], 'path')); + $possibleTokens .= implode('', array_column($column['links'], 'text')); } // Select value fields for in-place editing diff --git a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkGroup.html b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkGroup.html index db0b228a91..c4459e5c9f 100644 --- a/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkGroup.html +++ b/ext/search_kit/ang/crmSearchAdmin/crmSearchAdminLinkGroup.html @@ -27,8 +27,9 @@ - + + diff --git a/ext/search_kit/ang/crmSearchDisplay/colType/buttons.html b/ext/search_kit/ang/crmSearchDisplay/colType/buttons.html index 8e570383c7..4909f20dbf 100644 --- a/ext/search_kit/ang/crmSearchDisplay/colType/buttons.html +++ b/ext/search_kit/ang/crmSearchDisplay/colType/buttons.html @@ -1,6 +1,6 @@ - {{:: item.text }} + {{:: $ctrl.replaceTokens(item.text, row) }} diff --git a/ext/search_kit/ang/crmSearchDisplay/colType/links.html b/ext/search_kit/ang/crmSearchDisplay/colType/links.html index c78ecda3ee..b4a6dea220 100644 --- a/ext/search_kit/ang/crmSearchDisplay/colType/links.html +++ b/ext/search_kit/ang/crmSearchDisplay/colType/links.html @@ -1,6 +1,6 @@ - {{:: item.text }} + {{:: $ctrl.replaceTokens(item.text, row) }} diff --git a/ext/search_kit/ang/crmSearchDisplay/colType/menu.html b/ext/search_kit/ang/crmSearchDisplay/colType/menu.html index ffd5c08ea7..f4f9afb340 100644 --- a/ext/search_kit/ang/crmSearchDisplay/colType/menu.html +++ b/ext/search_kit/ang/crmSearchDisplay/colType/menu.html @@ -7,7 +7,7 @@
  • - {{:: item.text }} + {{:: $ctrl.replaceTokens(item.text, row) }}
  • diff --git a/ext/search_kit/ang/crmSearchDisplayList/crmSearchDisplayList.component.js b/ext/search_kit/ang/crmSearchDisplayList/crmSearchDisplayList.component.js index a43b020982..e8137cba17 100644 --- a/ext/search_kit/ang/crmSearchDisplayList/crmSearchDisplayList.component.js +++ b/ext/search_kit/ang/crmSearchDisplayList/crmSearchDisplayList.component.js @@ -61,6 +61,10 @@ return searchDisplayUtils.formatDisplayValue(rowData, col.key, ctrl.settings.columns); }; + this.replaceTokens = function(value, row, raw) { + return searchDisplayUtils.replaceTokens(value, row, raw ? null : ctrl.settings.columns); + }; + this.getLinks = function(rowData, col) { rowData._links = rowData._links || {}; if (!(col.key in rowData._links)) { diff --git a/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.component.js b/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.component.js index 5118c0024f..2d82221e90 100644 --- a/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.component.js +++ b/ext/search_kit/ang/crmSearchDisplayTable/crmSearchDisplayTable.component.js @@ -109,6 +109,10 @@ return searchDisplayUtils.formatDisplayValue(rowData, col.key, ctrl.settings.columns); }; + this.replaceTokens = function(value, row, raw) { + return searchDisplayUtils.replaceTokens(value, row, raw ? null : ctrl.settings.columns); + }; + this.getLinks = function(rowData, col) { rowData._links = rowData._links || {}; if (!(col.key in rowData._links)) { -- 2.25.1