Browse Source

chore: lint

Signed-off-by: Pranav C <pranavxc@gmail.com>
pull/5030/head
Pranav C 2 years ago
parent
commit
14a2843927
  1. 4
      packages/nocodb/src/lib/meta/api/helpers/index.ts
  2. 13
      packages/nocodb/src/lib/models/Model.ts
  3. 107
      packages/nocodb/src/lib/models/View.ts
  4. 50
      packages/nocodb/src/lib/version-upgrader/ncStickyColumnUpgrader.ts

4
packages/nocodb/src/lib/meta/api/helpers/index.ts

@ -1,3 +1,3 @@
import { populateMeta } from "./populateMeta"; import { populateMeta } from './populateMeta';
export { populateMeta } export { populateMeta };

13
packages/nocodb/src/lib/models/Model.ts

@ -606,11 +606,16 @@ export default class Model implements TableType {
newPvCol.id newPvCol.id
); );
const grid_views_with_column = await ncMeta.metaList2(null, null, MetaTable.GRID_VIEW_COLUMNS, { const grid_views_with_column = await ncMeta.metaList2(
condition: { null,
fk_column_id: newPvCol.id, null,
MetaTable.GRID_VIEW_COLUMNS,
{
condition: {
fk_column_id: newPvCol.id,
},
} }
}) );
if (grid_views_with_column.length) { if (grid_views_with_column.length) {
for (const gv of grid_views_with_column) { for (const gv of grid_views_with_column) {

107
packages/nocodb/src/lib/models/View.ts

@ -633,15 +633,25 @@ export default class View implements ViewType {
// keep primary_value_column always visible and first in grid view // keep primary_value_column always visible and first in grid view
if (view.type === ViewTypes.GRID) { if (view.type === ViewTypes.GRID) {
const primary_value_column_meta = await ncMeta.metaGet2(null, null, MetaTable.COLUMNS, { const primary_value_column_meta = await ncMeta.metaGet2(
fk_model_id: view.fk_model_id, null,
pv: true, null,
}); MetaTable.COLUMNS,
{
fk_model_id: view.fk_model_id,
pv: true,
}
);
const primary_value_column = await ncMeta.metaGet2(null, null, MetaTable.GRID_VIEW_COLUMNS, { const primary_value_column = await ncMeta.metaGet2(
fk_view_id: view.id, null,
fk_column_id: primary_value_column_meta.id, null,
}); MetaTable.GRID_VIEW_COLUMNS,
{
fk_view_id: view.id,
fk_column_id: primary_value_column_meta.id,
}
);
if (primary_value_column && primary_value_column.id === colId) { if (primary_value_column && primary_value_column.id === colId) {
updateObj.order = 1; updateObj.order = 1;
@ -1108,14 +1118,19 @@ export default class View implements ViewType {
const scope = this.extractViewColumnsTableNameScope(view); const scope = this.extractViewColumnsTableNameScope(view);
if (view.type === ViewTypes.GRID) { if (view.type === ViewTypes.GRID) {
const primary_value_column = await ncMeta.metaGet2(null, null, MetaTable.COLUMNS, { const primary_value_column = await ncMeta.metaGet2(
fk_model_id: view.fk_model_id, null,
pv: true, null,
}) MetaTable.COLUMNS,
{
fk_model_id: view.fk_model_id,
pv: true,
}
);
// keep primary_value_column always visible // keep primary_value_column always visible
if (primary_value_column) { if (primary_value_column) {
ignoreColdIds.push(primary_value_column.id) ignoreColdIds.push(primary_value_column.id);
} }
} }
@ -1179,27 +1194,41 @@ export default class View implements ViewType {
static async fixPVColumnForView(viewId, ncMeta = Noco.ncMeta) { static async fixPVColumnForView(viewId, ncMeta = Noco.ncMeta) {
// get a list of view columns sorted by order // get a list of view columns sorted by order
const view_columns = await ncMeta.metaList2(null, null, MetaTable.GRID_VIEW_COLUMNS, { const view_columns = await ncMeta.metaList2(
condition: { null,
fk_view_id: viewId, null,
}, MetaTable.GRID_VIEW_COLUMNS,
orderBy: { {
order: 'asc', condition: {
}, fk_view_id: viewId,
}); },
const view_columns_meta = [] orderBy: {
order: 'asc',
},
}
);
const view_columns_meta = [];
// get column meta for each view column // get column meta for each view column
for (const col of view_columns) { for (const col of view_columns) {
const col_meta = await ncMeta.metaGet2(null, null, MetaTable.COLUMNS, col.fk_column_id); const col_meta = await ncMeta.metaGet2(
null,
null,
MetaTable.COLUMNS,
col.fk_column_id
);
view_columns_meta.push(col_meta); view_columns_meta.push(col_meta);
} }
const primary_value_column_meta = view_columns_meta.find((col) => col.pv); const primary_value_column_meta = view_columns_meta.find((col) => col.pv);
if (primary_value_column_meta) { if (primary_value_column_meta) {
const primary_value_column = view_columns.find((col) => col.fk_column_id === primary_value_column_meta.id); const primary_value_column = view_columns.find(
const primary_value_column_index = view_columns.findIndex((col) => col.fk_column_id === primary_value_column_meta.id); (col) => col.fk_column_id === primary_value_column_meta.id
);
const primary_value_column_index = view_columns.findIndex(
(col) => col.fk_column_id === primary_value_column_meta.id
);
const view_orders = view_columns.map((col) => col.order); const view_orders = view_columns.map((col) => col.order);
const view_min_order = Math.min(...view_orders); const view_min_order = Math.min(...view_orders);
@ -1210,7 +1239,7 @@ export default class View implements ViewType {
null, null,
MetaTable.GRID_VIEW_COLUMNS, MetaTable.GRID_VIEW_COLUMNS,
{ show: true }, { show: true },
primary_value_column.id, primary_value_column.id
); );
await NocoCache.set( await NocoCache.set(
`${CacheScope.GRID_VIEW_COLUMN}:${primary_value_column.id}`, `${CacheScope.GRID_VIEW_COLUMN}:${primary_value_column.id}`,
@ -1218,7 +1247,10 @@ export default class View implements ViewType {
); );
} }
if (primary_value_column.order === view_min_order && view_orders.filter((o) => o === view_min_order).length === 1) { if (
primary_value_column.order === view_min_order &&
view_orders.filter((o) => o === view_min_order).length === 1
) {
// if primary_value_column is in first order do nothing // if primary_value_column is in first order do nothing
return; return;
} else { } else {
@ -1245,14 +1277,19 @@ export default class View implements ViewType {
} }
} }
const views = await ncMeta.metaList2(null, null, MetaTable.GRID_VIEW_COLUMNS, { const views = await ncMeta.metaList2(
condition: { null,
fk_view_id: viewId, null,
}, MetaTable.GRID_VIEW_COLUMNS,
orderBy: { {
order: 'asc', condition: {
}, fk_view_id: viewId,
}); },
orderBy: {
order: 'asc',
},
}
);
await NocoCache.setList(CacheScope.GRID_VIEW_COLUMN, [viewId], views); await NocoCache.setList(CacheScope.GRID_VIEW_COLUMN, [viewId], views);
} }
} }

50
packages/nocodb/src/lib/version-upgrader/ncStickyColumnUpgrader.ts

@ -6,32 +6,47 @@ import { MetaTable } from '../utils/globals';
// this upgrader will make primary value column first column in grid views // this upgrader will make primary value column first column in grid views
export default async function ({ ncMeta }: NcUpgraderCtx) { export default async function ({ ncMeta }: NcUpgraderCtx) {
const grid_columns = await ncMeta.metaList2(null, null, MetaTable.GRID_VIEW_COLUMNS); const grid_columns = await ncMeta.metaList2(
const grid_views = [...new Set(grid_columns.map((col) => col.fk_view_id))] null,
null,
MetaTable.GRID_VIEW_COLUMNS
);
const grid_views = [...new Set(grid_columns.map((col) => col.fk_view_id))];
for (const view_id of grid_views) { for (const view_id of grid_views) {
// get a list of view columns sorted by order // get a list of view columns sorted by order
const view_columns = await ncMeta.metaList2(null, null, MetaTable.GRID_VIEW_COLUMNS, { const view_columns = await ncMeta.metaList2(
condition: { null,
fk_view_id: view_id, null,
}, MetaTable.GRID_VIEW_COLUMNS,
orderBy: { {
order: 'asc', condition: {
}, fk_view_id: view_id,
}); },
const view_columns_meta = [] orderBy: {
order: 'asc',
},
}
);
const view_columns_meta = [];
// get column meta for each view column // get column meta for each view column
for (const col of view_columns) { for (const col of view_columns) {
const col_meta = await ncMeta.metaGet(null, null, MetaTable.COLUMNS, { id: col.fk_column_id }); const col_meta = await ncMeta.metaGet(null, null, MetaTable.COLUMNS, {
id: col.fk_column_id,
});
view_columns_meta.push(col_meta); view_columns_meta.push(col_meta);
} }
const primary_value_column_meta = view_columns_meta.find((col) => col.pv); const primary_value_column_meta = view_columns_meta.find((col) => col.pv);
if (primary_value_column_meta) { if (primary_value_column_meta) {
const primary_value_column = view_columns.find((col) => col.fk_column_id === primary_value_column_meta.id); const primary_value_column = view_columns.find(
const primary_value_column_index = view_columns.findIndex((col) => col.fk_column_id === primary_value_column_meta.id); (col) => col.fk_column_id === primary_value_column_meta.id
);
const primary_value_column_index = view_columns.findIndex(
(col) => col.fk_column_id === primary_value_column_meta.id
);
const view_orders = view_columns.map((col) => col.order); const view_orders = view_columns.map((col) => col.order);
const view_min_order = Math.min(...view_orders); const view_min_order = Math.min(...view_orders);
@ -42,11 +57,14 @@ export default async function ({ ncMeta }: NcUpgraderCtx) {
null, null,
MetaTable.GRID_VIEW_COLUMNS, MetaTable.GRID_VIEW_COLUMNS,
{ show: true }, { show: true },
primary_value_column.id, primary_value_column.id
); );
} }
if (primary_value_column.order === view_min_order && view_orders.filter((o) => o === view_min_order).length === 1) { if (
primary_value_column.order === view_min_order &&
view_orders.filter((o) => o === view_min_order).length === 1
) {
// if primary_value_column is in first order do nothing // if primary_value_column is in first order do nothing
continue; continue;
} else { } else {

Loading…
Cancel
Save