0

在 IBM Content Navigator 中,“签入”对话框包含一个属性窗格,该窗格又包含一个类选择器下拉框。

类选择器图像

我想保留签入功能,但希望不出现该类选择器框(没有用户需要更改文档类的用例)。

实现这一目标的正确方法是什么?

  1. 有没有办法扩展 ecm/widget/CheckInDialogue.js 文件并使默认的 checkIn 操作使用我的新 js?
  2. 我是否需要创建一个引用新 js 的全新 checkIn 操作?
  3. 我只是更改 ICN 提供的 js/html 吗?

澄清一下,我确实知道如何创建插件,如何创建 checkinDialogue.js 的 js 扩展,以及如何删除 classSelector;但是我不知道如何使签入操作使用我的新脚本,或者完成此操作的最佳方式。

谢谢!

4

1 回答 1

1

在回答您的问题之前,我想说我认为在不自定义 ICN 的情况下还有其他选项可以做到这一点。我能看到的最简单的两个是:

  • 使用条目模板,这样类选择器将在默认情况下在签入时被禁用
  • 删除 privChangeClass 权限,这应该隐藏类选择器(如果您想保留完整的权限,可能会很困难。)

现在,如果您想在不使用条目模板或权限的情况下隐藏它。

  1. 是的,扩展 ecm.widget.layout.CommonActionHandler 并覆盖 actionCheckIn 函数并使用您的 CheckInDialog 而不是默认的。然后使用您的 CommonActionHandler 而不是桌面中的默认值。我认为还没有办法从管理桌面 UI 更改 ActionHandler(如果我错过了,请告诉我),虽然它是由客户端在 _loadDesktop 函数上加载并由外观选项卡设置的,但值是硬编码,因此您可能必须在加载后注入它更好,调用 ecm.model.desktop.setActionHander(actionhandler) 其中 actionhandler 是实例,而不是插件中的类名(字符串)。

  2. 您可以,如果您有多个桌面并且您希望一些桌面使用新的签入对话框而一些不使用,这将使事情更容易管理。

  3. 不,这是一个糟糕的主意 :) ICN 的未来升级和你的代码将是一场噩梦,交付过程比简单的配置技巧或 ICN 插件复杂得多,这就是插件的用途。

还有一个不太干净但非常简单的解决方案是在 postCreate 函数上的 CheckInDialog.prototype 之后进行切面,然后将其domStyle.set(this.addContentItemPropertiesPane._contentClassSelectorDiv, "display", "none");隐藏在所有 CheckInDialogs 上。

于 2015-11-22T12:22:46.873 回答