0

有没有办法通过 ACCE 的插件禁用上下文菜单项?试图了解是否可以基于文件夹或基于用户的安全组启用/禁用上下文菜单。我只能设置权限,但我需要比这更好的控制。

4

1 回答 1

1

尽管这是一个古老的问题,但答案可能对某人有用。

执行此操作的最简单方法(如果您想永久删除它)是复制包含菜单并删除您想隐藏的菜单项,然后将桌面配置中的 OOTB 菜单替换为您的自定义菜单。

另一种方法是创建一个Content Navigator 插件,您可以创建自定义操作 (menuitem),该操作与您想要控制的菜单项完全相同。当您安装插件时,您的新操作(menuitem)将在菜单配置的 menuitem 列表中可用。下一步与您在上面看到的相同:复制 OOTB 菜单,创建自定义菜单,然后删除原始菜单项并替换为您的自定义菜单,然后将 OOTB 菜单替换为您的自定义菜单。

有一个带有示例插件的官方 github repo可以在这个主题中找到一些想法。

例如,在此自定义CheckinAction中,作者希望仅在项目(文档)未锁定、DSSignatureStatus 属性为 true 并且超类中有一些其他条件(例如,项目是文档,文件夹上没有签入):

    /**
     * Returns true if this action should be enabled for the given repository, list type, and items.
     */
    isEnabled: function(repository, listType, items, teamspace, resultSet) 
    {
        var enabled = this.inherited(arguments);
        
        if(!items || items.length != 1){
            return false;
        };
        if(items[0].attributes && items[0].attributes.DSSignatureStatus == 3 && !items[0].locked) {
            return (enabled && true);
        }
        return false;
    },

    /**
     * Returns true if this action should be visible for the given repository and list type.
     */
    isVisible: function(repository, listType) 
    {
        return this.inherited(arguments);
    }

正如您在此处看到的,您也可以影响可见性,如果您想隐藏菜单,而不仅仅是禁用它,您可以决定将您的逻辑放到 isVisible 函数中。

于 2020-09-02T07:41:31.087 回答