diff --git a/packages/web/src/tabs/SqlObjectTab.svelte b/packages/web/src/tabs/SqlObjectTab.svelte
index 7a874a021..5d78318f8 100644
--- a/packages/web/src/tabs/SqlObjectTab.svelte
+++ b/packages/web/src/tabs/SqlObjectTab.svelte
@@ -29,6 +29,9 @@
import ToolStripCommandButton from '../buttons/ToolStripCommandButton.svelte';
import SelectField from '../forms/SelectField.svelte';
import { changeTab } from '../utility/common';
+ import ToolStripButton from '../buttons/ToolStripButton.svelte';
+ import openNewTab from '../utility/openNewTab';
+ import { template } from 'lodash';
export let tabid;
export let appObjectData;
@@ -109,5 +112,67 @@
}));
}}
/>
+ {#if objectTypeField == 'tables' || objectTypeField == 'views' || objectTypeField == 'matviews'}
+ {
+ openNewTab({
+ title: pureName,
+ icon: 'img table-structure',
+ tabComponent: 'TableStructureTab',
+ tabPreviewMode: true,
+ props: {
+ schemaName,
+ pureName,
+ conid,
+ database,
+ objectTypeField,
+ defaultActionId: 'openStructure',
+ },
+ });
+ }}>Open structure
+ {
+ openNewTab({
+ title: pureName,
+ icon: objectTypeField == 'tables' ? 'img table' : 'img view',
+ tabComponent: objectTypeField == 'tables' ? 'TableDataTab' : 'ViewDataTab',
+ objectTypeField,
+ tabPreviewMode: true,
+ props: {
+ schemaName,
+ pureName,
+ conid,
+ database,
+ objectTypeField,
+ defaultActionId: 'openTable',
+ },
+ });
+ }}>Open data
+ {/if}
+ {#each getSupportedScriptTemplates(appObjectData.objectTypeField) as template}
+ {
+ openNewTab({
+ title: 'Query #',
+ icon: 'img sql-file',
+ tabComponent: 'QueryTab',
+ objectTypeField: appObjectData.objectTypeField,
+ props: {
+ conid,
+ database,
+ schemaName,
+ pureName,
+ objectTypeField,
+ initialArgs: { scriptTemplate: template.scriptTemplate },
+ },
+ });
+ }}>{template.label}
+ {/each}
diff --git a/packages/web/src/tabs/TableDataTab.svelte b/packages/web/src/tabs/TableDataTab.svelte
index 83a6f13df..4a6eaae88 100644
--- a/packages/web/src/tabs/TableDataTab.svelte
+++ b/packages/web/src/tabs/TableDataTab.svelte
@@ -298,17 +298,39 @@
title: pureName,
icon: 'img table-structure',
tabComponent: 'TableStructureTab',
+ tabPreviewMode: true,
props: {
schemaName,
pureName,
conid,
database,
objectTypeField: 'tables',
+ defaultActionId: 'openStructure',
},
});
}}>Open structure
+ {
+ openNewTab({
+ title: pureName,
+ icon: 'img sql-file',
+ tabComponent: 'SqlObjectTab',
+ tabPreviewMode: true,
+ props: {
+ schemaName,
+ pureName,
+ conid,
+ database,
+ objectTypeField: 'tables',
+ defaultActionId: 'showSql',
+ },
+ });
+ }}>Table SQL
+
collapsedLeftColumnStore.update(x => !x)}>View columns
- {#if objectTypeField == 'tables'}
- {
- openNewTab({
- title: pureName,
- icon: 'img table',
- tabComponent: 'TableDataTab',
- props: {
- schemaName,
- pureName,
- conid,
- database,
- objectTypeField: 'tables',
- },
- });
- }}>Open data
- {/if}
+ {
+ openNewTab({
+ title: pureName,
+ icon: objectTypeField == 'tables' ? 'img table' : 'img view',
+ tabComponent: objectTypeField == 'tables' ? 'TableDataTab' : 'ViewDataTab',
+ tabPreviewMode: true,
+ props: {
+ schemaName,
+ pureName,
+ conid,
+ database,
+ objectTypeField,
+ defaultActionId: 'openTable',
+ },
+ });
+ }}>Open data
+ {
+ openNewTab({
+ title: pureName,
+ icon: 'img sql-file',
+ tabComponent: 'SqlObjectTab',
+ tabPreviewMode: true,
+ props: {
+ schemaName,
+ pureName,
+ conid,
+ database,
+ objectTypeField,
+ defaultActionId: 'showSql',
+ },
+ });
+ }}>Show SQL
diff --git a/packages/web/src/tabs/ViewDataTab.svelte b/packages/web/src/tabs/ViewDataTab.svelte
index a5fb401db..6fe518c82 100644
--- a/packages/web/src/tabs/ViewDataTab.svelte
+++ b/packages/web/src/tabs/ViewDataTab.svelte
@@ -18,16 +18,24 @@
import SqlFormView from '../formview/SqlFormView.svelte';
import { getBoolSettingsValue } from '../settings/settingsTools';
import { extensions } from '../stores';
- import { useConnectionInfo, useDatabaseInfo, useDatabaseServerVersion, useViewInfo } from '../utility/metadataLoaders';
+ import {
+ useConnectionInfo,
+ useDatabaseInfo,
+ useDatabaseServerVersion,
+ useViewInfo,
+ } from '../utility/metadataLoaders';
import { getLocalStorage, setLocalStorage } from '../utility/storageCache';
import useGridConfig from '../utility/useGridConfig';
import StatusBarTabItem from '../widgets/StatusBarTabItem.svelte';
+ import ToolStripButton from '../buttons/ToolStripButton.svelte';
+ import openNewTab from '../utility/openNewTab';
export let tabid;
export let conid;
export let database;
export let schemaName;
export let pureName;
+ export let objectTypeField;
$: connection = useConnectionInfo({ conid });
$: viewInfo = useViewInfo({ conid, database, schemaName, pureName });
@@ -76,6 +84,46 @@
+
+ {
+ openNewTab({
+ title: pureName,
+ icon: 'img table-structure',
+ tabComponent: 'TableStructureTab',
+ tabPreviewMode: true,
+ props: {
+ schemaName,
+ pureName,
+ conid,
+ database,
+ objectTypeField,
+ defaultActionId: 'openStructure',
+ },
+ });
+ }}>Open structure
+
+ {
+ openNewTab({
+ title: pureName,
+ icon: 'img sql-file',
+ tabComponent: 'SqlObjectTab',
+ tabPreviewMode: true,
+ props: {
+ schemaName,
+ pureName,
+ conid,
+ database,
+ objectTypeField,
+ defaultActionId: 'showSql',
+ },
+ });
+ }}>View SQL
{/if}
diff --git a/packages/web/src/utility/applyScriptTemplate.ts b/packages/web/src/utility/applyScriptTemplate.ts
index 9ddeb1bc3..3b72f5877 100644
--- a/packages/web/src/utility/applyScriptTemplate.ts
+++ b/packages/web/src/utility/applyScriptTemplate.ts
@@ -138,4 +138,6 @@ export function getSupportedScriptTemplates(objectTypeField: string): { label: s
},
];
}
+
+ return [];
}