mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-26 23:46:23 +00:00
diagram - move by click on table anywhere
This commit is contained in:
@@ -27,7 +27,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div
|
<div
|
||||||
class={`${$currentTheme} ${currentThemeType} root`}
|
class={`${$currentTheme} ${currentThemeType} root dbgate-screen`}
|
||||||
use:dragDropFileTarget
|
use:dragDropFileTarget
|
||||||
on:contextmenu={e => e.preventDefault()}
|
on:contextmenu={e => e.preventDefault()}
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -51,6 +51,7 @@
|
|||||||
|
|
||||||
<div
|
<div
|
||||||
class="line"
|
class="line"
|
||||||
|
class:canSelectColumns={settings?.canSelectColumns}
|
||||||
bind:this={domLine}
|
bind:this={domLine}
|
||||||
draggable={!!settings?.allowCreateRefByDrag}
|
draggable={!!settings?.allowCreateRefByDrag}
|
||||||
on:dragstart={e => {
|
on:dragstart={e => {
|
||||||
@@ -95,7 +96,7 @@
|
|||||||
...column,
|
...column,
|
||||||
designerId,
|
designerId,
|
||||||
})}
|
})}
|
||||||
use:contextMenu={createMenu}
|
use:contextMenu={settings?.canSelectColumns ? createMenu : '__no_menu'}
|
||||||
>
|
>
|
||||||
{#if settings?.allowColumnOperations}
|
{#if settings?.allowColumnOperations}
|
||||||
<CheckboxField
|
<CheckboxField
|
||||||
@@ -139,13 +140,13 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
.line:hover {
|
:global(.dbgate-screen) .line.canSelectColumns:hover {
|
||||||
background: var(--theme-bg-1);
|
background: var(--theme-bg-1);
|
||||||
}
|
}
|
||||||
.line.isDragSource {
|
:global(.dbgate-screen) .line.isDragSource {
|
||||||
background: var(--theme-bg-gold);
|
background: var(--theme-bg-gold);
|
||||||
}
|
}
|
||||||
.line.isDragTarget {
|
:global(.dbgate-screen) .line.isDragTarget {
|
||||||
background: var(--theme-bg-gold);
|
background: var(--theme-bg-gold);
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -107,16 +107,19 @@
|
|||||||
|
|
||||||
<div
|
<div
|
||||||
class="wrapper"
|
class="wrapper"
|
||||||
|
class:canSelectColumns={settings?.canSelectColumns}
|
||||||
style={`left: ${movingPosition ? movingPosition.left : left}px; top:${movingPosition ? movingPosition.top : top}px`}
|
style={`left: ${movingPosition ? movingPosition.left : left}px; top:${movingPosition ? movingPosition.top : top}px`}
|
||||||
bind:this={domWrapper}
|
bind:this={domWrapper}
|
||||||
on:mousedown={() => onBringToFront(table)}
|
on:mousedown={() => onBringToFront(table)}
|
||||||
|
use:contextMenu={settings?.canSelectColumns ? '__no_menu' : createMenu}
|
||||||
|
use:moveDrag={settings?.canSelectColumns ? null : [handleMoveStart, handleMove, handleMoveEnd]}
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
class="header"
|
class="header"
|
||||||
class:isTable={objectTypeField == 'tables'}
|
class:isTable={objectTypeField == 'tables'}
|
||||||
class:isView={objectTypeField == 'views'}
|
class:isView={objectTypeField == 'views'}
|
||||||
use:moveDrag={[handleMoveStart, handleMove, handleMoveEnd]}
|
use:moveDrag={settings?.canSelectColumns ? [handleMoveStart, handleMove, handleMoveEnd] : null}
|
||||||
use:contextMenu={createMenu}
|
use:contextMenu={settings?.canSelectColumns ? createMenu : '__no_menu'}
|
||||||
>
|
>
|
||||||
<div>{alias || pureName}</div>
|
<div>{alias || pureName}</div>
|
||||||
{#if settings?.showTableCloseButton}
|
{#if settings?.showTableCloseButton}
|
||||||
@@ -152,15 +155,21 @@
|
|||||||
border: 1px solid var(--theme-border);
|
border: 1px solid var(--theme-border);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
:global(.dbgate-screen) .wrapper:not(.canSelectColumns) {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
.header {
|
.header {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding: 2px;
|
padding: 2px;
|
||||||
border-bottom: 1px solid var(--theme-border);
|
border-bottom: 1px solid var(--theme-border);
|
||||||
cursor: pointer;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
:global(.dbgate-screen) .header {
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
.header.isTable {
|
.header.isTable {
|
||||||
background: var(--theme-bg-blue);
|
background: var(--theme-bg-blue);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
allowAddAllReferences: true,
|
allowAddAllReferences: true,
|
||||||
canArrange: true,
|
canArrange: true,
|
||||||
canExport: true,
|
canExport: true,
|
||||||
|
canSelectColumns: false,
|
||||||
}}
|
}}
|
||||||
referenceComponent={DiagramDesignerReference}
|
referenceComponent={DiagramDesignerReference}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
allowAddAllReferences: false,
|
allowAddAllReferences: false,
|
||||||
canArrange: false,
|
canArrange: false,
|
||||||
canExport: false,
|
canExport: false,
|
||||||
|
canSelectColumns: true,
|
||||||
}}
|
}}
|
||||||
referenceComponent={QueryDesignerReference}
|
referenceComponent={QueryDesignerReference}
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ export function registerMenu(...items) {
|
|||||||
setContext('componentContextMenu', [parentMenu, ...items]);
|
setContext('componentContextMenu', [parentMenu, ...items]);
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function contextMenu(node, items = []) {
|
export default function contextMenu(node, items: any = []) {
|
||||||
const handleContextMenu = async e => {
|
const handleContextMenu = async e => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
@@ -23,6 +23,8 @@ export default function contextMenu(node, items = []) {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
if (items == '__no_menu') return;
|
||||||
|
|
||||||
node.addEventListener('contextmenu', handleContextMenu);
|
node.addEventListener('contextmenu', handleContextMenu);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -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 startX = null;
|
||||||
let startY = null;
|
let startY = null;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user