This is an automated email from the ASF dual-hosted git repository.
ocket8888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git
The following commit(s) were added to refs/heads/master by this push:
new 4e352e82d4 Fixed server table's quick search and filter for multiple
profiles (#7074)
4e352e82d4 is described below
commit 4e352e82d4ba69f9683cd16ad473f1bfbdc50d6d
Author: Rima Shah <[email protected]>
AuthorDate: Thu Sep 29 21:35:13 2022 -0600
Fixed server table's quick search and filter for multiple profiles (#7074)
* Fixed server quick search and filter for multiple profiles
* Removed profileNames length check.
* Updated based on review comments.
* Added Equal and Non-Equal filter for an array object.
* Changed variable to a constant.
---
CHANGELOG.md | 1 +
.../modules/table/agGrid/CommonGridController.js | 28 ++++++++++++++++++++++
.../TableAssignDSServersController.js | 10 ++++++--
.../table/servers/TableServersController.js | 10 ++++----
4 files changed, 41 insertions(+), 8 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ddea74a352..ba2506ebe1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -19,6 +19,7 @@ The format is based on [Keep a
Changelog](http://keepachangelog.com/en/1.0.0/).
- [#7037](https://github.com/apache/trafficcontrol/pull/7037) *Traffic Router*
Uses Traffic Ops API 4.0 by default
### Fixed
+- [#7049](https://github.com/apache/trafficcontrol/issues/7049),
[#7052](https://github.com/apache/trafficcontrol/issues/7052) *Traffic Portal*
Fixed server table's quick search and filter option for multiple profiles.
- [#7080](https://github.com/apache/trafficcontrol/issues/7080),
[#6335](https://github.com/apache/trafficcontrol/issues/6335) *Traffic Portal*
Fixed redirect links for server capability.
- [#7022](https://github.com/apache/trafficcontrol/pull/7022) *Traffic Stats*
Reuse InfluxDB client handle to prevent potential connection leaks.
- [#7021](https://github.com/apache/trafficcontrol/issues/7021) *Cache Config*
Fixed cache config for Delivery Services with IP Origins.
diff --git
a/traffic_portal/app/src/common/modules/table/agGrid/CommonGridController.js
b/traffic_portal/app/src/common/modules/table/agGrid/CommonGridController.js
index 4bedb383de..6503804661 100644
--- a/traffic_portal/app/src/common/modules/table/agGrid/CommonGridController.js
+++ b/traffic_portal/app/src/common/modules/table/agGrid/CommonGridController.js
@@ -301,6 +301,34 @@ let CommonGridController = function ($scope, $document,
$state, userModel, dateU
this.columns[i].tooltipValueGetter =
dateCellFormatterUTC;
this.columns[i].valueFormatter =
dateCellFormatterUTC;
}
+ } else if (this.columns[i].filter ===
'arrayTextColumnFilter') {
+ this.columns[i].filter = 'agTextColumnFilter'
+ this.columns[i].filterParams = {
+ textCustomComparator: (filter, value,
filterText) => {
+ const filterTextLowerCase =
filterText.toLowerCase();
+ const valueLowerCase =
value.toString().toLowerCase();
+ const profileNameValue =
valueLowerCase.split(",");
+ switch (filter) {
+ case 'contains':
+ return
valueLowerCase.indexOf(filterTextLowerCase) >= 0;
+ case 'notContains':
+ return
valueLowerCase.indexOf(filterTextLowerCase) === -1;
+ case 'equals':
+ return
profileNameValue.includes(filterTextLowerCase);
+ case 'notEqual':
+ return
!profileNameValue.includes(filterTextLowerCase);
+ case 'startsWith':
+ return
valueLowerCase.indexOf(filterTextLowerCase) === 0;
+ case 'endsWith':
+ let index =
valueLowerCase.lastIndexOf(filterTextLowerCase);
+ return index >=
0 && index === (valueLowerCase.length - filterTextLowerCase.length);
+ default:
+ // should never
happen
+
console.warn('invalid filter type ' + filter);
+ return false;
+ }
+ }
+ }
}
}
diff --git
a/traffic_portal/app/src/common/modules/table/deliveryServiceServers/TableAssignDSServersController.js
b/traffic_portal/app/src/common/modules/table/deliveryServiceServers/TableAssignDSServersController.js
index 17097dec47..289bc89613 100644
---
a/traffic_portal/app/src/common/modules/table/deliveryServiceServers/TableAssignDSServersController.js
+++
b/traffic_portal/app/src/common/modules/table/deliveryServiceServers/TableAssignDSServersController.js
@@ -36,8 +36,14 @@ var TableAssignDSServersController =
function(deliveryService, servers, assigned
field: "cachegroup",
},
{
- headerName: "Profile",
- field: "profile"
+ headerName: "Profile(s)",
+ field: "profile",
+ valueGetter: function(params) {
+ return params.data.profileNames;
+ },
+ tooltipValueGetter: function(params) {
+ return params.data.profileNames.join(", ");
+ }
}
];
diff --git
a/traffic_portal/app/src/common/modules/table/servers/TableServersController.js
b/traffic_portal/app/src/common/modules/table/servers/TableServersController.js
index 7c8e994195..e4c22580d3 100644
---
a/traffic_portal/app/src/common/modules/table/servers/TableServersController.js
+++
b/traffic_portal/app/src/common/modules/table/servers/TableServersController.js
@@ -166,18 +166,16 @@ var TableServersController = function(tableName, servers,
filter, $scope, $state
hide: true
},
{
- headerName: "Profile",
+ headerName: "Profile(s)",
field: "profileName",
hide: false,
valueGetter: function(params) {
- if (params.data.profileNames.length > 1) {
- return params.data.profileName + ' *';
- }
- return params.data.profileName;
+ return params.data.profileNames;
},
tooltipValueGetter: function(params) {
return params.data.profileNames.join(", ");
- }
+ },
+ filter: 'arrayTextColumnFilter'
},
{
headerName: "Rack",