【问题标题】:Disable ContextMenu - IBM Content Navigator禁用 ContextMenu - IBM Content Navigator
【发布时间】:2020-04-27 19:11:49
【问题描述】:

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

【问题讨论】:

    标签: filenet-p8 filenet filenet-content-engine ibm-content-navigator filenet-cpe


    【解决方案1】:

    虽然这是一个老问题,但答案可能对某人有用。

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

    另一种方法是创建Content Navigator plugin,您可以创建自定义操作 (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-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      相关资源
      最近更新 更多