Отключить ContextMenu - IBM Content Navigator

Есть ли способ отключить пункт контекстного меню через плагин через ACCE? Попытка понять, можно ли включить/отключить контекстное меню в зависимости от папки или группы безопасности пользователя. Я могу только установить привилегии, но мне нужен более тонкий контроль.


person Le_Master    schedule 27.04.2020    source источник


Ответы (1)


Хотя это старый вопрос, ответ может быть кому-то полезен.

Самый простой способ сделать это — если вы хотите удалить его навсегда — скопировать содержащееся в нем меню и удалить пункт меню, который вы хотите скрыть, а затем заменить меню OOTB в конфигурации рабочего стола своим собственным.

Другой способ — создать Content. Плагин Navigator, и вы можете создать собственное действие (элемент меню), которое делает то же самое, что и элемент меню, которым вы хотели бы управлять. Когда вы установите свой плагин, ваше новое действие (пункт меню) будет доступно в списке пунктов меню в конфигурации меню. Следующий шаг такой же, как показано выше: скопируйте меню OOTB, создайте пользовательское меню, затем удалите исходный пункт меню и замените его своим, затем замените меню OOTB своим пользовательским меню.

На github есть официальный репозиторий с примерами плагинов, чтобы найти некоторые идеи в этой теме.

Например, в этом пользовательском 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, если хотите скрыть меню, а не просто отключить его.

person m4gic    schedule 02.09.2020