如何定制 addContentItemDialog 以限制在 IBM Content Navigator 中上传超过 1



我正在定制 ICN(IBM Content Navigator)2.0.3,我的要求是限制用户上传超过 10MB 的文件,并且只允许.pdf或.docx的文件。

我知道我必须扩展/自定义AddContentItemDialog,但是关于如何做到这一点的细节很少,或者它的任何视频。如果有人可以指导,我将不胜感激。

谢谢

我安装了开发环境,但不确定如何扩展AddContentItemDialog。

public void applicationInit(HttpServletRequest request,
        PluginServiceCallbacks callbacks) throws Exception {
}

我还想知道如何推出对 ICN 的更改。

可以很容易地扩展。我建议阅读ICN红皮书,了解有关如何做到这一点的详细信息。但它是非常标准的代码。

关于将代码部署到 ICN,有两种方法:- 如果您使用的是插件:只需替换服务器位置上的 Jar 文件并重新启动 WAS。- 如果您使用的是 EDS:您需要重新部署 Web 服务并重新启动 WAS。

希望这有帮助。

谢谢

尽管有很多方法可以做到这一点,但确实有一种方法是扩展或增加AddContentItemDialog。在查看了(相当糟糕的 IBM 文档)后,我认为您可能可以使用 onAdd 事件/方法

Dojo/Aspect#around 允许你做到这一点,例如:

require(["dojo/aspect", "ecm/widget/dialog/AddContentItemDialog"], function(aspect, AddContentItemDialog) {
    aspect.around(AddContentItemDialog.prototype, "onAdd", function advisor(original) {
        return function around() {
            var files = this.addContentItemGeneralPane.getFileInputFiles();
            var containsInvalidFiles = dojo.some(files, function isInvalid(file) {
                var fileName = file.name.toLowerCase();
                var extensionOK = fileName.endsWith(".pdf") || fileName.endsWith(".docx");
                var fileSizeOK = file.size <= 10 * 1024 * 1024;
                return !(extensionOK && fileSizeOK);
            });
            if (containsInvalidFiles) {
                alert("You can't add that :)");
            }else{
                original.apply(this, arguments);
            }
        }
    });
});

只需确保在打开实际对话框之前执行此代码即可。实现此目的的最佳方法是将此代码包装在新插件中。

现在关于创建/部署插件 -> 最简单的方法是这个 Eclipse 向导(另请参阅较新的 eclipse 版本的重新打包版本)。只需创建一个新的任意插件,并将此 javascript 代码粘贴到生成的.js文件中。

此外,最好

注意的是,您仅将"此特定对话框"限制为上传特定文件。创建一个请求过滤器来限制 addContent api 的所有可能用途可能是个好主意......

相关内容

  • 没有找到相关文章

最新更新