Как настроить addContentItemDialog для ограничения загрузки файлов более 10 МБ в IBM Content Navigator - PullRequest
0 голосов
/ 16 января 2019

Я настраиваю ICN (IBM Content Navigator) 2.0.3, и мое требование состоит в том, чтобы ограничить пользователя загружать файлы размером более 10 МБ, и разрешены только файлы .pdf или .docx.

Я знаю, что должен расширять / настраивать AddContentItemDialog, но подробностей о том, как это сделать, или о любом видео на нем очень мало. Я был бы признателен, если бы кто-то смог помочь.

Спасибо

Я установил среду разработки, но я не уверен, как расширить AddContentItemDialog.

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

Я также хочу знать, как развернуть изменения в ICN.

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Несмотря на то, что существует много способов сделать это, один из них действительно расширяет или увеличивает 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.

Кроме того, было бы полезно отметить, что вы ограничиваете «этот конкретный диалог» только для загрузки определенных файлов. Вероятно, было бы неплохо создать requestFilter , чтобы ограничить все возможные варианты использования addContent api ...

0 голосов
/ 30 января 2019

Это может быть легко продлено. Я бы предложил прочитать Красную книгу ICN, чтобы узнать, как это сделать. Но это довольно стандартный код.

Что касается развертывания кода в ICN, есть два способа: - Если вы используете плагин: просто замените файл Jar на сервере и перезапустите WAS. - Если вы используете EDS: вам необходимо повторно развернуть веб-сервис и перезапустить WAS.

Надеюсь, это поможет.

спасибо

...