diff --git a/packages/web/src/tabs/DbKeyTab.svelte b/packages/web/src/tabs/DbKeyTab.svelte new file mode 100644 index 000000000..e4858ce53 --- /dev/null +++ b/packages/web/src/tabs/DbKeyTab.svelte @@ -0,0 +1,145 @@ + + +{#if driver && driver.supportedKeyTypes && driver.supportedKeyTypes.length > 0} + +
+
+ + { + // @ts-ignore + keyName = e.target.value; + }} + /> + + +
+ + + ({ value: t.name, label: t.label }))} + value={type} + isNative + on:change={e => { + type = e.detail; + }} + /> + + + x.name == type).dbKeyFields} + {item} + onChangeItem={value => { + item = value; + }} + /> + +
+ +
+ +
+
+
+ +{:else} +
+
+
Loading...
+
+
+{/if} + + \ No newline at end of file diff --git a/packages/web/src/tabs/index.js b/packages/web/src/tabs/index.js index 1e34e5102..00d1fcb6a 100644 --- a/packages/web/src/tabs/index.js +++ b/packages/web/src/tabs/index.js @@ -18,6 +18,7 @@ import * as JsonTab from './JsonTab.svelte'; import * as ChangelogTab from './ChangelogTab.svelte'; import * as DiagramTab from './DiagramTab.svelte'; import * as DbKeyDetailTab from './DbKeyDetailTab.svelte'; +import * as DbKeyTab from './DbKeyTab.svelte'; import * as QueryDataTab from './QueryDataTab.svelte'; import * as ConnectionTab from './ConnectionTab.svelte'; import * as MapTab from './MapTab.svelte'; @@ -50,6 +51,7 @@ export default { ChangelogTab, DiagramTab, DbKeyDetailTab, + DbKeyTab, QueryDataTab, ConnectionTab, MapTab, diff --git a/packages/web/src/widgets/DbKeysTree.svelte b/packages/web/src/widgets/DbKeysTree.svelte index 512198a44..725071e2f 100644 --- a/packages/web/src/widgets/DbKeysTree.svelte +++ b/packages/web/src/widgets/DbKeysTree.svelte @@ -51,25 +51,34 @@ function handleAddKey() { const connection = $currentDatabase?.connection; const database = $currentDatabase?.name; - const driver = findEngineDriver(connection, getExtensions()); - showModal(AddDbKeyModal, { - conid: connection._id, - database, - driver, - onConfirm: async item => { - const type = driver.supportedKeyTypes.find(x => x.name == item.type); - - await apiCall('database-connections/call-method', { - conid: connection._id, - database, - method: type.addMethod, - args: [item.keyName, ...type.dbKeyFields.map(fld => item[fld.name])], - }); - - reloadModel(); + openNewTab({ + tabComponent: 'DbKeyTab', + title: 'Add key', + icon: 'img keydb', + props: { + conid: connection?._id, + database, }, }); + + // showModal(AddDbKeyModal, { + // conid: connection._id, + // database, + // driver, + // onConfirm: async item => { + // const type = driver.supportedKeyTypes.find(x => x.name == item.type); + + // await apiCall('database-connections/call-method', { + // conid: connection._id, + // database, + // method: type.addMethod, + // args: [item.keyName, ...type.dbKeyFields.map(fld => item[fld.name])], + // }); + + // reloadModel(); + // }, + // }); } $: differentFocusedDb =