0

我最近开始aikau在 alfresco share 中进行开发。我想实现一个功能,我可以将搜索结果导出到 CSV 文件。

为此,我可以更改后端存储库 Web 脚本以返回 csv 数据。现在,在 alfresco share end - 我成功地通过添加一个新的小部件来显示导出链接FCTSRCH_TOP_MENU_BAR。我曾经alfresco/renderers/PropertyLink显示这个链接。现在,对我来说缺少的部分是 - 我如何调用搜索 Web 脚本,传递额外的参数 format=csv 并传递用于检索结果的所有查询参数。

我坚持这一点。如果我使用 publishTopic asALF_CRUD_GET_ALL并在那里提供 URL,那么它会调用示例 Web 脚本(我创建以返回示例 csv 响应)并返回响应。但是,csv 不是可下载的响应。我被困在这里是为了如何实现搜索结果的导出 csv 功能。

如果你们中的任何人都可以在这里帮助我并提供您的指导/建议,那就太好了。

4

2 回答 2

0

这篇文提供了一个关于如何在 Share 中自定义搜索页面的示例。尽管它专门解决了更改搜索查询的问题,但基本扩展方法或多或少是相同的,因为您将希望更改用于发送 XHR 请求的数据。我认为这里的主要区别在于您可能需要对服务进行更深入的更新——特别是关于用于构建高级搜索查询对象的switch 语句。

如果您扩展或替换了默认搜索 REST API,那么我希望您需要调用相同的 URL,但如果您提供了一个全新的 REST API 来返回 CSV 数据,那么您还需要更改 URL由服务使用。

在提供下载内容的链接方面,我们之前在DragAndDropModelCreationService中实现了一些东西(参见generateDownload函数),但由于安全限制和要下载的文件的生成,这仅适用于 Chrome。

您最好的选择可能是将存储库中的 CSV 内容临时存储在隐藏位置,然后使用标准下载链接允许下载它 - 这会更复杂,但会提供更好的跨浏览器支持。对“下载为 ZIP”操作进行了类似的操作。

于 2016-09-19T08:18:08.473 回答
0

好的,使用提供的额外信息,我将执行以下操作...

关于将小部件添加到搜索页面的过程的信息在这里非常详细(虽然您没有添加视图,但您可以按照该方法在 id 为“FCTSRCH_RESULTS_COUNT_LABEL”的小部件之后添加新的 PropertyLink)。

我将采取的方法是在订阅“ALF_RETRIEVE_DOCUMENTS_REQUEST_SUCCESS”主题(在完成的搜索上发布)的页面上包含一个额外的自定义服务。它应该将搜索响应保存在一个变量中,为用户单击 PropertyLink 做准备。

此自定义服务还应订阅由 PropertyLink 发布的主题(称为“DOWNLOAD_CSV”)。然后,此自定义服务可以使用我之前回答中描述的方法使用有效负载中提供的 CSV 数据生成文件下载。正如我所说,由于安全原因,这可能仅适用于某些浏览器。

如果您的自定义搜索 WebScript 能够将 CSV 数据作为节点存储在存储库中,那么您只需在搜索响应中提供 CSV 数据的 NodeRef,PropertyLink 就可以发布“ALF_DOWNLOAD”主题以供 DocumentService 处理下载。

对于我认为的大多数浏览器来说,尝试生成要在客户端下载的文件将是一个问题。

于 2016-09-19T12:14:10.813 回答