better column selection

This commit is contained in:
Jan Prochazka
2021-12-30 21:16:20 +01:00
parent 250d52131c
commit 9f3f4bdbd4
2 changed files with 18 additions and 7 deletions

View File

@@ -1,5 +1,5 @@
<script lang="ts">
import _, { indexOf } from 'lodash';
import _, { indexOf, range } from 'lodash';
import { GridDisplay } from 'dbgate-datalib';
import { filterName } from 'dbgate-tools';
import CloseSearchButton from '../elements/CloseSearchButton.svelte';
@@ -129,12 +129,17 @@
currentColumnUniqueName = column.uniqueName;
}}
on:mousemove={e => {
if (e.buttons == 1 && !selectedColumns.includes(column.uniqueName)) {
selectedColumns = [...selectedColumns, column.uniqueName];
if (domFocusField) domFocusField.focus();
currentColumnUniqueName = column.uniqueName;
if (!isJsonView) {
display.focusColumn(column.uniqueName);
if (e.buttons == 1 && dragStartColumnIndex != null && dragStartColumnIndex >= 0) {
const index = _.findIndex(items, x => x.uniqueName == column.uniqueName);
if (index >= 0) {
selectedColumns = _.range(
Math.min(dragStartColumnIndex, index),
Math.max(dragStartColumnIndex, index) + 1
).map(i => items[i].uniqueName);
currentColumnUniqueName = column.uniqueName;
if (!isJsonView) {
display.focusColumn(column.uniqueName);
}
}
}
}}
@@ -143,6 +148,9 @@
selectedColumns = [column.uniqueName];
if (domFocusField) domFocusField.focus();
currentColumnUniqueName = column.uniqueName;
if (!isJsonView) {
display.focusColumn(column.uniqueName);
}
}}
on:setvisibility={e => {
for (const name of selectedColumns) {

View File

@@ -42,6 +42,9 @@
on:click={e => {
e.stopPropagation();
}}
on:mousedown={e => {
e.stopPropagation();
}}
on:change={() => {
const newValue = !column.isChecked;
display.setColumnVisibility(column.uniquePath, newValue);