form view - open reference

This commit is contained in:
Jan Prochazka
2023-01-22 18:22:18 +01:00
parent 98b26bb119
commit 11bb8faf91
3 changed files with 29 additions and 17 deletions

View File

@@ -353,6 +353,7 @@ export abstract class GridDisplay {
this.setConfig(cfg => ({ this.setConfig(cfg => ({
...cfg, ...cfg,
filters: _.omit(cfg.filters, [uniqueName]), filters: _.omit(cfg.filters, [uniqueName]),
formFilterColumns: (cfg.formFilterColumns || []).filter(x => x != uniqueName),
})); }));
this.reload(); this.reload();
} }
@@ -720,22 +721,23 @@ export abstract class GridDisplay {
}; };
} }
switchToFormView(rowData) { switchToFormView(rowIndex) {
if (!this.baseTable) return; // if (!this.baseTable) return;
const { primaryKey } = this.baseTable; // const { primaryKey } = this.baseTable;
if (!primaryKey) return; // if (!primaryKey) return;
const { columns } = primaryKey; // const { columns } = primaryKey;
this.setConfig(cfg => ({ this.setConfig(cfg => ({
...cfg, ...cfg,
isFormView: true, isFormView: true,
formViewKey: rowData formViewRecordNumber: rowIndex,
? _.pick( // formViewKey: rowData
rowData, // ? _.pick(
columns.map(x => x.columnName) // rowData,
) // columns.map(x => x.columnName)
: null, // )
formViewKeyRequested: null, // : null,
// formViewKeyRequested: null,
})); }));
} }

View File

@@ -123,7 +123,7 @@
export function switchToView(view) { export function switchToView(view) {
if (view == 'form') { if (view == 'form') {
display.switchToFormView(selectedCellsPublished()[0]?.rowData); display.switchToFormView(selectedCellsPublished()[0]?.row);
} }
if (view == 'table') { if (view == 'table') {
setConfig(cfg => ({ setConfig(cfg => ({

View File

@@ -1,10 +1,8 @@
import { getFilterValueExpression } from 'dbgate-filterparser';
import _ from 'lodash'; import _ from 'lodash';
import openNewTab from '../utility/openNewTab'; import openNewTab from '../utility/openNewTab';
export default function openReferenceForm(rowData, column, conid, database) { export default function openReferenceForm(rowData, column, conid, database) {
const formViewKey = _.fromPairs(
column.foreignKey.columns.map(({ refColumnName, columnName }) => [refColumnName, rowData[columnName]])
);
openNewTab( openNewTab(
{ {
title: column.foreignKey.refTableName, title: column.foreignKey.refTableName,
@@ -21,7 +19,12 @@ export default function openReferenceForm(rowData, column, conid, database) {
{ {
grid: { grid: {
isFormView: true, 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: { grid: {
isFormView: true, isFormView: true,
filters: {
[baseTable.primaryKey.columns[0].columnName]: getFilterValueExpression(
rowData[baseTable.primaryKey.columns[0].columnName],
'string'
),
},
formViewKey, formViewKey,
}, },
}, },