Files
dbgate/packages/web/src/formview/openReferenceForm.ts
2023-01-22 18:22:18 +01:00

71 lines
1.7 KiB
TypeScript

import { getFilterValueExpression } from 'dbgate-filterparser';
import _ from 'lodash';
import openNewTab from '../utility/openNewTab';
export default function openReferenceForm(rowData, column, conid, database) {
openNewTab(
{
title: column.foreignKey.refTableName,
icon: 'img table',
tabComponent: 'TableDataTab',
props: {
schemaName: column.foreignKey.refSchemaName,
pureName: column.foreignKey.refTableName,
conid,
database,
objectTypeField: 'tables',
},
},
{
grid: {
isFormView: true,
filters: {
[column.foreignKey.columns[0].refColumnName]: getFilterValueExpression(
rowData[column.foreignKey.columns[0].columnName],
'string'
),
},
},
},
{
forceNewTab: true,
}
);
}
export function openPrimaryKeyForm(rowData, baseTable, conid, database) {
const formViewKey = _.fromPairs(
baseTable.primaryKey.columns.map(({ columnName }) => [columnName, rowData[columnName]])
);
openNewTab(
{
title: baseTable.pureName,
icon: 'img table',
tabComponent: 'TableDataTab',
props: {
schemaName: baseTable.schemaName,
pureName: baseTable.pureName,
conid,
database,
objectTypeField: 'tables',
},
},
{
grid: {
isFormView: true,
filters: {
[baseTable.primaryKey.columns[0].columnName]: getFilterValueExpression(
rowData[baseTable.primaryKey.columns[0].columnName],
'string'
),
},
formViewKey,
},
},
{
forceNewTab: true,
}
);
}