mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-22 16:55:59 +00:00
better column selection
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import _, { indexOf } from 'lodash';
|
import _, { indexOf, range } from 'lodash';
|
||||||
import { GridDisplay } from 'dbgate-datalib';
|
import { GridDisplay } from 'dbgate-datalib';
|
||||||
import { filterName } from 'dbgate-tools';
|
import { filterName } from 'dbgate-tools';
|
||||||
import CloseSearchButton from '../elements/CloseSearchButton.svelte';
|
import CloseSearchButton from '../elements/CloseSearchButton.svelte';
|
||||||
@@ -129,20 +129,28 @@
|
|||||||
currentColumnUniqueName = column.uniqueName;
|
currentColumnUniqueName = column.uniqueName;
|
||||||
}}
|
}}
|
||||||
on:mousemove={e => {
|
on:mousemove={e => {
|
||||||
if (e.buttons == 1 && !selectedColumns.includes(column.uniqueName)) {
|
if (e.buttons == 1 && dragStartColumnIndex != null && dragStartColumnIndex >= 0) {
|
||||||
selectedColumns = [...selectedColumns, column.uniqueName];
|
const index = _.findIndex(items, x => x.uniqueName == column.uniqueName);
|
||||||
if (domFocusField) domFocusField.focus();
|
if (index >= 0) {
|
||||||
|
selectedColumns = _.range(
|
||||||
|
Math.min(dragStartColumnIndex, index),
|
||||||
|
Math.max(dragStartColumnIndex, index) + 1
|
||||||
|
).map(i => items[i].uniqueName);
|
||||||
currentColumnUniqueName = column.uniqueName;
|
currentColumnUniqueName = column.uniqueName;
|
||||||
if (!isJsonView) {
|
if (!isJsonView) {
|
||||||
display.focusColumn(column.uniqueName);
|
display.focusColumn(column.uniqueName);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
on:mousedown={e => {
|
on:mousedown={e => {
|
||||||
dragStartColumnIndex = _.findIndex(items, x => x.uniqueName == column.uniqueName);
|
dragStartColumnIndex = _.findIndex(items, x => x.uniqueName == column.uniqueName);
|
||||||
selectedColumns = [column.uniqueName];
|
selectedColumns = [column.uniqueName];
|
||||||
if (domFocusField) domFocusField.focus();
|
if (domFocusField) domFocusField.focus();
|
||||||
currentColumnUniqueName = column.uniqueName;
|
currentColumnUniqueName = column.uniqueName;
|
||||||
|
if (!isJsonView) {
|
||||||
|
display.focusColumn(column.uniqueName);
|
||||||
|
}
|
||||||
}}
|
}}
|
||||||
on:setvisibility={e => {
|
on:setvisibility={e => {
|
||||||
for (const name of selectedColumns) {
|
for (const name of selectedColumns) {
|
||||||
|
|||||||
@@ -42,6 +42,9 @@
|
|||||||
on:click={e => {
|
on:click={e => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
}}
|
}}
|
||||||
|
on:mousedown={e => {
|
||||||
|
e.stopPropagation();
|
||||||
|
}}
|
||||||
on:change={() => {
|
on:change={() => {
|
||||||
const newValue = !column.isChecked;
|
const newValue = !column.isChecked;
|
||||||
display.setColumnVisibility(column.uniquePath, newValue);
|
display.setColumnVisibility(column.uniquePath, newValue);
|
||||||
|
|||||||
Reference in New Issue
Block a user