更改 ICN (IBM Content Navigator) 中的签入对话框

Altering the check-in dialogue in ICN (IBM Content Navigator)

在 IBM Content Navigator 中,"Check In" 对话框包含一个属性窗格,后者又包含一个 Class 选择器下拉框。

ClassSelector image

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

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

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

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

谢谢!

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

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

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

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

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

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

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