-
Improvement
-
Resolution: Workaround exists
-
Low
-
None
-
6.2.4
-
None
From a UX perspective I think the flow of creating a new page should be:
- Click "Add Page"
- Present the page properties dialog
- Open the page for editing
So in the end I am looking at the new page in edit mode rather than returning back to the page browser. Much like how Confluence works. You click create and land in edit mode.
This also solves the corner case when a page that has inherited content. Consider a 404 page that doesn't need to be edited but inherits the footer from the site. If the page is never opened for editing then the footer area node is never created. If it get's created for the first time on public this can lead to a permissions exception as the node is created by the anonymous user.
mgnl:createdBy = System [anonymous]
The anonymous user only has read permission.
Caused by: javax.jcr.ItemExistsException: Same name sibling not allowed for node /fe2/404/footerNavigation by definition * (declaring type mgnl:content)
The reproduce the issue:
- Create new page that contains an area node
- Do not open in editMode but publish directly
- Open page on public in incognito mode (= not logged in)
- Go to node in JCR app on public
- see property mgnl:created=System[anonymous] on newly created area node
- Open page on author instance in edit mode and edit something
- Try to re-publish the page --> unsuccessful
Dev Notes
- It should be configurable that I am taken into edit mode or stay in the browser.
- Move to a configured action chain in the dialog and deprecate CreatePageChainedActionDefinition
/pages-app/dialogs/createPage.yamlactions: close: $type: closeAction availability: root: true commit: $type: chainedAction actions: createPage: class: info.magnolia.pages.app.action.browser.CreatePageActionDefinition editProperties: class: info.magnolia.pages.app.action.browser.EditPagePropertiesActionDefinition populate: false availability: root: true rules: isValidFormRule: class: info.magnolia.pages.app.action.browser.IsValidFormRuleDefinition
Workaround
On the page properties dialog configure the action to open the detail subapp:
actions:
close:
$type: closeAction
availability:
root: true
commit:
$type: chainedAction
actions:
commit:
$type: commitAction
openDetailSubapp:
$type: openDetailSubappAction
appName: pages-app
subAppName: detail
viewType: edit