diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte
index a19ffa1a3..27268236b 100644
--- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte
+++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte
@@ -60,6 +60,7 @@
isExport?: boolean;
isImport?: boolean;
isActiveChart?: boolean;
+ isShowSql?: boolean;
scriptTemplate?: string;
sqlGeneratorProps?: any;
isDropCollection?: boolean;
@@ -152,6 +153,10 @@
{
divider: true,
},
+ {
+ isShowSql: true,
+ label: 'Show SQL',
+ },
createScriptTemplatesSubmenu('tables'),
{
label: 'SQL Generator: CREATE TABLE',
@@ -222,6 +227,10 @@
{
divider: true,
},
+ {
+ isShowSql: true,
+ label: 'Show SQL',
+ },
createScriptTemplatesSubmenu('views'),
{
label: 'SQL Generator: CREATE VIEW',
@@ -276,6 +285,10 @@
{
divider: true,
},
+ {
+ isShowSql: true,
+ label: 'Show SQL',
+ },
createScriptTemplatesSubmenu('matviews'),
{
label: 'SQL Generator: CREATE MATERIALIZED VIEW',
@@ -310,6 +323,10 @@
isRename: true,
requiresWriteAccess: true,
},
+ {
+ isShowSql: true,
+ label: 'Show SQL',
+ },
createScriptTemplatesSubmenu('procedures'),
{
label: 'SQL Generator: CREATE PROCEDURE',
@@ -336,6 +353,10 @@
isRename: true,
requiresWriteAccess: true,
},
+ {
+ isShowSql: true,
+ label: 'Show SQL',
+ },
createScriptTemplatesSubmenu('functions'),
{
label: 'SQL Generator: CREATE FUNCTION',
@@ -611,6 +632,18 @@
// fixedTargetPureName: data.pureName,
// },
// });
+ } else if (menu.isShowSql) {
+ openNewTab({
+ title: data.pureName,
+ icon: 'img sql-file',
+ tabComponent: 'SqlObjectTab',
+ tabPreviewMode: true,
+ props: {
+ appObjectData: data,
+ conid: data.conid,
+ database: data.database,
+ },
+ });
} else {
openDatabaseObjectDetail(
menu.tab,
diff --git a/packages/web/src/tabs/SqlObjectTab.svelte b/packages/web/src/tabs/SqlObjectTab.svelte
new file mode 100644
index 000000000..8c17026cc
--- /dev/null
+++ b/packages/web/src/tabs/SqlObjectTab.svelte
@@ -0,0 +1,70 @@
+
+
+
+
+{#await applyScriptTemplate(scriptTemplate, $extensions, appObjectData)}
+
+{:then sql}
+ {
+ activator.activate();
+ domToolStrip?.activate();
+ invalidateCommands();
+ }}
+ bind:this={domEditor}
+ mode={driver?.editorMode || 'sql'}
+ />
+{/await}
diff --git a/packages/web/src/tabs/index.js b/packages/web/src/tabs/index.js
index 2e35ac00e..7ae3b90aa 100644
--- a/packages/web/src/tabs/index.js
+++ b/packages/web/src/tabs/index.js
@@ -28,6 +28,7 @@ import * as ServerSummaryTab from './ServerSummaryTab.svelte';
import * as ProfilerTab from './ProfilerTab.svelte';
import * as DataDuplicatorTab from './DataDuplicatorTab.svelte';
import * as ImportExportTab from './ImportExportTab.svelte';
+import * as SqlObjectTab from './SqlObjectTab.svelte';
import protabs from './index-pro';
@@ -62,5 +63,6 @@ export default {
ProfilerTab,
DataDuplicatorTab,
ImportExportTab,
+ SqlObjectTab,
...protabs,
};