connection tree UX

This commit is contained in:
Jan Prochazka
2024-11-28 17:53:22 +01:00
parent 4fb6128499
commit 2ca17e826c
2 changed files with 24 additions and 7 deletions

View File

@@ -1,6 +1,13 @@
<script lang="ts"> <script lang="ts">
import { findEngineDriver } from 'dbgate-tools'; import { findEngineDriver, getConnectionLabel } from 'dbgate-tools';
import { currentDatabase, extensions, pinnedDatabases, pinnedTables, focusedConnectionOrDatabase } from '../stores'; import {
currentDatabase,
extensions,
pinnedDatabases,
pinnedTables,
focusedConnectionOrDatabase,
openedConnections,
} from '../stores';
import { useConfig, useConnectionInfo } from '../utility/metadataLoaders'; import { useConfig, useConnectionInfo } from '../utility/metadataLoaders';
import ConnectionList from './ConnectionList.svelte'; import ConnectionList from './ConnectionList.svelte';
@@ -16,6 +23,7 @@
import _ from 'lodash'; import _ from 'lodash';
import FormStyledButton from '../buttons/FormStyledButton.svelte'; import FormStyledButton from '../buttons/FormStyledButton.svelte';
import { switchCurrentDatabase } from '../utility/common'; import { switchCurrentDatabase } from '../utility/common';
import { openConnection } from '../appobj/ConnectionAppObject.svelte';
export let hidden = false; export let hidden = false;
let domSqlObjectList = null; let domSqlObjectList = null;
@@ -92,6 +100,12 @@
name: $focusedConnectionOrDatabase?.database, name: $focusedConnectionOrDatabase?.database,
})} })}
/> />
{:else if $focusedConnectionOrDatabase?.connection && !$openedConnections.includes($focusedConnectionOrDatabase?.conid)}
<FormStyledButton
value={`Connect to ${getConnectionLabel($focusedConnectionOrDatabase?.connection)}`}
skipWidth
on:click={() => openConnection($focusedConnectionOrDatabase?.connection)}
/>
{/if} {/if}
</WidgetsInnerContainer> </WidgetsInnerContainer>
</WidgetColumnBarItem> </WidgetColumnBarItem>

View File

@@ -41,6 +41,7 @@
extensions, extensions,
focusedConnectionOrDatabase, focusedConnectionOrDatabase,
getSelectedDatabaseObjectAppObject, getSelectedDatabaseObjectAppObject,
openedConnections,
selectedDatabaseObjectAppObject, selectedDatabaseObjectAppObject,
} from '../stores'; } from '../stores';
import newQuery from '../query/newQuery'; import newQuery from '../query/newQuery';
@@ -230,11 +231,13 @@
<div class="m-1 ml-3 mb-3"> <div class="m-1 ml-3 mb-3">
<b>{getConnectionLabel($connection)}</b> <b>{getConnectionLabel($connection)}</b>
</div> </div>
{#if !$openedConnections.includes($focusedConnectionOrDatabase?.conid)}
<FormStyledButton <FormStyledButton
value={`Connect to ${getConnectionLabel($focusedConnectionOrDatabase?.connection)}`} value={`Connect to ${getConnectionLabel($focusedConnectionOrDatabase?.connection)}`}
skipWidth skipWidth
on:click={() => openConnection($focusedConnectionOrDatabase?.connection)} on:click={() => openConnection($focusedConnectionOrDatabase?.connection)}
/> />
{/if}
<FormStyledButton <FormStyledButton
value={`Show ${getConnectionLabel($connection)}`} value={`Show ${getConnectionLabel($connection)}`}
skipWidth skipWidth