私は、検索ページ "/共有/ページ/ DP/WS /ファセット検索" でAlfrescoは5.1.eアイカウ。ダイアログ内のカスタムウィジェット内で検索クエリのパラメータを取得するにはどうすればよいですか?
を使用しています。私はボタン "AlfDynamicPayloadButton"を含んでいます。
ボタンをクリックすると、「ALF_CREATE_DIALOG_REQUEST」というダイアログが開き、その中にカスタムウィジェットが表示されます。
特別な視覚化を作成するには、そのウィジェットに現在の検索パラメータが必要です。
ファイル "ファセット・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" }],
と私のウィジェットを移入するためのオプションが存在していない最後のクエリのすべてのパラメータを取得するためのいくつかの方法があります私のカスタムウィジェットで?
私の質問にいくつか変更を加えました。私は自分のコードを書いています。最終的に私の望むのは、私のウィジェットの中に最後の "検索パラメータ"を置くことです。そしてボタンがクリックされるたびに、それはその中のすべてを破壊する私のウィジェットの新しいインスタンスを作成します。 inspect要素では、検索クエリのすべてのパラメータがダイアログウィジェットの内部にあることを確認しましたが、ウィジェットにそれらを渡す方法はわかりません。ウィジェットが作成される前にイベント「ALF_SEARCH_REQUEST」がトリガーされるため、私のコードは機能していないと思います。最後の検索リクエストパラメータをどこかに保存していますか? – Troncador