diff --git a/frontend/src/app/components/dashboard/db-tables-data-source.ts b/frontend/src/app/components/dashboard/db-tables-data-source.ts index e4db0abdd..654db47f5 100644 --- a/frontend/src/app/components/dashboard/db-tables-data-source.ts +++ b/frontend/src/app/components/dashboard/db-tables-data-source.ts @@ -148,12 +148,16 @@ export class TablesDataSource implements DataSource { .subscribe((res: any) => { if (res.rows && res.rows.length) { const firstRow = res.rows[0]; + + this.foreignKeysList = res.foreignKeys.map((field) => {return field['column_name']}); + this.foreignKeys = Object.assign({}, ...res.foreignKeys.map((foreignKey: TableForeignKey) => ({[foreignKey.column_name]: foreignKey}))); + this._tableRow.fetchTableRow( connectionID, tableName, res.primaryColumns.reduce((keys, column) => { - if (res.foreignKeys.map(foreignKey => foreignKey.column_name).includes(column.column_name)) { - const referencedColumnNameOfForeignKey = res.foreignKeys[column.column_name].referenced_column_name; + if (this.foreignKeysList.includes(column.column_name)) { + const referencedColumnNameOfForeignKey = this.foreignKeys[column.column_name].referenced_column_name; keys[column.column_name] = firstRow[column.column_name][referencedColumnNameOfForeignKey]; } else { keys[column.column_name] = firstRow[column.column_name]; @@ -249,9 +253,6 @@ export class TablesDataSource implements DataSource { this.sortByColumns = res.sortable_by; - this.foreignKeysList = res.foreignKeys.map((field) => {return field['column_name']}); - this.foreignKeys = Object.assign({}, ...res.foreignKeys.map((foreignKey: TableForeignKey) => ({[foreignKey.column_name]: foreignKey}))); - if (res.widgets) { this.widgetsList = res.widgets.map((widget: Widget) => {return widget['field_name']}); this.widgetsCount = this.widgetsList.length; diff --git a/frontend/src/app/components/db-table-row-edit/db-table-row-edit.component.ts b/frontend/src/app/components/db-table-row-edit/db-table-row-edit.component.ts index 4adc0ed46..6144653cc 100644 --- a/frontend/src/app/components/db-table-row-edit/db-table-row-edit.component.ts +++ b/frontend/src/app/components/db-table-row-edit/db-table-row-edit.component.ts @@ -300,12 +300,15 @@ export class DbTableRowEditComponent implements OnInit { if (res.rows && res.rows.length) { const firstRow = res.rows[0]; + + const relatedTableForeignKeys = Object.assign({}, ...res.foreignKeys.map((foreignKey: TableForeignKey) => ({[foreignKey.column_name]: foreignKey}))); + this._tableRow.fetchTableRow( this.connectionID, table.table_name, res.primaryColumns.reduce((keys, column) => { if (res.foreignKeys.map(foreignKey => foreignKey.column_name).includes(column.column_name)) { - const referencedColumnNameOfForeignKey = res.foreignKeys[column.column_name]?.referenced_column_name; + const referencedColumnNameOfForeignKey = relatedTableForeignKeys[column.column_name]?.referenced_column_name; keys[column.column_name] = firstRow[column.column_name][referencedColumnNameOfForeignKey]; } else { keys[column.column_name] = firstRow[column.column_name]; @@ -321,8 +324,6 @@ export class DbTableRowEditComponent implements OnInit { let identityColumn = res.identity_column; let fieldsOrder = []; - // console.log(res); - const foreignKeyMap = {}; for (const fk of res.foreignKeys) { foreignKeyMap[fk.column_name] = fk.referenced_column_name;