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} />