From 2de8f8402c95750f2332870750148125015357e2 Mon Sep 17 00:00:00 2001 From: David Caruana Date: Mon, 18 Jun 2007 22:34:29 +0000 Subject: [PATCH] Web Scripts: - samples - fix "execute" javascript error - fix hidden exception when status template had errors - addition of 'roothome' script & template root object git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6011 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- config/alfresco/bootstrap/webScripts.xml | 204 +++++++++++++++++- .../webscripts/blogsearch.get.atom.400.ftl | 7 + .../webscripts/blogsearch.get.atom.ftl | 20 ++ .../webscripts/blogsearch.get.desc.xml | 11 + .../webscripts/blogsearch.get.html.400.ftl | 5 + .../webscripts/blogsearch.get.html.ftl | 15 ++ .../bootstrap/webscripts/blogsearch.get.js | 13 ++ .../categorysearch.get.atom.404.ftl | 7 + .../webscripts/categorysearch.get.atom.ftl | 4 +- .../webscripts/categorysearch.get.desc.xml | 4 +- .../categorysearch.get.html.404.ftl | 5 + .../webscripts/categorysearch.get.html.ftl | 4 +- .../webscripts/categorysearch.get.js | 17 +- .../bootstrap/webscripts/folder.get.atom.ftl | 25 +++ .../bootstrap/webscripts/folder.get.desc.xml | 8 + .../bootstrap/webscripts/folder.get.html.ftl | 27 +++ .../bootstrap/webscripts/folder.get.js | 10 + 17 files changed, 373 insertions(+), 13 deletions(-) create mode 100644 config/alfresco/bootstrap/webscripts/blogsearch.get.atom.400.ftl create mode 100644 config/alfresco/bootstrap/webscripts/blogsearch.get.atom.ftl create mode 100644 config/alfresco/bootstrap/webscripts/blogsearch.get.desc.xml create mode 100644 config/alfresco/bootstrap/webscripts/blogsearch.get.html.400.ftl create mode 100644 config/alfresco/bootstrap/webscripts/blogsearch.get.html.ftl create mode 100644 config/alfresco/bootstrap/webscripts/blogsearch.get.js create mode 100644 config/alfresco/bootstrap/webscripts/categorysearch.get.atom.404.ftl create mode 100644 config/alfresco/bootstrap/webscripts/categorysearch.get.html.404.ftl create mode 100644 config/alfresco/bootstrap/webscripts/folder.get.atom.ftl create mode 100644 config/alfresco/bootstrap/webscripts/folder.get.desc.xml create mode 100644 config/alfresco/bootstrap/webscripts/folder.get.html.ftl create mode 100644 config/alfresco/bootstrap/webscripts/folder.get.js 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} + + + + \ 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 @@ + + + Alfresco + Blog query: ${args.q} +
+ +<#list resultset as node> + + + +
+ ${node.name} +
+ + \ 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 @@ Alfresco - Category search: ${args.c} + Category search: ${url.extension}
<#list resultset as node>
- ${node.name} + ${node.name}
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> + + + ${absurl(url.context)}${child.icon16} + urn:uuid:${child.id} + ${xmldate(child.properties.modified)} + ${child.properties.description!""} + + ${child.properties.creator} + + + + +<#macro encodepath node><#if node.parent?exists><@encodepath node=node.parent/>/${node.name?url} \ 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> + + + +<#list folder.children as child> + + <#if child.isContainer> + + +
.. +
>${child.name} + <#else> + ${child.name} + +
+ + + +<#macro encodepath node><#if node.parent?exists><@encodepath node=node.parent/>/${node.name?url} \ 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