app object menu from tab

This commit is contained in:
Jan Prochazka
2022-06-02 16:09:20 +02:00
parent fa357cf8ce
commit 97d259cd1e
3 changed files with 30 additions and 4 deletions

View File

@@ -1,6 +1,7 @@
<script lang="ts" context="module">
export const extractKey = ({ schemaName, pureName }) => (schemaName ? `${schemaName}.${pureName}` : pureName);
export const createMatcher = ({ schemaName, pureName }) => filter => filterName(filter, pureName, schemaName);
export const createTitle = ({ pureName }) => pureName;
const electron = getElectron();
export const databaseObjectIcons = {
@@ -345,7 +346,8 @@
{ schemaName, pureName, conid, database, objectTypeField },
forceNewTab?,
initialData?,
icon?
icon?,
appObjectData?
) {
const connection = await getConnectionInfo({ conid });
const tooltip = `${getConnectionLabel(connection)}\n${database}\n${fullDisplayName({
@@ -359,6 +361,8 @@
tooltip,
icon: icon || (scriptTemplate ? 'img sql-file' : databaseObjectIcons[objectTypeField]),
tabComponent: scriptTemplate ? 'QueryTab' : tabComponent,
appObject: 'DatabaseObjectAppObject',
appObjectData,
props: {
schemaName,
pureName,
@@ -388,7 +392,8 @@
},
forceNewTab,
null,
null
null,
data
);
}
@@ -637,7 +642,8 @@
data,
menu.forceNewTab,
menu.initialData,
menu.icon
menu.icon,
data
);
}
},
@@ -650,6 +656,10 @@
if (_.isNaN(num)) return value;
return num.toLocaleString();
}
export function createAppObjectMenu(data) {
return createDatabaseObjectMenu(data);
}
</script>
<script lang="ts">

View File

@@ -0,0 +1,5 @@
import * as DatabaseObjectAppObject from './DatabaseObjectAppObject.svelte';
export default {
DatabaseObjectAppObject,
};

View File

@@ -193,6 +193,7 @@
import FavoriteModal from '../modals/FavoriteModal.svelte';
import { showModal } from '../modals/modalTools';
import newQuery from '../query/newQuery';
import appObjectTypes from '../appobj';
import {
currentDatabase,
@@ -258,7 +259,9 @@
};
const getContextMenu = tab => () => {
const { tabid, props, tabComponent } = tab;
const { tabid, props, tabComponent, appObject, appObjectData } = tab;
const appobj = appObject ? appObjectTypes[appObject] : null;
return [
{
@@ -287,6 +290,14 @@
onClick: () => showModal(FavoriteModal, { savingTab: tab }),
},
],
{ divider: true },
appobj &&
appobj.createAppObjectMenu &&
appobj.createTitle &&
appObjectData && {
text: appobj.createTitle(appObjectData),
submenu: appobj.createAppObjectMenu(appObjectData),
},
];
};