mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-05-03 12:53:58 +00:00
force new tab, if Open data from menu
This commit is contained in:
@@ -25,6 +25,7 @@ const menus = {
|
|||||||
{
|
{
|
||||||
label: 'Open data',
|
label: 'Open data',
|
||||||
tab: 'TableDataTab',
|
tab: 'TableDataTab',
|
||||||
|
forceNewTab: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Open structure',
|
label: 'Open structure',
|
||||||
@@ -55,6 +56,7 @@ const menus = {
|
|||||||
{
|
{
|
||||||
label: 'Open data',
|
label: 'Open data',
|
||||||
tab: 'ViewDataTab',
|
tab: 'ViewDataTab',
|
||||||
|
forceNewTab: true,
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
label: 'Show CREATE VIEW script',
|
label: 'Show CREATE VIEW script',
|
||||||
@@ -112,7 +114,8 @@ export async function openDatabaseObjectDetail(
|
|||||||
openNewTab,
|
openNewTab,
|
||||||
tabComponent,
|
tabComponent,
|
||||||
sqlTemplate,
|
sqlTemplate,
|
||||||
{ schemaName, pureName, conid, database, objectTypeField }
|
{ schemaName, pureName, conid, database, objectTypeField },
|
||||||
|
forceNewTab
|
||||||
) {
|
) {
|
||||||
const connection = await getConnectionInfo({ conid });
|
const connection = await getConnectionInfo({ conid });
|
||||||
const tooltip = `${connection.displayName || connection.server}\n${database}\n${fullDisplayName({
|
const tooltip = `${connection.displayName || connection.server}\n${database}\n${fullDisplayName({
|
||||||
@@ -120,7 +123,8 @@ export async function openDatabaseObjectDetail(
|
|||||||
pureName,
|
pureName,
|
||||||
})}`;
|
})}`;
|
||||||
|
|
||||||
openNewTab({
|
openNewTab(
|
||||||
|
{
|
||||||
title: pureName,
|
title: pureName,
|
||||||
tooltip,
|
tooltip,
|
||||||
icon: sqlTemplate ? 'img sql-file' : icons[objectTypeField],
|
icon: sqlTemplate ? 'img sql-file' : icons[objectTypeField],
|
||||||
@@ -133,7 +137,10 @@ export async function openDatabaseObjectDetail(
|
|||||||
objectTypeField,
|
objectTypeField,
|
||||||
initialArgs: sqlTemplate ? { sqlTemplate } : null,
|
initialArgs: sqlTemplate ? { sqlTemplate } : null,
|
||||||
},
|
},
|
||||||
});
|
},
|
||||||
|
undefined,
|
||||||
|
{ forceNewTab }
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function Menu({ data }) {
|
function Menu({ data }) {
|
||||||
@@ -233,7 +240,7 @@ function Menu({ data }) {
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
openDatabaseObjectDetail(openNewTab, menu.tab, menu.sqlTemplate, data);
|
openDatabaseObjectDetail(openNewTab, menu.tab, menu.sqlTemplate, data, menu.forceNewTab);
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@@ -258,7 +265,8 @@ function DatabaseObjectAppObject({ data, commonProps }) {
|
|||||||
conid,
|
conid,
|
||||||
database,
|
database,
|
||||||
objectTypeField,
|
objectTypeField,
|
||||||
}
|
},
|
||||||
|
false
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ export default function useOpenNewTab() {
|
|||||||
const openedTabs = useOpenedTabs();
|
const openedTabs = useOpenedTabs();
|
||||||
|
|
||||||
const openNewTab = React.useCallback(
|
const openNewTab = React.useCallback(
|
||||||
async (newTab, initialData = undefined) => {
|
async (newTab, initialData = undefined, options) => {
|
||||||
let existing = null;
|
let existing = null;
|
||||||
|
|
||||||
const { savedFile } = newTab.props || {};
|
const { savedFile } = newTab.props || {};
|
||||||
@@ -22,8 +22,10 @@ export default function useOpenNewTab() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const { forceNewTab } = options || {};
|
||||||
|
|
||||||
const component = tabs[newTab.tabComponent];
|
const component = tabs[newTab.tabComponent];
|
||||||
if (!existing && component && component.matchingProps) {
|
if (!existing && !forceNewTab && component && component.matchingProps) {
|
||||||
const testString = stableStringify(_.pick(newTab.props || {}, component.matchingProps));
|
const testString = stableStringify(_.pick(newTab.props || {}, component.matchingProps));
|
||||||
existing = openedTabs.find(
|
existing = openedTabs.find(
|
||||||
(x) =>
|
(x) =>
|
||||||
|
|||||||
Reference in New Issue
Block a user