Открыть определенную папку в дереве папок (IBM Content Navigator) - PullRequest
0 голосов
/ 22 мая 2018

Я разрабатываю плагин IBM Content Navigator, который позволяет мне открывать выбранную папку из функции поиска в функции просмотра.Действие плагина содержит следующий код:

// Variable contentItem is provided by Content Navigator when executing the plugin action.
let layout = ecm.model.desktop.layoutDijit;
let browsePaneMenuItem = layout.launchBarContainer.getMenuItemByID("browsePane");
layout.launchBarContainer._menuItemClick(browsePaneMenuItem, false);
layout.mainPane = layout.launchBarContainer._panels["browsePane"];
layout.mainPane.folderTree._tree._selectItem(contentItem);

Этот код переключает функцию и открывает содержимое выбранной папки (contentItem) в качестве набора результатов на центральной панели.Однако дерево папок не открывает элемент в определенном месте.Для этого я попробовал следующий код:

let repo = layout.mainPane.repository;
let parentItemDocId = contentItem.attributes.Parent;
let parentItemTemplate = parentItemDocId.split(',')[0] || null;
repo.retrieveItem(parentItemDocId, function(item) {
 contentItem.parent = item;
 layout.mainPane.folderTree._tree._selectItem(item);
 console.debug('parents parent: ' + item.parent);
}, parentItemTemplate, "current", null, contentItem.objectStoreId, "", null);

Свойство item.parent в console.debug равно undefined, когда я вызываю retrieveItem для объекта репозитория.

Свойство contentItem.parent указывает на поиск, в котором отображается элемент.Однако contentItem.attributes.Parent является документом фактической родительской папки.Я подозреваю, что Content Navigator не может открыть папку, потому что родительский элемент contentItem не является тем же элементом в функции поиска, что и в функции просмотра.

Как открыть определенную папку в папкедерево

1 Ответ

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

Чтобы открыть определенную папку в дереве папок, все, что вам нужно сделать, это создать массив идентификаторов с путем к папкам из корневой папки в папку, которую вы хотите открыть (вы можете увидеть пример Досье в красных книгах).чтобы увидеть, как зацикливать подпапки на стороне сервера).Затем запустите приведенный ниже js-код, когда path - это массив объектов с идентификатором: (начиная с корневой папки и заканчивая выбранной папкой)

        var myPaths = [];
        myPaths.push(path);
        this.folderTree._tree.set('paths', myPaths);
...