mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-01 16:43:59 +00:00
app object menu from tab
This commit is contained in:
@@ -1,6 +1,7 @@
|
|||||||
<script lang="ts" context="module">
|
<script lang="ts" context="module">
|
||||||
export const extractKey = ({ schemaName, pureName }) => (schemaName ? `${schemaName}.${pureName}` : pureName);
|
export const extractKey = ({ schemaName, pureName }) => (schemaName ? `${schemaName}.${pureName}` : pureName);
|
||||||
export const createMatcher = ({ schemaName, pureName }) => filter => filterName(filter, pureName, schemaName);
|
export const createMatcher = ({ schemaName, pureName }) => filter => filterName(filter, pureName, schemaName);
|
||||||
|
export const createTitle = ({ pureName }) => pureName;
|
||||||
const electron = getElectron();
|
const electron = getElectron();
|
||||||
|
|
||||||
export const databaseObjectIcons = {
|
export const databaseObjectIcons = {
|
||||||
@@ -345,7 +346,8 @@
|
|||||||
{ schemaName, pureName, conid, database, objectTypeField },
|
{ schemaName, pureName, conid, database, objectTypeField },
|
||||||
forceNewTab?,
|
forceNewTab?,
|
||||||
initialData?,
|
initialData?,
|
||||||
icon?
|
icon?,
|
||||||
|
appObjectData?
|
||||||
) {
|
) {
|
||||||
const connection = await getConnectionInfo({ conid });
|
const connection = await getConnectionInfo({ conid });
|
||||||
const tooltip = `${getConnectionLabel(connection)}\n${database}\n${fullDisplayName({
|
const tooltip = `${getConnectionLabel(connection)}\n${database}\n${fullDisplayName({
|
||||||
@@ -359,6 +361,8 @@
|
|||||||
tooltip,
|
tooltip,
|
||||||
icon: icon || (scriptTemplate ? 'img sql-file' : databaseObjectIcons[objectTypeField]),
|
icon: icon || (scriptTemplate ? 'img sql-file' : databaseObjectIcons[objectTypeField]),
|
||||||
tabComponent: scriptTemplate ? 'QueryTab' : tabComponent,
|
tabComponent: scriptTemplate ? 'QueryTab' : tabComponent,
|
||||||
|
appObject: 'DatabaseObjectAppObject',
|
||||||
|
appObjectData,
|
||||||
props: {
|
props: {
|
||||||
schemaName,
|
schemaName,
|
||||||
pureName,
|
pureName,
|
||||||
@@ -388,7 +392,8 @@
|
|||||||
},
|
},
|
||||||
forceNewTab,
|
forceNewTab,
|
||||||
null,
|
null,
|
||||||
null
|
null,
|
||||||
|
data
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -637,7 +642,8 @@
|
|||||||
data,
|
data,
|
||||||
menu.forceNewTab,
|
menu.forceNewTab,
|
||||||
menu.initialData,
|
menu.initialData,
|
||||||
menu.icon
|
menu.icon,
|
||||||
|
data
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -650,6 +656,10 @@
|
|||||||
if (_.isNaN(num)) return value;
|
if (_.isNaN(num)) return value;
|
||||||
return num.toLocaleString();
|
return num.toLocaleString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function createAppObjectMenu(data) {
|
||||||
|
return createDatabaseObjectMenu(data);
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
|||||||
5
packages/web/src/appobj/index.js
Normal file
5
packages/web/src/appobj/index.js
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
import * as DatabaseObjectAppObject from './DatabaseObjectAppObject.svelte';
|
||||||
|
|
||||||
|
export default {
|
||||||
|
DatabaseObjectAppObject,
|
||||||
|
};
|
||||||
@@ -193,6 +193,7 @@
|
|||||||
import FavoriteModal from '../modals/FavoriteModal.svelte';
|
import FavoriteModal from '../modals/FavoriteModal.svelte';
|
||||||
import { showModal } from '../modals/modalTools';
|
import { showModal } from '../modals/modalTools';
|
||||||
import newQuery from '../query/newQuery';
|
import newQuery from '../query/newQuery';
|
||||||
|
import appObjectTypes from '../appobj';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
currentDatabase,
|
currentDatabase,
|
||||||
@@ -258,7 +259,9 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
const getContextMenu = tab => () => {
|
const getContextMenu = tab => () => {
|
||||||
const { tabid, props, tabComponent } = tab;
|
const { tabid, props, tabComponent, appObject, appObjectData } = tab;
|
||||||
|
|
||||||
|
const appobj = appObject ? appObjectTypes[appObject] : null;
|
||||||
|
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
@@ -287,6 +290,14 @@
|
|||||||
onClick: () => showModal(FavoriteModal, { savingTab: tab }),
|
onClick: () => showModal(FavoriteModal, { savingTab: tab }),
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
{ divider: true },
|
||||||
|
appobj &&
|
||||||
|
appobj.createAppObjectMenu &&
|
||||||
|
appobj.createTitle &&
|
||||||
|
appObjectData && {
|
||||||
|
text: appobj.createTitle(appObjectData),
|
||||||
|
submenu: appobj.createAppObjectMenu(appObjectData),
|
||||||
|
},
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user