Alfresco webscript. Список всех папок, подпапок и файлов

1

Я работал над веб-скриптом, который будет переплевывать все папки, подпапки и файлы через веб-страницу Alfresco.

Моя текущая модель JavaScript:

// search for folder within Alfresco content repository
var folder = roothome.childByNamePath("PATH");

// validate that folder has been found
if (folder == undefined || !folder.isContainer) {
   status.code = 404;
   status.message = "Folder " + " not found.";
   status.redirect = true;
}

// construct model for response template to render
model.folder = folder; 

Мой ответ JSON создается следующим образом:

<#assign datetimeformat="EEE, dd MMM yyyy HH:mm:ss zzz">
{"corporates" : [
    <#list folder.children as child>
      {
      "folder" : "${child.properties.name}"
      }
    </#list>
    ]
}

Этот шаблон Freemarker JSON отвечает следующим образом:

{"corporates" : [
      {
      "folder" : "Example Folder 1"
      }
      {
      "folder" : "Example Folder 2"
      }
      {
      "folder" : "Example Folder 3"
      }
      {
      "folder" : "Example Folder 4"
      }
    ]
}

Это выглядит великолепно, но мне нужно погрузиться в каждую из этих четырех папок, чтобы отобразить вложенные папки/файлы.

Эти потоки (здесь и здесь) дают примеры того, как перемещаться по папкам, но я не могу получить правильный ответ.

Этот поток Alfresco цитирует, как использовать поиск Lucene для получения всех папок/подпапок/файлов, но я не могу правильно отформатировать его.

Любая помощь или построение на связанных потоках было бы высоко оценено!

Теги:
alfresco
alfresco-share
alfresco-webscripts

1 ответ

1
Лучший ответ

Очевидно, вы используете Freemarker для получения ответа; почему бы вам просто не пересечь детей там? Создайте макрос/функцию, которая примет узел, и вернет все его дочерние элементы. Затем вызовите этот макрос столько раз, сколько вам нужно, рекурсивно.

http://docs.alfresco.com/5.2/references/API-FreeMarker-TemplateNode.html

http://freemarker.org/docs/

  • 0
    спасибо @Lista! Этот совет работал отлично, и теперь я рекурсивно изучаю каждую папку. Код ниже: <#macro recurse_macro node depth> <#list node.children?sort_by(["properties","name"]) as child> { "folder" : "${child.properties.name}" }, <#if child.isContainer> { <@recurse_macro node=child depth=depth+1/> } </#if> </#list> </#macro>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню