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

View File

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