Merged V3.4-BUG-FIX to HEAD

31640: Fix for ALF-9922 - Performance issue of Wiki-Dashlet page.

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@31686 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Kevin Roast
2011-11-03 15:18:31 +00:00
parent 8e23541e25
commit cce7d4ec94
2 changed files with 60 additions and 48 deletions

View File

@@ -1,53 +1,62 @@
<#macro dateFormat date>${xmldate(date)}</#macro>
<#escape x as jsonUtils.encodeJSONString(x)>
{
"totalPages" : ${wiki.pages?size?c},
"permissions":
{
"create": ${wiki.container.hasPermission("CreateChildren")?string}
},
"pages":
[
<#list wiki.pages?sort_by(['modified'])?reverse as p>
<#assign node = p.node>
<#assign page = p.page>
{
"name" : "${p.name}",
"title" : "<#if p.title?has_content>${p.title}<#else>${p.name?replace("_", " ")}</#if>",
<#-- Strip out any HTML tags -->
"text" : "${page.contents}",
"tags" : [
<#list p.tags as tag>
"${tag}"<#if tag_has_next>,</#if>
</#list>
],
"createdOn": "<@dateFormat p.created />",
<#if p.createdBy??>
<#assign createdBy = (p.createdBy.properties.firstName!"" + " " + p.createdBy.properties.lastName!"")?trim>
<#assign createdByUser = p.createdBy.properties.userName>
<#else>
<#assign createdBy="">
<#assign createdByUser="">
</#if>
"createdBy": "${createdBy}",
"createdByUser": "${createdByUser}",
"modifiedOn": "<@dateFormat p.modified />",
<#if p.modifiedBy??>
<#assign modifiedBy = (p.modifiedBy.properties.firstName!"" + " " + p.modifiedBy.properties.lastName!"")?trim>
<#assign modifiedByUser = p.modifiedBy.properties.userName>
<#else>
<#assign modifiedBy="">
<#assign modifiedByUser="">
</#if>
"modifiedBy": "${modifiedBy}",
"modifiedByUser": "${modifiedByUser}",
"permissions":
{
"edit": ${node.hasPermission("Write")?string},
"delete": ${node.hasPermission("Delete")?string}
}
}<#if p_has_next>,</#if>
</#list>
]
"totalPages": ${wiki.pages?size?c},
"permissions":
{
"create": ${wiki.container.hasPermission("CreateChildren")?string}
},
"pages":
[
<#if pageMetaOnly>
<#list wiki.pages as p>
<#assign page = p.page>
{
"name": "${p.name}",
"title": "<#if p.title?has_content>${p.title}<#else>${p.name?replace("_", " ")}</#if>",
}<#if p_has_next>,</#if>
</#list>
<#else>
<#list wiki.pages?sort_by(['modified'])?reverse as p>
<#assign node = p.node>
<#assign page = p.page>
{
"name": "${p.name}",
"title": "<#if p.title?has_content>${p.title}<#else>${p.name?replace("_", " ")}</#if>",
"text": "${page.contents}",
"tags": [
<#list p.tags as tag>
"${tag}"<#if tag_has_next>,</#if>
</#list>
],
"createdOn": "<@dateFormat p.created />",
<#if p.createdBy??>
<#assign createdBy = (p.createdBy.properties.firstName!"" + " " + p.createdBy.properties.lastName!"")?trim>
<#assign createdByUser = p.createdBy.properties.userName>
<#else>
<#assign createdBy="">
<#assign createdByUser="">
</#if>
"createdBy": "${createdBy}",
"createdByUser": "${createdByUser}",
"modifiedOn": "<@dateFormat p.modified />",
<#if p.modifiedBy??>
<#assign modifiedBy = (p.modifiedBy.properties.firstName!"" + " " + p.modifiedBy.properties.lastName!"")?trim>
<#assign modifiedByUser = p.modifiedBy.properties.userName>
<#else>
<#assign modifiedBy="">
<#assign modifiedByUser="">
</#if>
"modifiedBy": "${modifiedBy}",
"modifiedByUser": "${modifiedByUser}",
"permissions":
{
"edit": ${node.hasPermission("Write")?string},
"delete": ${node.hasPermission("Delete")?string}
}
}<#if p_has_next>,</#if>
</#list>
</#if>
]
}
</#escape>

View File

@@ -64,6 +64,8 @@ public class WikiPageListGet extends AbstractWikiWebScript
{
// Decide on what kind of request they wanted
String filter = req.getParameter("filter");
String strPageMetaOnly = req.getParameter("pageMetaOnly");
boolean pageMetaOnly = strPageMetaOnly != null ? Boolean.parseBoolean(strPageMetaOnly) : false;
// User?
boolean userFiltering = false;
@@ -178,6 +180,7 @@ public class WikiPageListGet extends AbstractWikiWebScript
model.put("siteId", site.getShortName());
model.put("site", site);
model.put(TemplateService.KEY_SHARE_URL, UrlUtil.getShareUrl(sysAdminParams));
model.put("pageMetaOnly", pageMetaOnly);
return model;
}
}