diff --git a/packages/web/src/appobj/DatabaseAppObject.svelte b/packages/web/src/appobj/DatabaseAppObject.svelte index 654fbe0df..620b8441a 100644 --- a/packages/web/src/appobj/DatabaseAppObject.svelte +++ b/packages/web/src/appobj/DatabaseAppObject.svelte @@ -519,7 +519,7 @@ await dbgateApi.dropAllDbObjects(${JSON.stringify( }} on:click={() => { // switchCurrentDatabase(data); - $focusedConnectionOrDatabase = { conid: data.connection?._id, database: data.name }; + $focusedConnectionOrDatabase = { conid: data.connection?._id, database: data.name, connection: data.connection }; }} on:dragstart on:dragenter diff --git a/packages/web/src/buttons/FormStyledButton.svelte b/packages/web/src/buttons/FormStyledButton.svelte index ac731ee02..00a97d20d 100644 --- a/packages/web/src/buttons/FormStyledButton.svelte +++ b/packages/web/src/buttons/FormStyledButton.svelte @@ -7,6 +7,7 @@ export let disabled = false; export let value; export let title = null; + export let skipWidth = false; function handleClick() { if (!disabled) dispatch('click'); @@ -19,19 +20,22 @@ } - + diff --git a/packages/web/src/widgets/ConnectionList.svelte b/packages/web/src/widgets/ConnectionList.svelte index a9fab2af8..1e860b2cb 100644 --- a/packages/web/src/widgets/ConnectionList.svelte +++ b/packages/web/src/widgets/ConnectionList.svelte @@ -97,10 +97,7 @@ res.push({ conid: con._id, database: db.name, - dbobj: { - connection: con, - name: db.name, - }, + connection: con, }); } } @@ -202,7 +199,7 @@ list={getFocusFlatList} selectedObjectStore={focusedConnectionOrDatabase} getSelectedObject={getFocusedConnectionOrDatabase} - selectedObjectMatcher={(o1, o2) => o1.conid == o2.conid && o1.database == o2.database} + selectedObjectMatcher={(o1, o2) => o1?.conid == o2?.conid && o1?.database == o2?.database} onScrollTop={() => { domContainer?.scrollTop(); }} @@ -212,7 +209,7 @@ handleObjectClick={(data, options) => { if (data.database) { if (options.focusTab) { - switchCurrentDatabase(data.dbobj); + switchCurrentDatabase({ connection: data.connection, name: data.database }); // console.log('FOCUSING DB', passProps); // passProps?.onFocusSqlObjectList?.(); } diff --git a/packages/web/src/widgets/SqlObjectList.svelte b/packages/web/src/widgets/SqlObjectList.svelte index ad608e44f..8956eeb5c 100644 --- a/packages/web/src/widgets/SqlObjectList.svelte +++ b/packages/web/src/widgets/SqlObjectList.svelte @@ -31,7 +31,7 @@ import { chevronExpandIcon } from '../icons/expandIcons'; import ErrorInfo from '../elements/ErrorInfo.svelte'; import LoadingInfo from '../elements/LoadingInfo.svelte'; - import { getObjectTypeFieldLabel } from '../utility/common'; + import { getObjectTypeFieldLabel, switchCurrentDatabase } from '../utility/common'; import DropDownButton from '../buttons/DropDownButton.svelte'; import FontIcon from '../icons/FontIcon.svelte'; import CloseSearchButton from '../buttons/CloseSearchButton.svelte'; @@ -39,6 +39,7 @@ import { currentDatabase, extensions, + focusedConnectionOrDatabase, getSelectedDatabaseObjectAppObject, selectedDatabaseObjectAppObject, } from '../stores'; @@ -50,6 +51,8 @@ import { appliedCurrentSchema } from '../stores'; import AppObjectListHandler from './AppObjectListHandler.svelte'; import { matchDatabaseObjectAppObject } from '../appobj/appObjectTools'; + import FormStyledButton from '../buttons/FormStyledButton.svelte'; + import clickOutside from '../utility/clickOutside'; export let conid; export let database; @@ -129,6 +132,11 @@ export function focus() { domListHandler?.focusFirst(); } + + $: differentFocusedDb = + $focusedConnectionOrDatabase && + $focusedConnectionOrDatabase?.database && + ($focusedConnectionOrDatabase.conid != conid || $focusedConnectionOrDatabase?.database != database); {#if $status && $status.name == 'error'} @@ -189,7 +197,25 @@ negativeMarginTop /> - + {#if differentFocusedDb} +
+
Current database:
+
+ {database} +
+ + switchCurrentDatabase({ + connection: $focusedConnectionOrDatabase?.connection, + name: $focusedConnectionOrDatabase?.database, + })} + /> +
+ {/if} + + {#if ($status && ($status.name == 'pending' || $status.name == 'checkStructure' || $status.name == 'loadStructure') && $objects) || !$objects} {:else} @@ -228,3 +254,12 @@ {/if} {/if} + + diff --git a/packages/web/src/widgets/WidgetsInnerContainer.svelte b/packages/web/src/widgets/WidgetsInnerContainer.svelte index 76f7f2895..262c1856c 100644 --- a/packages/web/src/widgets/WidgetsInnerContainer.svelte +++ b/packages/web/src/widgets/WidgetsInnerContainer.svelte @@ -1,12 +1,14 @@ -
+