diff --git a/packages/web/src/appobj/DatabaseObjectAppObject.svelte b/packages/web/src/appobj/DatabaseObjectAppObject.svelte
index 5115bce25..702162dca 100644
--- a/packages/web/src/appobj/DatabaseObjectAppObject.svelte
+++ b/packages/web/src/appobj/DatabaseObjectAppObject.svelte
@@ -624,11 +624,12 @@
openDatabaseObjectDetail(
menu.tab,
menu.scriptTemplate,
- data,
+ { ...data, defaultActionId: menu.defaultActionId },
menu.forceNewTab,
menu.initialData,
menu.icon,
- data
+ data,
+ !!menu.defaultActionId
);
}
}
@@ -658,7 +659,7 @@
export async function openDatabaseObjectDetail(
tabComponent,
scriptTemplate,
- { schemaName, pureName, conid, database, objectTypeField },
+ { schemaName, pureName, conid, database, objectTypeField, defaultActionId },
forceNewTab?,
initialData?,
icon?,
@@ -690,6 +691,7 @@
database,
objectTypeField,
initialArgs: scriptTemplate ? { scriptTemplate } : null,
+ defaultActionId,
},
},
initialData,
@@ -702,24 +704,39 @@
const driver = findEngineDriver(data, getExtensions());
const activeTab = getActiveTab();
- console.log('activeTab', activeTab);
+ const activeTabProps = activeTab?.props || {};
+ const activeDefaultActionId = activeTab?.props?.defaultActionId;
- const configuredAction = getCurrentSettings()[`defaultAction.dbObjectClick.${objectTypeField}`];
- const overrideMenu = createMenus(objectTypeField, driver).find(x => x.label && x.label == configuredAction);
- if (overrideMenu) {
- databaseObjectMenuClickHandler(data, overrideMenu);
+ if (matchDatabaseObjectAppObject(data, activeTabProps)) {
return;
}
+ const availableDefaultActions = defaultDatabaseObjectAppObjectActions[objectTypeField];
+
+ const configuredActionId = getCurrentSettings()[`defaultAction.dbObjectClick.${objectTypeField}`];
+ const prefferedAction =
+ availableDefaultActions.find(x => x.defaultActionId == activeDefaultActionId) ??
+ availableDefaultActions.find(x => x.defaultActionId == configuredActionId) ??
+ availableDefaultActions[0];
+
+ // console.log('activeTab', activeTab);
+
+ // const overrideMenu = createMenus(objectTypeField, driver).find(x => x.label && x.label == configuredAction);
+ // if (overrideMenu) {
+ // databaseObjectMenuClickHandler(data, overrideMenu);
+ // return;
+ // }
+
openDatabaseObjectDetail(
- defaultTabs[objectTypeField],
- null,
+ prefferedAction.tab,
+ activeTabProps?.scriptTemplate,
{
schemaName,
pureName,
conid,
database,
objectTypeField,
+ defaultActionId: prefferedAction.defaultActionId,
},
forceNewTab,
null,
diff --git a/packages/web/src/settings/FormDefaultActionField.svelte b/packages/web/src/settings/FormDefaultActionField.svelte
new file mode 100644
index 000000000..8ddac3166
--- /dev/null
+++ b/packages/web/src/settings/FormDefaultActionField.svelte
@@ -0,0 +1,18 @@
+
+
+ ({
+ value: x.defaultActionId,
+ label: x.label,
+ }))}
+/>
diff --git a/packages/web/src/settings/SettingsModal.svelte b/packages/web/src/settings/SettingsModal.svelte
index 45ffc7fac..8dd8e2e68 100644
--- a/packages/web/src/settings/SettingsModal.svelte
+++ b/packages/web/src/settings/SettingsModal.svelte
@@ -37,6 +37,7 @@
import { useSettings } from '../utility/metadataLoaders';
import { derived } from 'svelte/store';
import { safeFormatDate } from 'dbgate-tools';
+ import FormDefaultActionField from './FormDefaultActionField.svelte';
const electron = getElectron();
let restartWarning = false;
@@ -279,56 +280,11 @@ ORDER BY
]}
/>
-
-
-
-
-
-
-
+
+
+
+
+
Confirmations