Magnolia defaultAction 与从操作栏中单击实际操作获取 JCR 项目的区别

Magnolia defaultAction vs clicking the actual action from the action bar difference in getting JCR item

在 Magnolia 中,对于以下两种情况,获取相关项 (relatedItem.getJcrItem()) 的 JCR 节点是否有区别:

  1. 有一个为操作栏定义的 defaultAction "Edit Item"。双击 workbench 列表中的一个项目,将打开一个对话框让我进行编辑。然后我点击 "Cancel"。然后我单击操作栏中的 "Add Item"。

  2. 我单击该项目,然后单击 "Edit Item",将打开一个对话框以允许我进行编辑。然后我点击 "Cancel"。然后我单击操作栏中的 "Add Item"。

我注意到,目前在场景 1 中,JCR 节点将是我之前选择的项目的节点,但事实并非如此。应该是一个新节点,因此本例中的 relatedItem.getJcrItem() 应该是将添加新项目的父节点项目。

场景 2 在调用 relatedItem.getJcrItem() 时显示正确的节点。

由于这种行为,场景 1 会将新项目保存为先前选择的项目的子节点。

希望我解释清楚。有人知道这个问题吗?

谢谢!

正如您在上面的评论中提到的,Magnolia 基本上根据文件夹结构为添加操作添加了可用性规则,从而防止了这些错误。它会保留您的选择,因此如果未选择文件夹,则添加操作不可用。如果您想实现这样的目标,那么您应该创建自己的操作,取消后您应该选择给定项目的父节点。

干杯,