app object module methods, search in connection list

This commit is contained in:
Jan Prochazka
2021-02-28 18:43:16 +01:00
parent c497c1ceca
commit 5dba5a6dfd
7 changed files with 45 additions and 13 deletions

View File

@@ -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;
});
</script>
{#each list as data}
<AppObjectListItem {component} {subItemsComponent} {expandOnClick} {data} on:objectClick />
{#each filtered as data}
<AppObjectListItem {module} {subItemsComponent} {expandOnClick} {data} on:objectClick />
{/each}

View File

@@ -1,5 +1,5 @@
<script lang="ts">
export let component;
export let module;
export let data;
export let subItemsComponent;
export let expandOnClick;
@@ -13,7 +13,7 @@
}
</script>
<svelte:component this={component} {data} on:click={handleExpand} />
<svelte:component this={module.default} {data} on:click={handleExpand} />
{#if isExpanded && subItemsComponent}
<svelte:component this={subItemsComponent} {data} />

View File

@@ -26,6 +26,9 @@
},
];
};
export const extractKey = data => data._id;
export const createMatcher = ({ displayName, server }) => filter => filterName(filter, displayName, server);
</script>
<script lang="ts">
@@ -33,6 +36,7 @@
import AppObjectCore from './AppObjectCore.svelte';
import { currentDatabase, extensions, openedConnections } from '../stores';
import axios from '../utility/axios';
import { filterName } from 'dbgate-datalib';
export let commonProps;
export let data;

View File

@@ -1,11 +1,11 @@
<script lang="ts">
import { useDatabaseList } from '../utility/metadataLoaders';
import AppObjectList from './AppObjectList.svelte';
import DatabaseAppObject from './DatabaseAppObject.svelte';
import * as databaseAppObject from './DatabaseAppObject.svelte';
export let data;
$: databases = useDatabaseList({ conid: data._id });
</script>
<AppObjectList list={($databases || []).map(db => ({ ...db, connection: data }))} component={DatabaseAppObject} />
<AppObjectList list={($databases || []).map(db => ({ ...db, connection: data }))} module={databaseAppObject} />