diff --git a/packages/web/src/widgets/DbKeysSubTree.svelte b/packages/web/src/widgets/DbKeysSubTree.svelte index c9f081aad..529903a3a 100644 --- a/packages/web/src/widgets/DbKeysSubTree.svelte +++ b/packages/web/src/widgets/DbKeysSubTree.svelte @@ -16,6 +16,7 @@ export let indentLevel = 0; export let reloadToken = 0; + export let connection; let reloadToken2 = 0; let maxShowCount = SHOW_INCREMENT; @@ -33,6 +34,7 @@ {conid} {database} {root} + {connection} {item} {indentLevel} onRefreshParent={() => { diff --git a/packages/web/src/widgets/DbKeysTree.svelte b/packages/web/src/widgets/DbKeysTree.svelte index d785e6b7d..4baecfcf3 100644 --- a/packages/web/src/widgets/DbKeysTree.svelte +++ b/packages/web/src/widgets/DbKeysTree.svelte @@ -12,6 +12,7 @@ import { showModal } from '../modals/modalTools'; import { currentDatabase, getExtensions } from '../stores'; import { apiCall } from '../utility/api'; + import { useConnectionInfo } from '../utility/metadataLoaders'; import DbKeysSubTree from './DbKeysSubTree.svelte'; import WidgetsInnerContainer from './WidgetsInnerContainer.svelte'; @@ -62,5 +63,5 @@ - + diff --git a/packages/web/src/widgets/DbKeysTreeNode.svelte b/packages/web/src/widgets/DbKeysTreeNode.svelte index 90e282b77..f1fc56ebc 100644 --- a/packages/web/src/widgets/DbKeysTreeNode.svelte +++ b/packages/web/src/widgets/DbKeysTreeNode.svelte @@ -17,6 +17,7 @@ export let conid; export let database; + export let connection; export let root; @@ -29,8 +30,7 @@ let reloadToken = 0; // $: console.log(item.text, indentLevel); - async function createMenu() { - const connection = await getConnectionInfo({ conid }); + function createMenu() { return [ item.key != null && !connection?.isReadOnly && { @@ -83,27 +83,28 @@ reloadToken += 1; }, }, - item.type == 'dir' && { - label: 'Delete branch', - onClick: () => { - const branch = `${item.root}:*`; - showModal(ConfirmModal, { - message: `Really delete branch ${branch} with all keys?`, - onConfirm: async () => { - await apiCall('database-connections/call-method', { - conid, - database, - method: 'mdel', - args: [branch], - }); + item.type == 'dir' && + !connection?.isReadOnly && { + label: 'Delete branch', + onClick: () => { + const branch = `${item.root}:*`; + showModal(ConfirmModal, { + message: `Really delete branch ${branch} with all keys?`, + onConfirm: async () => { + await apiCall('database-connections/call-method', { + conid, + database, + method: 'mdel', + args: [branch], + }); - if (onRefreshParent) { - onRefreshParent(); - } - }, - }); + if (onRefreshParent) { + onRefreshParent(); + } + }, + }); + }, }, - }, , { label: 'Generate script', @@ -169,5 +170,5 @@ --> {#if isExpanded} - + {/if}