diff --git a/packages/web/src/appobj/AppObjectGroup.svelte b/packages/web/src/appobj/AppObjectGroup.svelte
index bdb64e4b5..df03400aa 100644
--- a/packages/web/src/appobj/AppObjectGroup.svelte
+++ b/packages/web/src/appobj/AppObjectGroup.svelte
@@ -19,6 +19,7 @@
export let onDropOnGroup = undefined;
export let groupContextMenu = null;
export let collapsedGroupNames;
+ export let filter = undefined;
$: isExpanded = !$collapsedGroupNames.includes(group);
@@ -86,6 +87,8 @@
on:objectClick
{disableContextMenu}
{passProps}
+ isExpandedBySearch={filter && item.isChildMatched}
+ {filter}
/>
{/each}
diff --git a/packages/web/src/appobj/AppObjectList.svelte b/packages/web/src/appobj/AppObjectList.svelte
index 0ce2b6c76..a43cfa286 100644
--- a/packages/web/src/appobj/AppObjectList.svelte
+++ b/packages/web/src/appobj/AppObjectList.svelte
@@ -15,7 +15,7 @@
export let expandIconFunc = undefined;
export let checkedObjectsStore = null;
export let disableContextMenu = false;
- export let passProps;
+ export let passProps = {};
export let getIsExpanded = null;
export let setIsExpanded = null;
export let sortGroups = false;
@@ -27,7 +27,7 @@
export let emptyGroupNames = [];
export let collapsedGroupNames = writable([]);
- export let onChangeFilteredList;
+ export let onChangeFilteredList = undefined;
$: matcher = module.createMatcher && module.createMatcher(filter, passProps?.searchSettings);
$: childMatcher = module.createChildMatcher && module.createChildMatcher(filter, passProps?.searchSettings);
@@ -53,9 +53,10 @@
$: listGrouped = groupFunc
? _.compact(
(list || []).map(data => {
- const isMatched = matcher && !matcher(data) ? false : true;
+ const isMatched = !matcher || matcher(data);
+ const isChildMatched = !childMatcher || childMatcher(data);
const group = groupFunc(data);
- return { group, data, isMatched };
+ return { group, data, isMatched, isChildMatched };
})
)
: null;
@@ -110,7 +111,7 @@
{checkedObjectsStore}
{disableContextMenu}
{filter}
- isExpandedBySearch={childrenMatched.includes(data)}
+ isExpandedBySearch={filter && childrenMatched.includes(data)}
{passProps}
{getIsExpanded}
{setIsExpanded}
diff --git a/packages/web/src/appobj/ColumnAppObject.svelte b/packages/web/src/appobj/ColumnAppObject.svelte
index 65259a9a9..80b5e1e63 100644
--- a/packages/web/src/appobj/ColumnAppObject.svelte
+++ b/packages/web/src/appobj/ColumnAppObject.svelte
@@ -1,5 +1,17 @@
diff --git a/packages/web/src/appobj/SubDatabaseList.svelte b/packages/web/src/appobj/SubDatabaseList.svelte
index 6d8abaec0..6b265fd36 100644
--- a/packages/web/src/appobj/SubDatabaseList.svelte
+++ b/packages/web/src/appobj/SubDatabaseList.svelte
@@ -15,13 +15,13 @@
$: databases = useDatabaseList({ conid: isExpandedOnlyBySearch ? null : data._id });
$: dbList = isExpandedOnlyBySearch ? getLocalStorage(`database_list_${data._id}`) || [] : $databases || [];
+
+ // .filter(x => filterName(filter, x.name, data.displayName, data.server))
filterName(filter, x.name, data.displayName, data.server)),
- x => x.sortOrder ?? x.name
- ).map(db => ({ ...db, connection: data }))}
+ list={_.sortBy(dbList, x => x.sortOrder ?? x.name).map(db => ({ ...db, connection: data }))}
module={databaseAppObject}
{passProps}
+ {filter}
/>