Рекурсивно получить все имена файлов содержимого в папке в Alfresco 5.0 (по WebScripts)

Пока я нашел сценарий, чтобы показать детям:

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

Это возвращает мне что-то вроде:

{
   "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
   }
}

который является списком дочерних узлов уровня вниз.

Есть ли способ:

  • Показать ВСЕ узлы рекурсивно??

    И менее важно:

  • Фильтровать только объекты содержимого для ответа (папки зациклены, но не возвращены)?

  • Отфильтровать все метаданные, кроме имени, единственная важная вещь для меня?

2 ответа

Решение

Вот пример веб-скрипта, который может вам помочь. Создайте этот веб-скрипт на свежем воздухе.

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>
    ]
}

После создания огня этот запрос в браузере:

HTTP: // локальный: 8080 / под открытым небом / услуги / GetChildren имя_папки = Test_Folder

Примечание. Это приведет к получению дочерних сведений о папках только в доме компании. Измените запрос lucene в файле javascript в соответствии с вашими требованиями.

Вы можете создать свой собственный веб-скрипт вместо того, который вы указали выше. Настройте веб-скрипт в соответствии с вашими требованиями.

Ниже ссылка полностью используется для создания веб-скрипта на свежем воздухе.

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

Другие вопросы по тегам