From ded6c62aa51ed7e9d8e7dd9b49e1c45e3e07391d Mon Sep 17 00:00:00 2001 From: Lyubov Voloshko Date: Tue, 8 Jul 2025 15:07:23 +0300 Subject: [PATCH] record view, foreign key: format foreign key fields in accordance with table formatting --- .../dashboard/db-table/db-table.component.ts | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/frontend/src/app/components/dashboard/db-table/db-table.component.ts b/frontend/src/app/components/dashboard/db-table/db-table.component.ts index 93431ad47..bbe84a653 100644 --- a/frontend/src/app/components/dashboard/db-table/db-table.component.ts +++ b/frontend/src/app/components/dashboard/db-table/db-table.component.ts @@ -37,6 +37,7 @@ import { RouterModule } from '@angular/router'; import { SelectionModel } from '@angular/cdk/collections'; import { TableRowService } from 'src/app/services/table-row.service'; import { TableStateService } from 'src/app/services/table-state.service'; +import { formatFieldValue } from 'src/app/lib/format-field-value'; import { normalizeTableName } from '../../../lib/normalize' interface Column { @@ -425,10 +426,20 @@ export class DbTableComponent implements OnInit { this._tableRow.fetchTableRow(this.connectionID, foreignKeys.referenced_table_name, {[foreignKeys.referenced_column_name]: row[foreignKeys.referenced_column_name]}) .subscribe(res => { + const filedsTypes = res.structure.reduce((acc, field) => { + acc[field.column_name ] = field.data_type; + return acc; + }, {}); + + const formattedRecord = Object.entries(res.row).reduce((acc, [key, value]) => { + acc[key] = formatFieldValue(value, filedsTypes[key]); + return acc; + }, {}) + this._tableState.selectRow({ connectionID: this.connectionID, tableName: foreignKeys.referenced_table_name, - record: res.row, + record: formattedRecord, columnsOrder: res.list_fields, primaryKeys: { [foreignKeys.referenced_column_name]: res.row[foreignKeys.referenced_column_name]