Recursively get all content file names under a folder in Alfresco 5.0 (by WebScripts)

梦想与她 提交于 2019-12-12 04:54:44

问题


So far I found the script to show the children:

http://localhost:8080/alfresco/service/slingshot/datalists/lists/site/MyFakeSite/documentLibrary

It returns me something like:

{
   "container": "workspace:\/\/SpacesStore\/8ef98a58-18f0-4f27-9fee-709f81ca0a65",
   "permissions":
   {
      "create": true
   },
   "datalists":
   [
      {
   "name": "MyPicture.jpg",
   "title": "My Awesome Picture File",
   "description": "Legen - wait for it - dary!!!",
   "nodeRef": "workspace://SpacesStore/54acabf9-bf6b-42f0-8b68-bbe9732b29b8",
   "itemType": "",
   "permissions":
   {
      "edit": true,
      "delete": true
   }
}
,
      {
   "name": "MyFirstLevelFolder",
   "title": "FirstLevel",
   "description": "",
   "nodeRef": "workspace://SpacesStore/181a36df-2892-4669-aac0-d13ff90457bb",
   "itemType": "",
   "permissions":
   {
      "edit": true,
      "delete": true
   }
}

which is the list of the child nodes of a level down.

Is there any way to:

  • Show ALL nodes recursively ??

    And less important:

  • Filter only content objects for the answer (folders looped but not returned)?

  • Filter all the metadata but the name, the only important thing to me?


回答1:


Here is an example of webscript which may help you. Create this webscript in alfresco.

getChildren.get.desc.xml

<webscript>
    <shortname>Get Documents</shortname>
    <description>Display all Documents within Folder</description>
    <url>/getChildren</url>
    <format default="json">argument</format>
    <authentication>user</authentication>
</webscript>

getChildren.get.js

function main()
{
    var node = [];
    var folderName = args["foldername"];
    node = search.luceneSearch("PATH:\"/app:company_home/cm:"+folderName+"/*\"");
    model.totalItems = node.length;
    model.results = node;

} main();

getChildren.get.json.ftl

{
    "totalItems": "${totalItems}",
    "nodes":
    [<#list results as node>
        {
            "name" : "${node.properties["cm:name"]?trim}"
        }<#if (node_index + 1 < results?size)>,</#if>
     </#list>
    ]
}

After creating fire this query in browser:

http://localhost:8080/alfresco/service/getChildren?foldername=Test_Folder

Note: This will fetch child details of folders in company home only. Change lucene query in javascript file according to your requirement.




回答2:


you can create your custom webscript instead of above which you have specified.Customize the webscript as per your requirement.

Below link is use full for creating webscript in alfresco.

https://wiki.alfresco.com/wiki/Web_Scripts



来源:https://stackoverflow.com/questions/28032333/recursively-get-all-content-file-names-under-a-folder-in-alfresco-5-0-by-webscr

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!