diff --git a/packages/frontend-core/src/components/grid/controls/ColumnsSettingContent.svelte b/packages/frontend-core/src/components/grid/controls/ColumnsSettingContent.svelte index 96027bd601..a967939bb3 100644 --- a/packages/frontend-core/src/components/grid/controls/ColumnsSettingContent.svelte +++ b/packages/frontend-core/src/components/grid/controls/ColumnsSettingContent.svelte @@ -91,6 +91,34 @@ return PERMISSION_OPTIONS.WRITABLE } + + function onRelationshipOpen(column, domElement) { + const relTable = $tables.list.find( + table => table._id === column.schema.tableId + ) + relationshipPanelColumns = Object.values(relTable?.schema || {}) + .filter( + schema => ![FieldType.LINK, FieldType.FORMULA].includes(schema.type) + ) + .map(column => { + const isPrimaryDisplay = relTable.primaryDisplay === column.name + return { + name: column.name, + label: column.name, + primaryDisplay: isPrimaryDisplay, + schema: { + ...column, + visible: !!isPrimaryDisplay, + }, + } + }) + .sort((a, b) => + a.primaryDisplay === b.primaryDisplay ? 0 : a.primaryDisplay ? -1 : 1 + ) + + relationshipPanelAnchor = domElement + relationshipPanelOpen = !relationshipPanelOpen + }