2016-09-18 4 views
0

私は最近、alfrescoシェアでaikauと開発を開始しました。 検索結果をCSVファイルにエクスポートできる機能を実現したいと考えています。aikau - 輸出検索結果の機能を実装する

このため、バックエンドリポジトリのWebスクリプトを変更して、csvデータを返すことができます。 今、alfresco共有終了時に、FCTSRCH_TOP_MENU_BARに新しいウィジェットを追加することで、エクスポートリンクを表示することに成功しました。このリンクを表示するにはalfresco/renderers/PropertyLinkを使用しました。今、欠けている部分は、 - 検索ウェブスクリプトを呼び出すには、追加のparam format = csvを渡し、それと同時に結果を取得するために使用されるすべてのクエリパラメータを渡すことができます。

私はそれに固執しています。 publishTopicをALF_CRUD_GET_ALLとして使用し、そこにURLを入力すると、サンプルWebスクリプト(サンプルのCSV応答を返すために作成したもの)を呼び出し、応答を返します。ただし、csvはダウンロード可能な応答として提供されません。検索結果のエクスポートcsv機能を実現する方法について私はここで立ち往生しています。

あなたのお役に立てれば助かりますが、ご指導やご提案をいただければ幸いです。

答えて

0

このblog postは、どのように共有の検索ページをカスタム化できるかの例を示しています。具体的には検索クエリの変更に対処していますが、XHR要求を送信するために使用されるデータを変更する必要があるという点で、基本的な拡張方法は多かれ少なかれ同じです。ここでの大きな違いは、詳細な検索クエリオブジェクトを構築するために使用される特にswitch statementに関して、サービスの詳細な更新が必要な場合があることです。

デフォルトの検索REST APIを拡張または置き換えた場合は、同じURLを呼び出す必要がありますが、まったく新しいREST APIを提供してCSVデータを返す場合は、サービスで使用されているURLを変更します。

コンテンツをダウンロードするためのリンクを提供するという点では、以前にDragAndDropModelCreationServicegenerateDownload機能参照)に実装されていましたが、これはセキュリティの制限とダウンロードするファイルの生成のためChromeでのみ機能します。

一時的に隠し場所にリポジトリのCSVコンテンツを保存してから、標準ダウンロードリンクを使用してダウンロードできるようにすることが最も効果的ですが、これはより複雑になりますがクロスブラウザのサポートが向上します。 「ZIP形式でダウンロード」アクションでも同様のことが行われます。

+0

応答ありがとうございました。私にはまだ不明な点はほとんどなく、私の無知を親切に言い訳します。私はあなたが上記のことに100%従うことができませんでした。 'alfresco/renderers/PropertyLink'を使ってエクスポートリンクをレンダリングしています。私はformat = csvパラメータを渡すWebスクリプトを検索するためにXHRリクエストを送信する方法がわかりません。単に公開トピックを 'ALF_CRUD_GET_ALL'として使用すると、エクスポートリンクがクリックされたときに検索パラメータを再度渡す方法がわかりません。コードスニペット/例がある場合は、理解してください。 – AlfrescoNewDeveloper

+0

あなたの質問には何らかの説明が必要かもしれないと思います...あなたはどこでPropertyLinkをレンダリングしていますか?これは検索結果に表示されていますか?あなたの質問から、CSVデータを返すためにリポジトリREST APIを更新しているようですね?あなたの提供する新しいAPIを持っていますか?おそらく、あなたはユースケースの散策を提供することができます。もしあなたが既存の検索ページを更新しているなら、あなたは 'ALF_CRUD_GET_ALL'を使用したくないでしょう - あなたはSearchServiceが何をしているのかをより具体的な検索にする必要があります。ここでも、questinoの詳細情報がより良い答えを提供するのに役立ちます。 –

+0

私が達成しようとしていることをあなたに提供しようとしましょう。私は、検索結果が表示されるリンクを追加しようとしているファセット検索ページをカスタマイズしています(主にXの検索結果の横にテキストがあります)。リンクを表示するために、私は 'alfresco/renderers/PropertyLink'を使用しました。私はレスポンスとしてcsv形式を返すようにOOTBリポジトリのWebスクリプトをカスタマイズしました。さて、私が見逃している部分は、検索ページのリンクからです。どのようにしてformat = csvを渡す検索ウェブスクリプトを呼び出すことができますか?また、結果を得るために使用されたすべての検索条件も呼び出すことができます。これが明確になることを願っています。 – AlfrescoNewDeveloper

0

OK、余分な情報を提供して、私は検索ページにウィジェットを追加するプロセスで、次の...

が情報を行うだろうしている非常によく詳細なhere(ビューを追加していないものの、 ID "FCTSRCH_RESULTS_COUNT_LABEL"のウィジェットの後に新しいPropertyLinkを追加する方法に従うことができます)。

「ALF_RETRIEVE_DOCUMENTS_REQUEST_SUCCESS」トピック(完了した検索で公開されている)を購読しているページに、追加のカスタムサービスを追加する方法があります。ユーザーがPropertyLinkをクリックする準備として、検索応答を変数に保存する必要があります。

このカスタムサービスは、PropertyLinkによって発行されたトピック(「DOWNLOAD_CSV」と呼ばれる)にサブスクライブする必要があります。このカスタムサービスは、ペイロードに提供されるCSVデータを使用して私の前の回答で説明した方法を使用してファイルダウンロードを生成することができます。私が言ったように、これはセキュリティ上の理由から、一部のブラウザでしか動作しない可能性があります。

カスタム検索WebScriptがCSVデータをリポジトリのノードとして保存できた場合、検索応答にCSVデータのNodeRefを入力するだけで、PropertyLinkが「ALF_DOWNLOAD」トピックを公開することができますダウンロードを処理するDocumentService

クライアント側でダウンロードするファイルを生成しようとすると、ほとんどのブラウザで問題になるでしょう。

+0

デイブさん、ありがとう、私はそれを実装しようとします。 – AlfrescoNewDeveloper

関連する問題