diff --git a/packages/nc-gui/components/project/spreadsheet/components/virtualCell/formulaCell.vue b/packages/nc-gui/components/project/spreadsheet/components/virtualCell/formulaCell.vue index eb841a844d..8f5b2dfe18 100644 --- a/packages/nc-gui/components/project/spreadsheet/components/virtualCell/formulaCell.vue +++ b/packages/nc-gui/components/project/spreadsheet/components/virtualCell/formulaCell.vue @@ -9,6 +9,7 @@ {{ column.formula.error.join(', ') }} +
{{ row[column._cn] }}
@@ -17,7 +18,23 @@ diff --git a/packages/nc-gui/helpers/formulaList.js b/packages/nc-gui/helpers/formulaList.js index 67a0207684..6a2135dc96 100644 --- a/packages/nc-gui/helpers/formulaList.js +++ b/packages/nc-gui/helpers/formulaList.js @@ -54,6 +54,7 @@ const validations = { MID: { validation: { args: { rqd: 1 } } }, IF: { validation: { args: { min: 2, max: 3 } } }, SWITCH: { validation: { args: { min: 3 } } }, + URL: { validation: { args: { rqd: 1 } } }, }; export default Object.keys(validations); diff --git a/packages/nocodb/src/lib/dataMapper/lib/sql/formulaQueryBuilderFromString.ts b/packages/nocodb/src/lib/dataMapper/lib/sql/formulaQueryBuilderFromString.ts index 8e23e43930..6abc96e2e6 100644 --- a/packages/nocodb/src/lib/dataMapper/lib/sql/formulaQueryBuilderFromString.ts +++ b/packages/nocodb/src/lib/dataMapper/lib/sql/formulaQueryBuilderFromString.ts @@ -64,6 +64,32 @@ export default function formulaQueryBuilder( } } break; + case 'URL': + return fn( + { + type: 'CallExpression', + arguments: [ + { + type: 'Literal', + value: 'URI::(', + raw: '"URI::("' + }, + pt.arguments[0], + { + type: 'Literal', + value: ')', + raw: '")"' + } + ], + callee: { + type: 'Identifier', + name: 'CONCAT' + } + }, + a, + prevBinaryOp + ); + break; default: { const res = mapFunctionName({