From fb1d6b601df98be86593fff4c5332077634d0393 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C5=BEe=20Fortun?= Date: Mon, 3 Apr 2023 12:56:50 +0200 Subject: [PATCH] Adjust page-layout struct and expression variables --- .../compose/src/views/Public/Pages/Records/View.vue | 10 +++++++--- client/web/compose/src/views/Public/Pages/View.vue | 10 +++++++--- lib/js/src/compose/types/page-layout.ts | 4 ++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/client/web/compose/src/views/Public/Pages/Records/View.vue b/client/web/compose/src/views/Public/Pages/Records/View.vue index de9de4596..e5961dc7f 100644 --- a/client/web/compose/src/views/Public/Pages/Records/View.vue +++ b/client/web/compose/src/views/Public/Pages/Records/View.vue @@ -330,13 +330,17 @@ export default { userAgent: navigator.userAgent, breakpoint: this.getBreakpoint(), // This is from a global mixin uiHelpers }, - layout: this.layout || {}, + oldLayout: this.layout, + layout: undefined, } - this.layouts.forEach(({ pageLayoutID, config }) => { + this.layouts.forEach(layout => { + const { config = {} } = layout if (!config.visibility.expression) return - expressions[pageLayoutID] = config.visibility.expression + variables.layout = layout + + expressions[layout.pageLayoutID] = config.visibility.expression }) return this.$SystemAPI.expressionEvaluate({ variables, expressions }).catch(() => { diff --git a/client/web/compose/src/views/Public/Pages/View.vue b/client/web/compose/src/views/Public/Pages/View.vue index 578c1ac84..02942e7e0 100644 --- a/client/web/compose/src/views/Public/Pages/View.vue +++ b/client/web/compose/src/views/Public/Pages/View.vue @@ -217,13 +217,17 @@ export default { breakpoint: this.getBreakpoint(), // This is from a global mixin uiHelpers }, user: this.$auth.user, - layout: this.layout || {}, + oldLayout: this.layout, + layout: undefined, } - this.layouts.forEach(({ pageLayoutID, config }) => { + this.layouts.forEach(layout => { + const { config = {} } = layout if (!config.visibility.expression) return - expressions[pageLayoutID] = config.visibility.expression + variables.layout = layout + + expressions[layout.pageLayoutID] = config.visibility.expression }) return this.$SystemAPI.expressionEvaluate({ variables, expressions }).catch(() => { diff --git a/lib/js/src/compose/types/page-layout.ts b/lib/js/src/compose/types/page-layout.ts index c57c22f15..abf5f8bef 100644 --- a/lib/js/src/compose/types/page-layout.ts +++ b/lib/js/src/compose/types/page-layout.ts @@ -20,6 +20,7 @@ interface PageLayoutConfig { interface Action { kind: string; + enabled: boolean; placement: string; params: unknown; meta: ActionMeta; @@ -27,6 +28,9 @@ interface Action { interface ActionMeta { label: string; + style: { + variant: string; + } } interface Visibility {