diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.desc.xml new file mode 100644 index 0000000000..0a126a030c --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.desc.xml @@ -0,0 +1,9 @@ + + Create Node Templates + Document List Component - Create Node Templates GET data webscript + /slingshot/doclib/node-templates + argument + user + required + internal + \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.js new file mode 100644 index 0000000000..52502562fd --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.js @@ -0,0 +1,10 @@ +/** + * Document List Component: Create New Node - get list of available node templates in the Data Dictionary + */ +function main() +{ + var nodes = search.selectNodes('/app:company_home/app:dictionary/app:node_templates/*[subtypeOf("cm:content")]'); + return nodes; +} + +model.nodes = main(); \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.json.ftl new file mode 100644 index 0000000000..4923d97c59 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.get.json.ftl @@ -0,0 +1,15 @@ +<#escape x as jsonUtils.encodeJSONString(x)> +{ + "data": + [ + <#list nodes as node> + { + "nodeRef": "${node.nodeRef}", + "name": "${node.name}", + "title": "${node.properties.title!""}", + "description": "${node.properties.description!""}" + }<#if node_has_next>, + + ] +} + \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.desc.xml new file mode 100644 index 0000000000..04991abaf6 --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.desc.xml @@ -0,0 +1,9 @@ + + Create Node Templates + Document List Component - Create Node Templates POST data webscript + /slingshot/doclib/node-templates + argument + user + required + internal + \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.ftl new file mode 100644 index 0000000000..e37684e04d --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.ftl @@ -0,0 +1,3 @@ +{ + "success": true +} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.js b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.js new file mode 100644 index 0000000000..e61e92634c --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/slingshot/documentlibrary/node-templates.post.json.js @@ -0,0 +1,31 @@ +/** + * Document List Component: Create New Node - create copy of node template in the Data Dictionary + */ +function main() +{ + // get the arguments - expecting the "sourceNodeRef" and "parentNodeRef" of the source node to copy + // and the parent node to contain the new copy of the source. + var sourceNodeRef = json.get("sourceNodeRef"); + if (sourceNodeRef == null || sourceNodeRef.length === 0) + { + status.setCode(status.STATUS_BAD_REQUEST, "Mandatory 'sourceNodeRef' parameter missing."); + return; + } + var parentNodeRef = json.get("parentNodeRef"); + if (parentNodeRef == null || parentNodeRef.length === 0) + { + status.setCode(status.STATUS_BAD_REQUEST, "Mandatory 'parentNodeRef' parameter missing."); + return; + } + + // get the nodes and perform the copy - permission failures etc. will produce a status code response + var sourceNode = search.findNode(sourceNodeRef), + parentNode = search.findNode(parentNodeRef); + if (sourceNode == null || parentNode == null) + { + status.setCode(status.STATUS_NOT_FOUND, "Source or destination node is missing for copy operation."); + } + sourceNode.copy(parentNode); +} + +main(); \ No newline at end of file