我想知道是否有可能以任何方式根据用户输入的文件夹类型更改共享文档库中的默认视图渲染器。
默认视图总体似乎在documentlist.js的构造函数和选项" viewRendererName"中设置。如何根据文件夹类型更改此内容?
除了下面的Tahirs链接之外,我还想添加以下博客文章,它可以很好地概述如何使用模块评估器完成此操作:
http://experiencewithalfresco.blogspot.dk/2012/06/type-subcomponent-evaluator.html
答案 0 :(得分:2)
好吧,经过一番挖掘,我们发现了这个功能(没有记录?)。在applicationModel.xml
中有一个名为app:defaultViewConfig
的方面,将其应用于您的类型,并将属性app:defaultViewId
设置为您想要的默认视图的ID,并且您已完成(因为它似乎在我们的第一次测试后)
答案 1 :(得分:1)
如果你看看很多Dave Draper博客中解释的扩展模块,例如here。
您会注意到您可以在Alfresco的不同部分添加共享评估程序。 因此,您可以编写一个评估程序,在该节点上检查文件夹的类型,并使用另一个 viewRendererName 显示自定义 documentlist.get.html.ftl 。
共享评估者的一个例子:
public boolean evaluate(JSONObject jsonObject) {
try {
JSONObject node = (JSONObject) jsonObject.get("node");
// Do things with the node
return <true/false>;
} catch (Exception e) {
logger.error(e.getMessage(), e);
return false;
}
}
答案 2 :(得分:0)
如何更改特定文件夹或站点的默认视图?
我们需要将“ defaultViewId”设置为viewname(简单),这是“ defaultViewConfig”方面的属性,并且需要将该方面添加到相关文件夹中。
例如。
Map<QName, Serializable> viewProp = new HashMap<QName, Serializable>();
viewProp.put(ApplicationModel.PROP_DEFAULT_VIEW_ID, "simple");
nodeService.addAspect(folderNodeRef, ApplicationModel.ASPECT_DEFAULT_VIEW_CONFIG, viewProp);
根据要求,我们需要编写可以使用Java或javascript的逻辑。