diff --git a/packages/web/src/appobj/AppObjectList.svelte b/packages/web/src/appobj/AppObjectList.svelte
index c47af2563..af4f7e6b2 100644
--- a/packages/web/src/appobj/AppObjectList.svelte
+++ b/packages/web/src/appobj/AppObjectList.svelte
@@ -2,13 +2,20 @@
import AppObjectListItem from './AppObjectListItem.svelte';
export let list;
- export let component;
+ export let module;
export let subItemsComponent = undefined;
export let expandOnClick = false;
+ export let filter;
export let groupFunc = undefined;
+
+ $: filtered = list.filter(data => {
+ const matcher = module.createMatcher && module.createMatcher(data);
+ if (matcher && !matcher(filter)) return false;
+ return true;
+ });
-{#each list as data}
-
+{#each filtered as data}
+
{/each}
diff --git a/packages/web/src/appobj/AppObjectListItem.svelte b/packages/web/src/appobj/AppObjectListItem.svelte
index adc02ba99..938719291 100644
--- a/packages/web/src/appobj/AppObjectListItem.svelte
+++ b/packages/web/src/appobj/AppObjectListItem.svelte
@@ -1,5 +1,5 @@
-
+
{#if isExpanded && subItemsComponent}
diff --git a/packages/web/src/appobj/ConnectionAppObject.svelte b/packages/web/src/appobj/ConnectionAppObject.svelte
index 6b55aebef..7dd1c4c13 100644
--- a/packages/web/src/appobj/ConnectionAppObject.svelte
+++ b/packages/web/src/appobj/ConnectionAppObject.svelte
@@ -26,6 +26,9 @@
},
];
};
+
+ export const extractKey = data => data._id;
+ export const createMatcher = ({ displayName, server }) => filter => filterName(filter, displayName, server);
- ({ ...db, connection: data }))} component={DatabaseAppObject} />
+ ({ ...db, connection: data }))} module={databaseAppObject} />
diff --git a/packages/web/src/widgets/ConnectionList.svelte b/packages/web/src/widgets/ConnectionList.svelte
index 194ad92ca..298301dbb 100644
--- a/packages/web/src/widgets/ConnectionList.svelte
+++ b/packages/web/src/widgets/ConnectionList.svelte
@@ -6,12 +6,14 @@
import { useConnectionList, useServerStatus } from '../utility/metadataLoaders';
import SearchBoxWrapper from './SearchBoxWrapper.svelte';
import AppObjectList from '../appobj/AppObjectList.svelte';
- import ConnectionAppObject from '../appobj/ConnectionAppObject.svelte';
+ import * as connectionAppObject from '../appobj/ConnectionAppObject.svelte';
import SubDatabaseList from '../appobj/SubDatabaseList.svelte';
const connections = useConnectionList();
const serverStatus = useServerStatus();
+ let filter = '';
+
$: connectionsWithStatus =
$connections && $serverStatus
? $connections.map(conn => ({ ...conn, status: $serverStatus[conn._id] }))
@@ -19,14 +21,15 @@
-
+
Refresh
(displayName || server || '').toUpperCase())}
- component={ConnectionAppObject}
+ module={connectionAppObject}
subItemsComponent={SubDatabaseList}
expandOnClick
+ {filter}
/>
diff --git a/packages/web/src/widgets/SearchInput.svelte b/packages/web/src/widgets/SearchInput.svelte
index e73c034ed..19b931210 100644
--- a/packages/web/src/widgets/SearchInput.svelte
+++ b/packages/web/src/widgets/SearchInput.svelte
@@ -1,8 +1,26 @@
-
+ domInput.select()}
+/>