diff --git a/remote-api/src/main/resources/alfresco/templates/webscripts/org/alfresco/repository/admin/support-tools/admin-nodebrowser.get.html.ftl b/remote-api/src/main/resources/alfresco/templates/webscripts/org/alfresco/repository/admin/support-tools/admin-nodebrowser.get.html.ftl index 6ef2adfe95..eceb98b36d 100644 --- a/remote-api/src/main/resources/alfresco/templates/webscripts/org/alfresco/repository/admin/support-tools/admin-nodebrowser.get.html.ftl +++ b/remote-api/src/main/resources/alfresco/templates/webscripts/org/alfresco/repository/admin/support-tools/admin-nodebrowser.get.html.ftl @@ -4,31 +4,71 @@ <#macro dateFormat date>${date?string("dd MMM yyyy HH:mm:ss 'GMT'Z '('zzz')'")} <#macro propValue p> -<#if p.value??> - <#if p.value?is_date> - <@dateFormat p.value /> - <#elseif p.value?is_boolean> - ${p.value?string} - <#elseif p.value?is_number> - ${p.value?c} - <#elseif p.value?is_string> - ${p.value?html} - <#elseif p.value?is_hash> - <#assign result = "{"/> - <#assign first = true /> - <#list p.value?keys as key> - <#if first = false> - <#assign result = result + ", "/> + <#attempt> + <#if p.value??> + <#if p.value?is_date> + <@dateFormat p.value /> + <#elseif p.value?is_boolean> + ${p.value?string} + <#elseif p.value?is_number> + ${p.value?c} + <#elseif p.value?is_string> + ${p.value?html} + <#elseif p.value?is_hash || p.value?is_enumerable> + <@convertToJSON p.value /> + + <#else> + ${null} + + <#recover> + ${.error} + + +<#macro convertToJSON v> + <#attempt> + <#if v??> + <#if v?is_date> + <@dateFormat v /> + <#elseif v?is_boolean> + ${v?string} + <#elseif v?is_number> + ${v?c} + <#elseif v?is_string> + "${v?string}" + <#elseif v?is_hash> + <@compress single_line=true> + { + <#assign first = true /> + <#list v?keys as key> + <#if first = false>, + "${key}": + <#if v[key]??> + <@convertToJSON v[key] /> + <#else> + ${null} + + <#assign first = false/> + + } + + <#elseif v?is_enumerable> + <#assign first = true /> + <@compress single_line=true> + [ + <#list v as item> + <#if first = false>, + <@convertToJSON item /> + <#assign first = false/> + + ] + - <#assign result = result + "${key}=${p.value[key]?html}" /> - <#assign first = false/> - - <#assign result = result + "}"/> - ${result} - -<#else> - ${null} - + <#else> + ${null} + + <#recover> + ${.error} + <#macro contentUrl nodeRef prop> ${url.serviceContext}/api/node/${nodeRef?replace("://","/")}/content;${prop?url}