diff --git a/client/web/compose/src/mixins/conditionalFields.js b/client/web/compose/src/mixins/conditionalFields.js index 5c090a8fb..060407c10 100644 --- a/client/web/compose/src/mixins/conditionalFields.js +++ b/client/web/compose/src/mixins/conditionalFields.js @@ -22,7 +22,7 @@ export default { Object.keys(res).forEach(v => { if (!res[v]) this.conditions.push(v) }) - }).catch(this.toastErrorHandler(this.$t('record.fieldConditions.error'))) + }).catch(this.toastErrorHandler(this.$t('notification:record.fieldConditions.failed'))) }, prepareFieldConditionsData () { diff --git a/client/web/compose/src/views/Admin/Pages/Edit.vue b/client/web/compose/src/views/Admin/Pages/Edit.vue index 449d92ece..d54662749 100644 --- a/client/web/compose/src/views/Admin/Pages/Edit.vue +++ b/client/web/compose/src/views/Admin/Pages/Edit.vue @@ -326,7 +326,7 @@ :disabled="layout.pageLayoutID === '0'" :title="$t('page-layout.tooltip.builder')" class="d-flex align-items-center" - :to="{ name: 'admin.pages.builder', query: { layoutID: layout.pageLayoutID} }" + :to="{ name: 'admin.pages.builder', query: { layoutID: layout.pageLayoutID } }" > { + return this.$SystemAPI.expressionEvaluate({ variables, expressions }).catch(e => { + this.toastErrorHandler(this.$t('notification:evaluate.failed'))(e) Object.keys(expressions).forEach(key => (expressions[key] = false)) + return expressions }) }, diff --git a/client/web/compose/src/views/Public/Pages/View.vue b/client/web/compose/src/views/Public/Pages/View.vue index 1ee43cc97..d3945f2dc 100644 --- a/client/web/compose/src/views/Public/Pages/View.vue +++ b/client/web/compose/src/views/Public/Pages/View.vue @@ -162,7 +162,8 @@ export default { }, pageBuilder () { - return { name: 'admin.pages.builder', params: { pageID: this.page.pageID } } + const { pageLayoutID } = this.layout || {} + return { name: 'admin.pages.builder', params: { pageID: this.page.pageID }, query: { layoutID: pageLayoutID } } }, }, @@ -259,8 +260,10 @@ export default { expressions[layout.pageLayoutID] = config.visibility.expression }) - return this.$SystemAPI.expressionEvaluate({ variables, expressions }).catch(() => { + return this.$SystemAPI.expressionEvaluate({ variables, expressions }).catch(e => { + this.toastErrorHandler(this.$t('notification:evaluate.failed'))(e) Object.keys(expressions).forEach(key => (expressions[key] = false)) + return expressions }) }, diff --git a/locale/en/corteza-webapp-compose/block.yaml b/locale/en/corteza-webapp-compose/block.yaml index f61c1b42a..0522d55ca 100644 --- a/locale/en/corteza-webapp-compose/block.yaml +++ b/locale/en/corteza-webapp-compose/block.yaml @@ -259,7 +259,6 @@ record: help: Example field: Field condition: Condition - error: Could not evaluate condition recordList: addRecord: Add cancelSelection: Cancel diff --git a/locale/en/corteza-webapp-compose/notification.yaml b/locale/en/corteza-webapp-compose/notification.yaml index e0a758536..0521f4618 100644 --- a/locale/en/corteza-webapp-compose/notification.yaml +++ b/locale/en/corteza-webapp-compose/notification.yaml @@ -134,6 +134,8 @@ record: validationErrors: check error messages on the form validationWarnings: Record saved successfully, check warning messages on the form staleDataRefresh: Stale record data, all unsaved changes will be lost. Do you wish to refresh the data now? + fieldConditions: + failed: Failed to evaluate record block field conditions record-list: corrupted-filter: Corrupted filter incorrect-filter-structure: Incorrect structure of filter {{filterID}} @@ -148,4 +150,5 @@ connection: read-failed: Failed to read connection sensitivity-level: fetch-failed: Failed to fetch sensitivity levels - +evaluate: + failed: Failed to evaluate expression