diff --git a/config/alfresco/bootstrap/webScripts.xml b/config/alfresco/bootstrap/webScripts.xml
index 74b6010897..b166cdeb71 100644
--- a/config/alfresco/bootstrap/webScripts.xml
+++ b/config/alfresco/bootstrap/webScripts.xml
@@ -21,7 +21,7 @@
true
What are Web Scripts and how do you develop them?
- contentUrl=classpath:alfresco/bootstrap/webscripts/readme.html|mimetype=text/html|size=1344|encoding=UTF-8|locale=en_US_
+ contentUrl=classpath:alfresco/bootstrap/webscripts/readme.html|mimetype=text/html|size=|encoding=UTF-8|locale=en_US_
readme.html
@@ -64,6 +64,103 @@
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/blogsearch.get.js|mimetype=application/x-javascript|size=|encoding=UTF-8|locale=en_US_
+ blogsearch.get.js
+
+ blogsearch.get.js
+
+
+
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/blogsearch.get.atom.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_
+ blogsearch.get.atom.ftl
+
+ workspace
+ blogsearch.get.atom.ftl
+
+
+
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/blogsearch.get.desc.xml|mimetype=text/xml|size=|encoding=UTF-8|locale=en_US_
+ blogsearch.get.desc.xml
+
+ blogsearch.get.desc.xml
+
+
+
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/blogsearch.get.html.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_
+ blogsearch.get.html.ftl
+
+ blogsearch.get.html.ftl
+
+
+
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/blogsearch.get.html.400.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_
+ blogsearch.get.html.400.ftl
+
+ blogsearch.get.html.400.ftl
+
+
+
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/blogsearch.get.atom.400.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_
+ blogsearch.get.atom.400.ftl
+
+ blogsearch.get.atom.400.ftl
+
+
+
@@ -73,7 +170,7 @@
true
- contentUrl=classpath:alfresco/bootstrap/webscripts/categorysearch.get.js|mimetype=application/x-javascript|size=121|encoding=UTF-8|locale=en_US_
+ contentUrl=classpath:alfresco/bootstrap/webscripts/categorysearch.get.js|mimetype=application/x-javascript|size=|encoding=UTF-8|locale=en_US_
categorysearch.get.js
categorysearch.get.js
@@ -89,7 +186,7 @@
true
- contentUrl=classpath:alfresco/bootstrap/webscripts/categorysearch.get.atom.ftl|mimetype=text/plain|size=778|encoding=UTF-8|locale=en_US_
+ contentUrl=classpath:alfresco/bootstrap/webscripts/categorysearch.get.atom.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_
categorysearch.get.atom.ftl
workspace
@@ -106,7 +203,7 @@
true
- contentUrl=classpath:alfresco/bootstrap/webscripts/categorysearch.get.desc.xml|mimetype=text/xml|size=375|encoding=UTF-8|locale=en_US_
+ contentUrl=classpath:alfresco/bootstrap/webscripts/categorysearch.get.desc.xml|mimetype=text/xml|size=|encoding=UTF-8|locale=en_US_
categorysearch.get.desc.xml
categorysearch.get.desc.xml
@@ -122,13 +219,110 @@
true
- contentUrl=classpath:alfresco/bootstrap/webscripts/categorysearch.get.html.ftl|mimetype=text/plain|size=364|encoding=UTF-8|locale=en_US_
+ contentUrl=classpath:alfresco/bootstrap/webscripts/categorysearch.get.html.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_
categorysearch.get.html.ftl
categorysearch.get.html.ftl
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/categorysearch.get.html.404.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_
+ categorysearch.get.html.404.ftl
+
+ categorysearch.get.html.404.ftl
+
+
+
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/categorysearch.get.atom.404.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_
+ categorysearch.get.atom.404.ftl
+
+ categorysearch.get.atom.404.ftl
+
+
+
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/folder.get.js|mimetype=application/x-javascript|size=|encoding=UTF-8|locale=en_US_
+ folder.get.js
+
+ folder.get.js
+
+
+
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/folder.get.atom.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_
+ folder.get.atom.ftl
+
+ workspace
+ folder.get.atom.ftl
+
+
+
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/folder.get.desc.xml|mimetype=text/xml|size=|encoding=UTF-8|locale=en_US_
+ folder.get.desc.xml
+
+ folder.get.desc.xml
+
+
+
+
+
+
+
+
+
+
+ true
+
+ contentUrl=classpath:alfresco/bootstrap/webscripts/folder.get.html.ftl|mimetype=text/plain|size=|encoding=UTF-8|locale=en_US_
+ folder.get.html.ftl
+
+ folder.get.html.ftl
+
+
+
diff --git a/config/alfresco/bootstrap/webscripts/blogsearch.get.atom.400.ftl b/config/alfresco/bootstrap/webscripts/blogsearch.get.atom.400.ftl
new file mode 100644
index 0000000000..b555f0e3ec
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/blogsearch.get.atom.400.ftl
@@ -0,0 +1,7 @@
+
+
+ ${status.code}
+ ${status.codeName}
+ ${status.codeDescription}
+ ${status.message}
+
\ No newline at end of file
diff --git a/config/alfresco/bootstrap/webscripts/blogsearch.get.atom.ftl b/config/alfresco/bootstrap/webscripts/blogsearch.get.atom.ftl
new file mode 100644
index 0000000000..a8a3149cb4
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/blogsearch.get.atom.ftl
@@ -0,0 +1,20 @@
+
+
+ Alfresco (${server.edition})
+ Blog query: ${args.q}
+ ${xmldate(date)}
+ ${absurl(url.context)}/images/logo/AlfrescoLogo16.ico
+<#list resultset as node>
+
+ ${node.name}
+
+ ${absurl(url.context)}${node.icon16}
+ urn:uuid:${node.id}
+ ${xmldate(node.properties.modified)}
+ ${node.properties.description!""}
+
+ ${node.properties.creator}
+
+
+#list>
+
\ No newline at end of file
diff --git a/config/alfresco/bootstrap/webscripts/blogsearch.get.desc.xml b/config/alfresco/bootstrap/webscripts/blogsearch.get.desc.xml
new file mode 100644
index 0000000000..d952b9e1b2
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/blogsearch.get.desc.xml
@@ -0,0 +1,11 @@
+
+ Blog Search Sample
+ Sample that finds all blog entries whose content contains the specified search term
+ /sample/blog/search?q={searchTerm}
+ /sample/blog/search.atom?q={searchTerm}
+ /sample/b/s?q={searchTerm}
+ /sample/b/s.atom?q={searchTerm}
+ extension
+ guest
+ required
+
diff --git a/config/alfresco/bootstrap/webscripts/blogsearch.get.html.400.ftl b/config/alfresco/bootstrap/webscripts/blogsearch.get.html.400.ftl
new file mode 100644
index 0000000000..8ad403b295
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/blogsearch.get.html.400.ftl
@@ -0,0 +1,5 @@
+
+
+ ${status.message}
+
+
\ No newline at end of file
diff --git a/config/alfresco/bootstrap/webscripts/blogsearch.get.html.ftl b/config/alfresco/bootstrap/webscripts/blogsearch.get.html.ftl
new file mode 100644
index 0000000000..912a9d4983
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/blogsearch.get.html.ftl
@@ -0,0 +1,15 @@
+
+
+
+ Blog query: ${args.q}
+
+
+
+
\ No newline at end of file
diff --git a/config/alfresco/bootstrap/webscripts/blogsearch.get.js b/config/alfresco/bootstrap/webscripts/blogsearch.get.js
new file mode 100644
index 0000000000..e3a1af5d49
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/blogsearch.get.js
@@ -0,0 +1,13 @@
+// check that search term has been provided
+if (args.q == undefined || args.q.length == 0)
+{
+ status.code = 400;
+ status.message = "Search term has not been provided.";
+ status.redirect = true;
+}
+else
+{
+ // perform search
+ var nodes = search.luceneSearch("TEXT:" + args.q);
+ model.resultset = nodes;
+}
diff --git a/config/alfresco/bootstrap/webscripts/categorysearch.get.atom.404.ftl b/config/alfresco/bootstrap/webscripts/categorysearch.get.atom.404.ftl
new file mode 100644
index 0000000000..b555f0e3ec
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/categorysearch.get.atom.404.ftl
@@ -0,0 +1,7 @@
+
+
+ ${status.code}
+ ${status.codeName}
+ ${status.codeDescription}
+ ${status.message}
+
\ No newline at end of file
diff --git a/config/alfresco/bootstrap/webscripts/categorysearch.get.atom.ftl b/config/alfresco/bootstrap/webscripts/categorysearch.get.atom.ftl
index ac349f1f99..dfd8a8424d 100644
--- a/config/alfresco/bootstrap/webscripts/categorysearch.get.atom.ftl
+++ b/config/alfresco/bootstrap/webscripts/categorysearch.get.atom.ftl
@@ -1,13 +1,13 @@
Alfresco (${server.edition})
- Category search: ${args.c}
+ Category search: ${url.extension}
${xmldate(date)}
${absurl(url.context)}/images/logo/AlfrescoLogo16.ico
<#list resultset as node>
${node.name}
-
+
${absurl(url.context)}${node.icon16}
urn:uuid:${node.id}
${xmldate(node.properties.modified)}
diff --git a/config/alfresco/bootstrap/webscripts/categorysearch.get.desc.xml b/config/alfresco/bootstrap/webscripts/categorysearch.get.desc.xml
index 7bfdebefe2..4bcf352206 100644
--- a/config/alfresco/bootstrap/webscripts/categorysearch.get.desc.xml
+++ b/config/alfresco/bootstrap/webscripts/categorysearch.get.desc.xml
@@ -1,6 +1,6 @@
- Category Search
- Find all blog entries tagged with specified categories
+ Category Search Sample
+ Sample that finds all blog entries tagged with specified categories
/sample/blog/category/{category}
argument
guest
diff --git a/config/alfresco/bootstrap/webscripts/categorysearch.get.html.404.ftl b/config/alfresco/bootstrap/webscripts/categorysearch.get.html.404.ftl
new file mode 100644
index 0000000000..8ad403b295
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/categorysearch.get.html.404.ftl
@@ -0,0 +1,5 @@
+
+
+ ${status.message}
+
+
\ No newline at end of file
diff --git a/config/alfresco/bootstrap/webscripts/categorysearch.get.html.ftl b/config/alfresco/bootstrap/webscripts/categorysearch.get.html.ftl
index e4f0e858e2..a6bc79561d 100644
--- a/config/alfresco/bootstrap/webscripts/categorysearch.get.html.ftl
+++ b/config/alfresco/bootstrap/webscripts/categorysearch.get.html.ftl
@@ -1,13 +1,13 @@
- Category search: ${args.c}
+ Category search: ${url.extension}
diff --git a/config/alfresco/bootstrap/webscripts/categorysearch.get.js b/config/alfresco/bootstrap/webscripts/categorysearch.get.js
index 0b281706f3..f8cb0b7811 100644
--- a/config/alfresco/bootstrap/webscripts/categorysearch.get.js
+++ b/config/alfresco/bootstrap/webscripts/categorysearch.get.js
@@ -1,2 +1,15 @@
-var nodes = search.luceneSearch("PATH:\"/cm:generalclassifiable//cm:" + url.extension + "//member\"");
-model.resultset = nodes;
\ No newline at end of file
+// check category exists?
+var category = search.luceneSearch("PATH:\"/cm:generalclassifiable//cm:" + url.extension);
+if (category is null)
+{
+ status.code = 404;
+ status.message = "Category " + url.extension + " not found.";
+ status.redirect = true;
+ return;
+}
+else
+{
+ // perform category search
+ var nodes = search.luceneSearch("PATH:\"/cm:generalclassifiable//cm:" + url.extension + "//member\"");
+ model.resultset = nodes;
+}
\ No newline at end of file
diff --git a/config/alfresco/bootstrap/webscripts/folder.get.atom.ftl b/config/alfresco/bootstrap/webscripts/folder.get.atom.ftl
new file mode 100644
index 0000000000..098fe81dfa
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/folder.get.atom.ftl
@@ -0,0 +1,25 @@
+
+
+ Alfresco (${server.edition})
+ Folder: ${folder.displayPath}/${folder.name}
+ ${xmldate(date)}
+ ${absurl(url.context)}/images/logo/AlfrescoLogo16.ico
+<#list folder.children as child>
+
+ ${child.name}
+ <#if child.isContainer>
+
+ <#else>
+
+ #if>
+ ${absurl(url.context)}${child.icon16}
+ urn:uuid:${child.id}
+ ${xmldate(child.properties.modified)}
+ ${child.properties.description!""}
+
+ ${child.properties.creator}
+
+
+#list>
+
+<#macro encodepath node><#if node.parent?exists><@encodepath node=node.parent/>/${node.name?url}#if>#macro>
\ No newline at end of file
diff --git a/config/alfresco/bootstrap/webscripts/folder.get.desc.xml b/config/alfresco/bootstrap/webscripts/folder.get.desc.xml
new file mode 100644
index 0000000000..a90da4222d
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/folder.get.desc.xml
@@ -0,0 +1,8 @@
+
+ Folder Listing Sample
+ Sample demonstrating the listing of folder contents
+ /sample/folder/{path}
+ argument
+ guest
+ required
+
diff --git a/config/alfresco/bootstrap/webscripts/folder.get.html.ftl b/config/alfresco/bootstrap/webscripts/folder.get.html.ftl
new file mode 100644
index 0000000000..48f09a619c
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/folder.get.html.ftl
@@ -0,0 +1,27 @@
+
+
+ ${folder.displayPath}/${folder.name}
+
+
+ Folder: ${folder.displayPath}/${folder.name}
+
+
+ <#if folder.parent.parent?exists>
+
+ | ..
+ |
+ #if>
+<#list folder.children as child>
+
+ <#if child.isContainer>
+ > | ${child.name}
+ <#else>
+ | | ${child.name}
+ #if>
+ |
+#list>
+
+
+
+
+<#macro encodepath node><#if node.parent?exists><@encodepath node=node.parent/>/${node.name?url}#if>#macro>
\ No newline at end of file
diff --git a/config/alfresco/bootstrap/webscripts/folder.get.js b/config/alfresco/bootstrap/webscripts/folder.get.js
new file mode 100644
index 0000000000..40032751c1
--- /dev/null
+++ b/config/alfresco/bootstrap/webscripts/folder.get.js
@@ -0,0 +1,10 @@
+// locate folder by path
+// NOTE: only supports path beneath company home, not from root
+var folder = roothome.childByNamePath(url.extension);
+if (folder == undefined || !folder.isContainer)
+{
+ status.code = 404;
+ status.message = "Folder " + url.extension + " not found.";
+ status.redirect = true;
+ }
+ model.folder = folder;
\ No newline at end of file