This is an automated email from the ASF dual-hosted git repository.
kgabryje pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/superset.git
The following commit(s) were added to refs/heads/master by this push:
new f049d3e34aa fix: Search in folders editor with verbose names (#38101)
f049d3e34aa is described below
commit f049d3e34aa9d96d0eb2ecc4e19581caeefc0891
Author: Kamil Gabryjelski <[email protected]>
AuthorDate: Thu Feb 19 18:45:22 2026 +0100
fix: Search in folders editor with verbose names (#38101)
---
.../FoldersEditor/folderOperations.test.ts | 37 ++++++++++++++++++++++
.../Datasource/FoldersEditor/folderOperations.ts | 8 ++++-
2 files changed, 44 insertions(+), 1 deletion(-)
diff --git
a/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.test.ts
b/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.test.ts
index df7e1ea9280..0b0c8f7dd6b 100644
---
a/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.test.ts
+++
b/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.test.ts
@@ -124,6 +124,43 @@ describe('folderUtils', () => {
expect(result.size).toBe(4);
});
+
+ test('should match by verbose_name', () => {
+ const metrics: Metric[] = [
+ {
+ uuid: 'metric-v1',
+ metric_name: 'count',
+ verbose_name: 'COUNT(*)',
+ expression: 'COUNT(*)',
+ } as Metric,
+ ];
+ const result = filterItemsBySearch('COUNT', metrics);
+
+ expect(result.size).toBe(1);
+ expect(result.has('metric-v1')).toBe(true);
+ });
+
+ test('should match by expression', () => {
+ const result = filterItemsBySearch('COUNT(*)', mockMetrics);
+
+ expect(result.size).toBe(1);
+ expect(result.has('metric-1')).toBe(true);
+ });
+
+ test('should match special characters in search term', () => {
+ const metrics: Metric[] = [
+ {
+ uuid: 'metric-special',
+ metric_name: 'count',
+ verbose_name: 'COUNT(*)',
+ expression: 'COUNT(*)',
+ } as Metric,
+ ];
+ const result = filterItemsBySearch('(*)', metrics);
+
+ expect(result.size).toBe(1);
+ expect(result.has('metric-special')).toBe(true);
+ });
});
describe('isDefaultFolder', () => {
diff --git
a/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.ts
b/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.ts
index 852de41f7f9..e9f0b0d9119 100644
---
a/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.ts
+++
b/superset-frontend/src/components/Datasource/FoldersEditor/folderOperations.ts
@@ -80,7 +80,13 @@ export const filterItemsBySearch = (
items.forEach(item => {
const name = 'metric_name' in item ? item.metric_name : item.column_name;
- if (name?.toLowerCase().includes(lowerSearch)) {
+ const { verbose_name: verboseName, expression } = item;
+
+ if (
+ name?.toLowerCase().includes(lowerSearch) ||
+ verboseName?.toLowerCase().includes(lowerSearch) ||
+ expression?.toLowerCase().includes(lowerSearch)
+ ) {
matchingIds.add(item.uuid);
}
});