diff --git a/packages/datalib/src/GridDisplay.ts b/packages/datalib/src/GridDisplay.ts index 57427c25e..3da449061 100644 --- a/packages/datalib/src/GridDisplay.ts +++ b/packages/datalib/src/GridDisplay.ts @@ -353,6 +353,7 @@ export abstract class GridDisplay { this.setConfig(cfg => ({ ...cfg, filters: _.omit(cfg.filters, [uniqueName]), + formFilterColumns: (cfg.formFilterColumns || []).filter(x => x != uniqueName), })); this.reload(); } @@ -720,22 +721,23 @@ export abstract class GridDisplay { }; } - switchToFormView(rowData) { - if (!this.baseTable) return; - const { primaryKey } = this.baseTable; - if (!primaryKey) return; - const { columns } = primaryKey; + switchToFormView(rowIndex) { + // if (!this.baseTable) return; + // const { primaryKey } = this.baseTable; + // if (!primaryKey) return; + // const { columns } = primaryKey; this.setConfig(cfg => ({ ...cfg, isFormView: true, - formViewKey: rowData - ? _.pick( - rowData, - columns.map(x => x.columnName) - ) - : null, - formViewKeyRequested: null, + formViewRecordNumber: rowIndex, + // formViewKey: rowData + // ? _.pick( + // rowData, + // columns.map(x => x.columnName) + // ) + // : null, + // formViewKeyRequested: null, })); } diff --git a/packages/web/src/datagrid/DataGrid.svelte b/packages/web/src/datagrid/DataGrid.svelte index fbb12f302..6a1d851ad 100644 --- a/packages/web/src/datagrid/DataGrid.svelte +++ b/packages/web/src/datagrid/DataGrid.svelte @@ -123,7 +123,7 @@ export function switchToView(view) { if (view == 'form') { - display.switchToFormView(selectedCellsPublished()[0]?.rowData); + display.switchToFormView(selectedCellsPublished()[0]?.row); } if (view == 'table') { setConfig(cfg => ({ diff --git a/packages/web/src/formview/openReferenceForm.ts b/packages/web/src/formview/openReferenceForm.ts index fe6a7e878..0ed33b876 100644 --- a/packages/web/src/formview/openReferenceForm.ts +++ b/packages/web/src/formview/openReferenceForm.ts @@ -1,10 +1,8 @@ +import { getFilterValueExpression } from 'dbgate-filterparser'; import _ from 'lodash'; import openNewTab from '../utility/openNewTab'; export default function openReferenceForm(rowData, column, conid, database) { - const formViewKey = _.fromPairs( - column.foreignKey.columns.map(({ refColumnName, columnName }) => [refColumnName, rowData[columnName]]) - ); openNewTab( { title: column.foreignKey.refTableName, @@ -21,7 +19,12 @@ export default function openReferenceForm(rowData, column, conid, database) { { grid: { isFormView: true, - formViewKey, + filters: { + [column.foreignKey.columns[0].refColumnName]: getFilterValueExpression( + rowData[column.foreignKey.columns[0].columnName], + 'string' + ), + }, }, }, { @@ -50,6 +53,13 @@ export function openPrimaryKeyForm(rowData, baseTable, conid, database) { { grid: { isFormView: true, + filters: { + [baseTable.primaryKey.columns[0].columnName]: getFilterValueExpression( + rowData[baseTable.primaryKey.columns[0].columnName], + 'string' + ), + }, + formViewKey, }, },