Browse Source

fix: duplicate order for link columns

Signed-off-by: mertmit <mertmit99@gmail.com>
pull/6953/head
mertmit 10 months ago
parent
commit
e56df96c8d
  1. 3
      packages/nocodb/src/helpers/columnHelpers.ts
  2. 25
      packages/nocodb/src/services/columns.service.ts

3
packages/nocodb/src/helpers/columnHelpers.ts

@ -35,6 +35,7 @@ export async function createHmAndBtColumn(
isSystemCol = false,
columnMeta = null,
isLinks = false,
colExtra?: any,
) {
// save bt column
{
@ -59,6 +60,7 @@ export async function createHmAndBtColumn(
system: isSystemCol || parent.id === child.id,
fk_col_name: fkColName,
fk_index_name: fkColName,
...(type === 'bt' ? colExtra : {}),
});
}
// save hm column
@ -85,6 +87,7 @@ export async function createHmAndBtColumn(
fk_col_name: fkColName,
fk_index_name: fkColName,
meta,
...(type === 'hm' ? colExtra : {}),
});
}
}

25
packages/nocodb/src/services/columns.service.ts

@ -1127,6 +1127,12 @@ export class ColumnsService {
}
let colBody: any = param.column;
const colExtra = {
view_id: colBody.view_id,
column_order: colBody.column_order,
};
switch (colBody.uidt) {
case UITypes.Rollup:
{
@ -1151,7 +1157,13 @@ export class ColumnsService {
case UITypes.Links:
case UITypes.LinkToAnotherRecord:
await this.createLTARColumn({ ...param, source, base, reuse });
await this.createLTARColumn({
...param,
source,
base,
reuse,
colExtra,
});
this.appHooksService.emit(AppEvents.RELATION_DELETE, {
column: {
@ -1818,6 +1830,7 @@ export class ColumnsService {
source: Source;
base: Base;
reuse?: ReusableParams;
colExtra?: any;
}) {
validateParams(['parentId', 'childId', 'type'], param.column);
@ -1943,6 +1956,7 @@ export class ColumnsService {
null,
param.column['meta'],
isLinks,
param.colExtra,
);
} else if ((param.column as LinkToAnotherColumnReqType).type === 'mm') {
const aTn = `${param.base?.prefix ?? ''}_nc_m2m_${randomID()}`;
@ -2048,6 +2062,9 @@ export class ColumnsService {
foreignKeyName1,
(param.column as LinkToAnotherColumnReqType).virtual,
true,
null,
false,
param.colExtra,
);
await createHmAndBtColumn(
assocModel,
@ -2058,6 +2075,9 @@ export class ColumnsService {
foreignKeyName2,
(param.column as LinkToAnotherColumnReqType).virtual,
true,
null,
false,
param.colExtra,
);
await Column.insert({
@ -2110,6 +2130,9 @@ export class ColumnsService {
plural: param.column['meta']?.plural || pluralize(child.title),
singular: param.column['meta']?.singular || singularize(child.title),
},
// column_order and view_id if provided
...param.colExtra,
});
// todo: create index for virtual relations as well

Loading…
Cancel
Save