diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/doclist.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/doclist.get.json.ftl index f74f4ed2eb..7ccea5b6f6 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/doclist.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/doclist.get.json.ftl @@ -22,8 +22,8 @@ "onlineEditing": ${doclist.onlineEditing?string}, "itemCounts": { - "folders": ${(itemCount.folders!0)?string}, - "documents": ${(itemCount.documents!0)?string} + "folders": ${(itemCount.folders!0)?c}, + "documents": ${(itemCount.documents!0)?c} } }, "items": diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/filters.lib.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/filters.lib.js index dbecbd62bd..c38952c137 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/filters.lib.js +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/filters.lib.js @@ -23,6 +23,7 @@ function getFilterParams(filter, parsedArgs) var filterQuery = "+PATH:\"" + parsedArgs.rootNode.qnamePath + "//*\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/content/1.0}thumbnail\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/content/1.0}folder\""; + filterQuery += " -TYPE:\"{http://www.alfresco.org/model/content/1.0}systemfolder\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/forum/1.0}forums\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/forum/1.0}forum\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/forum/1.0}topic\""; @@ -75,6 +76,7 @@ function getFilterParams(filter, parsedArgs) filterQuery += " -ASPECT:\"{http://www.alfresco.org/model/content/1.0}workingcopy\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/content/1.0}thumbnail\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/content/1.0}folder\""; + filterQuery += " -TYPE:\"{http://www.alfresco.org/model/content/1.0}systemfolder\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/forum/1.0}forums\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/forum/1.0}forum\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/forum/1.0}topic\""; @@ -107,6 +109,7 @@ function getFilterParams(filter, parsedArgs) default: var filterQuery = "+PATH:\"" + parsedArgs.parentNode.qnamePath + "/*\""; filterQuery += " -ASPECT:\"{http://www.alfresco.org/model/content/1.0}workingcopy\""; + filterQuery += " -TYPE:\"{http://www.alfresco.org/model/content/1.0}systemfolder\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/forum/1.0}forums\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/forum/1.0}forum\""; filterQuery += " -TYPE:\"{http://www.alfresco.org/model/forum/1.0}topic\""; diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/treenode.get.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/treenode.get.js index ecad89a20f..51728bc5cd 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/treenode.get.js +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/treenode.get.js @@ -11,12 +11,12 @@ function getTreenode(siteId, path) try { var items = new Array(), + hasSubfolders, ignoredTypes = { - "{http://www.alfresco.org/model/forum/1.0}forums": true, "{http://www.alfresco.org/model/forum/1.0}forum": true, "{http://www.alfresco.org/model/forum/1.0}topic": true, - "{http://www.alfresco.org/model/forum/1.0}post": true + "{http://www.alfresco.org/model/content/1.0}systemfolder": true }; // Use helper function to get the arguments @@ -31,7 +31,13 @@ function getTreenode(siteId, path) { if (item.isSubType("cm:folder") && !(item.type in ignoredTypes)) { - items.push(item); + hasSubfolders = item.childrenByXPath("*[subtypeOf('cm:folder') and not(subtypeOf('fm:forum')) and not(subtypeOf('cm:systemfolder'))]").length > 0; + + items.push( + { + node: item, + hasSubfolders: hasSubfolders + }); } } @@ -53,5 +59,5 @@ function getTreenode(siteId, path) /* Sort the results by case-insensitive name */ function sortByName(a, b) { - return (b.name.toLowerCase() > a.name.toLowerCase() ? -1 : 1); + return (b.node.name.toLowerCase() > a.node.name.toLowerCase() ? -1 : 1); } \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/treenode.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/treenode.get.json.ftl index 78d68fcd3d..c4fa54d19f 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/treenode.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/treenode.get.json.ftl @@ -3,23 +3,20 @@ "totalResults": ${treenode.items?size?c}, "items": [ - <#list treenode.items as t> - <#assign hasChildren = false> - <#list t.children as c> - <#if c.isContainer><#assign hasChildren = true><#break> - + <#list treenode.items as item> + <#assign t = item.node> { "nodeRef": "${t.nodeRef}", "name": "${t.name}", - "description": "${(t.properties.description!"{}")}", - "hasChildren": ${hasChildren?string}, + "description": "${(t.properties.description!"")}", + "hasChildren": ${item.hasSubfolders?string}, "userAccess": { "create": ${t.hasPermission("CreateChildren")?string}, "edit": ${t.hasPermission("Write")?string}, "delete": ${t.hasPermission("Delete")?string} } - }<#if t_has_next>, + }<#if item_has_next>, ] }