Я не нашел ответа в интернете.Я был в состоянии кодировать это сам.Надеемся, что это поможет кому-то еще.
Я сделал патч для класса ContentNavigator Dojo ecm / widget / search / SearchSelector
Пожалуйста, смотрите мой код ниже:
var searchSelectorPrototype = searchSelector.prototype;
var old_createTree = searchSelectorPrototype._createTree;
searchSelectorPrototype._createTree = function () {
old_createTree.apply(this, arguments);
this._tree.expandAll();// we need to expand tree to be able to get search templates by _tree.getNodesByItem("all")[0].getChildren();
var that = this;
var i = 0;
var myVar = setInterval(myTimer ,100);//need to wait until expandAll() completed
function myTimer() {
i++;
var searchTemplates = that._tree.getNodesByItem("all")[0].getChildren();
if (i>50){
clearInterval(myVar);
console.log("not able to get search templates from _tree.getNodesByItem(\"all\")[0].getChildren()");
}
if (searchTemplates.length > 0 ){
clearInterval(myVar);
new searchPlugin.config.PluginConfig().getConfiguration(// we need to know which search template to open, I added configuration parameter "autoSearchTemplateName" to plugin
function(response) {
var templateName;
response.configuration.forEach(function (configurationItem) {
if (configurationItem.name == 'autoSearchTemplateName'){
templateName = configurationItem.value;
}
});
array.forEach(searchTemplates, function(template){
if(template.item.name === templateName){
that.setSelected(template.item);
return false;
}
}, that);
},
function(response) {
console.error(response);
}
);
}
}
}