有没有办法通过 ACCE 的插件禁用上下文菜单项?试图了解是否可以基于文件夹或基于用户的安全组启用/禁用上下文菜单。我只能设置权限,但我需要比这更好的控制。
问问题
337 次
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 回答