0

我试图在文件夹设置中添加一些字段。

为此,我在我的应用程序中覆盖了文件“/libs/dam/gui/content/assets/foldersharewizard”。添加了一个新选项卡和 2 个新复选框。出现新的选项卡和字段,但它们既不将其值保存在文件夹节点也不保存在 jcr 中。我尝试修改默认字段,当我更改名称时,我只是停止工作。

这是我在文件夹共享向导中添加的代码:

<tab5
    jcr:primaryType="nt:unstructured"
    jcr:title="Tab title"
    sling:resourceType="granite/ui/components/foundation/container">
<items jcr:primaryType="nt:unstructured">
    <editDeny
            jcr:primaryType="nt:unstructured"
            sling:resourceType="granite/ui/components/foundation/form/checkbox"
            id="editDeny"
            name="custom:deniedEdit"
            text="Hide edit"
            value="{Boolean}true"/>
    <delAllow
            jcr:primaryType="nt:unstructured"
            sling:resourceType="granite/ui/components/foundation/form/checkbox"
            id="delAllow"
            name="custom:allowedDel"
            text="Show delete"
            value="{Boolean}true"/>
</items>

由于 AEM 文档大多是废话,而且互联网上没有很多开发人员评论......我没有想法,如果你们中的任何人遇到同样的问题或知道我错过了什么,那就太好了。

您希望我粘贴的任何其他内容......但这只是我添加的所有代码。

谢谢你。

4

3 回答 3

1
<operation jcr:primaryType="nt:unstructured"
sling:resourceType="granite/ui/components/foundation/form/hidden"
name=":operation"
value="custom.dam.share.folder"/>

必须覆盖此节点才能调用自定义 PostOperation

@Component(metatype = false)
@Service
@Properties({@Property(name = "sling.post.operation", value = {"custom.dam.share.folder"}), @Property(name = "sling.servlet.methods", value = {"POST"})})
public class CustomFolderShareHandler implements PostOperation {

    @Reference(target = "(sling.post.operation=dam.share.folder)")
    PostOperation folderShareHandler;

    @Override
    public void run(SlingHttpServletRequest request, PostResponse response, SlingPostProcessor[] processors) {
        folderShareHandler.run(request, response, processors);
        // DO CUSTOM STUFF
    }
}
于 2016-08-11T08:29:10.793 回答
0

确保按照以下结构覆盖了正确的节点: /apps/dam/gui/content/assets/foldersharewizard/jcr:content/body/content/items/foldersettings/items/settings/items/right/items/tab5

于 2016-07-12T15:11:34.597 回答
0

我认为这是因为 value 是字符串数据类型——如果要将值存储为布尔值,请使用 typehint 字段:

<editDeny
    jcr:primaryType="nt:unstructured"
    sling:resourceType="granite/ui/components/foundation/form/checkbox"
    id="editDeny"
    name="custom:deniedEdit"
    text="Hide edit"
    value="{Boolean}true"/>
<editDenyType
    jcr:primaryType="nt:unstructured"
    sling:resourceType="granite/ui/components/foundation/form/hidden"
    name="custom:deniedEdit@TypeHint"
    value="Boolean"/>

于 2016-07-05T19:32:47.673 回答