diff --git a/packages/web/src/datagrid/DataFilterControl.svelte b/packages/web/src/datagrid/DataFilterControl.svelte index 9bb297600..c6f970759 100644 --- a/packages/web/src/datagrid/DataFilterControl.svelte +++ b/packages/web/src/datagrid/DataFilterControl.svelte @@ -204,7 +204,8 @@ driver, pureName: foreignKey.refTableName, schemaName: foreignKey.refSchemaName, - onConfirm: setFilter, + multiselect: true, + onConfirm: keys => setFilter(keys.join(',')), }); } diff --git a/packages/web/src/datagrid/DataGridCell.svelte b/packages/web/src/datagrid/DataGridCell.svelte index 7e509608d..10ce2fcf1 100644 --- a/packages/web/src/datagrid/DataGridCell.svelte +++ b/packages/web/src/datagrid/DataGridCell.svelte @@ -38,6 +38,8 @@ import ShowFormButton from '../formview/ShowFormButton.svelte'; import { getBoolSettingsValue } from '../settings/settingsTools'; import { arrayToHexString } from 'dbgate-tools'; + import { showModal } from '../modals/modalTools'; + import DictionaryLookupModal from '../modals/DictionaryLookupModal.svelte'; export let rowIndex; export let col; @@ -58,6 +60,8 @@ export let onSetFormView; export let isDynamicStructure = false; export let isAutoFillMarker = false; + export let isCurrentCell = false; + export let onDictionaryLookup = null; $: value = col.isStructured ? _.get(rowData || {}, col.uniquePath) : (rowData || {})[col.uniqueName]; @@ -119,9 +123,13 @@ > {/if} - {#if col.foreignKey && rowData && rowData[col.uniqueName]} + {#if col.foreignKey && rowData && rowData[col.uniqueName] && !isCurrentCell} onSetFormView(rowData, col)} /> {/if} + + {#if col.foreignKey && isCurrentCell} + + {/if} {/if} {#if isAutoFillMarker} diff --git a/packages/web/src/datagrid/DataGridCore.svelte b/packages/web/src/datagrid/DataGridCore.svelte index 4d89da9b8..e786450db 100644 --- a/packages/web/src/datagrid/DataGridCore.svelte +++ b/packages/web/src/datagrid/DataGridCore.svelte @@ -191,7 +191,6 @@ if (allRowCount == null) return 'Loading row count...'; return `Rows: ${allRowCount.toLocaleString()}`; } - @@ -51,8 +68,11 @@ {rowIndex} {rowData} {col} + {conid} + {database} allowHintField={hintFieldsAllowed?.includes(col.uniqueName)} isSelected={frameSelection ? false : cellIsSelected(rowIndex, col.colIndex, selectedCells)} + isCurrentCell={col.colIndex == currentCellColumn} isFrameSelected={frameSelection ? cellIsSelected(rowIndex, col.colIndex, selectedCells) : false} isAutofillSelected={cellIsSelected(rowIndex, col.colIndex, autofillSelectedCells)} isFocusedColumn={col.uniqueName == focusedColumn} @@ -68,6 +88,7 @@ autofillMarkerCell[1] == col.colIndex && autofillMarkerCell[0] == rowIndex && grider.editable} + onDictionaryLookup={() => handleLookup(col)} /> {/if} {/each} diff --git a/packages/web/src/formview/ShowFormButton.svelte b/packages/web/src/formview/ShowFormButton.svelte index 6c3fe51ac..0eb4c1901 100644 --- a/packages/web/src/formview/ShowFormButton.svelte +++ b/packages/web/src/formview/ShowFormButton.svelte @@ -1,9 +1,11 @@ -
- +
+