diff --git a/packages/web/src/Screen.svelte b/packages/web/src/Screen.svelte index f1e7b201c..8d2e919de 100644 --- a/packages/web/src/Screen.svelte +++ b/packages/web/src/Screen.svelte @@ -27,7 +27,7 @@
e.preventDefault()} > diff --git a/packages/web/src/designer/ColumnLine.svelte b/packages/web/src/designer/ColumnLine.svelte index c9e9954a1..11d86fc90 100644 --- a/packages/web/src/designer/ColumnLine.svelte +++ b/packages/web/src/designer/ColumnLine.svelte @@ -51,6 +51,7 @@
{ @@ -95,7 +96,7 @@ ...column, designerId, })} - use:contextMenu={createMenu} + use:contextMenu={settings?.canSelectColumns ? createMenu : '__no_menu'} > {#if settings?.allowColumnOperations} diff --git a/packages/web/src/designer/DesignerTable.svelte b/packages/web/src/designer/DesignerTable.svelte index 42496eb7a..39ea50ff8 100644 --- a/packages/web/src/designer/DesignerTable.svelte +++ b/packages/web/src/designer/DesignerTable.svelte @@ -107,16 +107,19 @@
onBringToFront(table)} + use:contextMenu={settings?.canSelectColumns ? '__no_menu' : createMenu} + use:moveDrag={settings?.canSelectColumns ? null : [handleMoveStart, handleMove, handleMoveEnd]} >
{alias || pureName}
{#if settings?.showTableCloseButton} @@ -152,15 +155,21 @@ border: 1px solid var(--theme-border); } + :global(.dbgate-screen) .wrapper:not(.canSelectColumns) { + cursor: pointer; + } + .header { font-weight: bold; text-align: center; padding: 2px; border-bottom: 1px solid var(--theme-border); - cursor: pointer; display: flex; justify-content: space-between; } + :global(.dbgate-screen) .header { + cursor: pointer; + } .header.isTable { background: var(--theme-bg-blue); } diff --git a/packages/web/src/designer/DiagramDesigner.svelte b/packages/web/src/designer/DiagramDesigner.svelte index d64f629dc..a893ab804 100644 --- a/packages/web/src/designer/DiagramDesigner.svelte +++ b/packages/web/src/designer/DiagramDesigner.svelte @@ -16,6 +16,7 @@ allowAddAllReferences: true, canArrange: true, canExport: true, + canSelectColumns: false, }} referenceComponent={DiagramDesignerReference} /> diff --git a/packages/web/src/designer/QueryDesigner.svelte b/packages/web/src/designer/QueryDesigner.svelte index 9482f66bb..5fdacd1c3 100644 --- a/packages/web/src/designer/QueryDesigner.svelte +++ b/packages/web/src/designer/QueryDesigner.svelte @@ -16,6 +16,7 @@ allowAddAllReferences: false, canArrange: false, canExport: false, + canSelectColumns: true, }} referenceComponent={QueryDesignerReference} /> diff --git a/packages/web/src/utility/contextMenu.ts b/packages/web/src/utility/contextMenu.ts index a89c2759c..5dc3d781e 100644 --- a/packages/web/src/utility/contextMenu.ts +++ b/packages/web/src/utility/contextMenu.ts @@ -9,13 +9,13 @@ export function registerMenu(...items) { setContext('componentContextMenu', [parentMenu, ...items]); } -export default function contextMenu(node, items = []) { +export default function contextMenu(node, items: any = []) { const handleContextMenu = async e => { e.preventDefault(); e.stopPropagation(); await invalidateCommands(); - + if (items) { const left = e.pageX; const top = e.pageY; @@ -23,6 +23,8 @@ export default function contextMenu(node, items = []) { } }; + if (items == '__no_menu') return; + node.addEventListener('contextmenu', handleContextMenu); return { diff --git a/packages/web/src/utility/moveDrag.ts b/packages/web/src/utility/moveDrag.ts index cac23b039..c94257bfb 100644 --- a/packages/web/src/utility/moveDrag.ts +++ b/packages/web/src/utility/moveDrag.ts @@ -1,4 +1,7 @@ -export default function moveDrag(node, [onStart, onMove, onEnd]) { +export default function moveDrag(node, dragEvents) { + if (!dragEvents) return; + + const [onStart, onMove, onEnd] = dragEvents; let startX = null; let startY = null;