Browse Source

feat(api): add meta in grid and gallery view

Signed-off-by: Pranav C <pranavxc@gmail.com>
pull/3683/head
Pranav C 2 years ago
parent
commit
aa376101ff
  1. 8
      packages/nocodb/src/lib/migrations/XcMigrationSourcev2.ts
  2. 12
      packages/nocodb/src/lib/migrations/v2/nc_019_add_meta_in_meta_tables.ts
  3. 19
      packages/nocodb/src/lib/utils/searialize.ts

8
packages/nocodb/src/lib/migrations/XcMigrationSourcev2.ts

@ -6,7 +6,7 @@ import * as nc_015_add_meta_col_in_column_table from './v2/nc_015_add_meta_col_i
import * as nc_016_alter_hooklog_payload_types from './v2/nc_016_alter_hooklog_payload_types';
import * as nc_017_add_user_token_version_column from './v2/nc_017_add_user_token_version_column';
import * as nc_018_add_meta_in_view from './v2/nc_018_add_meta_in_view';
import * as nc_019_add_meta_in_form_view from './v2/nc_019_add_meta_in_form_view';
import * as nc_019_add_meta_in_meta_tables from './v2/nc_019_add_meta_in_meta_tables';
// Create a custom migration source class
export default class XcMigrationSourcev2 {
@ -24,7 +24,7 @@ export default class XcMigrationSourcev2 {
'nc_016_alter_hooklog_payload_types',
'nc_017_add_user_token_version_column',
'nc_018_add_meta_in_view',
'nc_019_add_meta_in_form_view',
'nc_019_add_meta_in_meta_tables',
]);
}
@ -50,8 +50,8 @@ export default class XcMigrationSourcev2 {
return nc_017_add_user_token_version_column;
case 'nc_018_add_meta_in_view':
return nc_018_add_meta_in_view;
case 'nc_019_add_meta_in_form_view':
return nc_019_add_meta_in_form_view;
case 'nc_019_add_meta_in_meta_tables':
return nc_019_add_meta_in_meta_tables;
}
}
}

12
packages/nocodb/src/lib/migrations/v2/nc_019_add_meta_in_form_view.ts → packages/nocodb/src/lib/migrations/v2/nc_019_add_meta_in_meta_tables.ts

@ -8,6 +8,12 @@ const up = async (knex: Knex) => {
await knex.schema.alterTable(MetaTable.FORM_VIEW_COLUMNS, (table) => {
table.text('meta');
});
await knex.schema.alterTable(MetaTable.GRID_VIEW, (table) => {
table.text('meta');
});
await knex.schema.alterTable(MetaTable.GALLERY_VIEW, (table) => {
table.text('meta');
});
};
const down = async (knex) => {
@ -17,6 +23,12 @@ const down = async (knex) => {
await knex.schema.alterTable(MetaTable.FORM_VIEW_COLUMNS, (table) => {
table.dropColumns('meta');
});
await knex.schema.alterTable(MetaTable.GRID_VIEW, (table) => {
table.dropColumns('meta');
});
await knex.schema.alterTable(MetaTable.GALLERY_VIEW, (table) => {
table.dropColumns('meta');
});
};
export { up, down };

19
packages/nocodb/src/lib/utils/searialize.ts

@ -0,0 +1,19 @@
export const serializeJSON = (data: string | Record<string, any>) => {
// if already in string format ignore stringify
if (typeof data === 'string') {
return data;
}
return JSON.stringify(data);
};
export const deserializeJSON = (data: string | Record<string, any>) => {
// if already in object format ignore parse
if (typeof data === 'object') {
return data ?? {};
}
try {
return JSON.parse(data) ?? {};
} catch (e) {
return {};
}
};
Loading…
Cancel
Save