我正在使用Alfresco 5.1.e
在搜索页面“/share/page/dp/ws/faceted-search”中。我已经包含了一个按钮“AlfDynamicPayloadButton”。
单击该按钮时,它会打开一个带有“ALF_CREATE_DIALOG_REQUEST”的对话框,其中包含我的自定义小部件。
我需要将当前搜索参数放入该小部件中以创建特殊的可视化。
我在文件“faceted-search.get.js”中的代码:
var myWidget = {
name : "alfresco/buttons/AlfDynamicPayloadButton",
config : {
label : "My Button",
useHash : true,
hashDataMapping : {
"hashFragmentParameterName" : "buttonPayloadProperty"
},
publishPayloadSubscriptions : [ {
topic : "ALF_SEARCH_REQUEST"
}],
publishTopic : "ALF_CREATE_DIALOG_REQUEST",
publishPayloadType : "PROCESS",
publishPayloadModifiers : [ "processDataBindings" ],
publishPayload : {
dialogTitle : "My Title",
widgetsContent : [ {
name : "myPackage/Example",
config : {
width : 400,
height : 500
// other configurations
}
}]
}
}
};
var widget = widgetUtils.findObject(model.jsonModel.widgets, "id",
"FCTSRCH_TOP_MENU_BAR");
widget.config.widgets.push(myWidget);
我的小部件:
define(
[
"dojo/_base/declare",
"dijit/_WidgetBase",
"alfresco/core/Core",
"dijit/_TemplatedMixin",
"dojo/_base/lang",
"dojo/text!./html/Example.html"
],
function(declare, _Widget, Core, _Templated, lang, template) {
[ _Widget, Core, _Templated ],{
templateString : template,
i18nRequirements : [ {
i18nFile : "./i18n/Example.properties"
} ],
cssRequirements : [ {
cssFile : "./css/Example.css"
} ],
constructor : function example__constructor() {
// the widget is created each time the button is pressed
this.alfSubscribe("ALF_SEARCH_REQUEST",
lang.hitch(this, this.upgradeSearchParameter));
this.inherited(arguments);
},
upgradeSearchParameter:
function example__upgradeSearchParameter(args){
// this line never run
this.searchParameter = args;
}
});
});
到目前为止,我已经尝试过:
- 在小部件内部订阅 ALF_SEARCH_REQUEST。问题是发布主题时尚未创建小部件。
- 包括“alfresco/services/SearchService”依赖于我的小部件。我可以使用它访问查询的一些信息,例如“排序”、“站点”、“排序升序”等,但不能访问“术语”。
- 包括“alfresco/search/AlfSearchList”依赖于我的小部件。我有“searchTerm”,但它总是空的“”。
在我的按钮中使用“publishPayloadSubscriptions”。查询参数的所有信息都在对话框内,但不存在使用该信息填充我的小部件的选项
publishPayloadSubscriptions : [ { topic : "ALF_SEARCH_REQUEST" }],
有没有办法在我的自定义小部件中获取最后一个查询的所有参数?