diff --git a/client/web/compose/src/views/Admin/Charts/Edit.vue b/client/web/compose/src/views/Admin/Charts/Edit.vue index 6a4f74f38..6ed9b2cdd 100644 --- a/client/web/compose/src/views/Admin/Charts/Edit.vue +++ b/client/web/compose/src/views/Admin/Charts/Edit.vue @@ -303,7 +303,7 @@ :hide-save="hideSave" hide-clone :disable-save="disableSave" - @delete="handleDelete" + @delete="handleDelete()" @save="handleSave()" @saveAndClose="handleSave({ closeOnSuccess: true })" /> diff --git a/client/web/compose/src/views/Admin/Modules/List.vue b/client/web/compose/src/views/Admin/Modules/List.vue index 08710ddf5..609b5fd6b 100644 --- a/client/web/compose/src/views/Admin/Modules/List.vue +++ b/client/web/compose/src/views/Admin/Modules/List.vue @@ -109,6 +109,7 @@
@@ -26,7 +25,6 @@ - +
+ +
+ +
@@ -706,7 +714,7 @@ !l.meta.title || handle.handleState(l.handle) === false) + return !this.page || [this.titleState, this.handleState].includes(false) || this.layouts.some(l => !l.meta.title || handle.handleState(l.handle) === false) }, hideDelete () { - return this.hasChildren || !this.page.canDeletePage || !!this.page.deletedAt + return !this.page || this.hasChildren || !this.page.canDeletePage || !!this.page.deletedAt + }, + + hideSave () { + return !this.page || !this.page.canUpdatePage }, showDeleteDropdown () { @@ -936,7 +948,7 @@ export default { this.processing = true const { namespaceID } = this.namespace - this.findPageByID({ namespaceID, pageID }).then((page) => { + this.findPageByID({ namespaceID, pageID, force: true }).then((page) => { this.page = page.clone() return this.fetchAttachments() }).then(this.fetchLayouts) 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 b12e7b099..cd44f50f4 100644 --- a/client/web/compose/src/views/Public/Pages/Records/View.vue +++ b/client/web/compose/src/views/Public/Pages/Records/View.vue @@ -17,8 +17,15 @@ {{ title }} +
+ +
+ config.visibility.expression)) { + expressions = await this.evaluateLayoutExpressions() + } // Check layouts for expressions/roles and find the first one that fits this.layout = this.layouts.find(l => { diff --git a/client/web/compose/src/views/Public/Pages/View.vue b/client/web/compose/src/views/Public/Pages/View.vue index 4ec989c7e..53553c752 100644 --- a/client/web/compose/src/views/Public/Pages/View.vue +++ b/client/web/compose/src/views/Public/Pages/View.vue @@ -58,6 +58,13 @@ class="flex-grow-1 overflow-auto d-flex flex-column" /> +
+ +
+ config.visibility.expression)) { + this.pageTitle = this.page.title + expressions = await this.evaluateLayoutExpressions() + } // Check layouts for expressions/roles and find the first one that fits this.layout = this.layouts.find(({ pageLayoutID, config = {} }) => {