- AVM Web Script Sample (browse stores, folders, content)

- Fix Web Script issue where urls contained ; (due to tomcat)
- Allow AVMScriptStore to be passed through script converters (add serializable)

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@6071 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
David Caruana
2007-06-22 16:39:43 +00:00
parent 5981472dd3
commit 3f107708f8
7 changed files with 182 additions and 1 deletions

View File

@@ -0,0 +1,8 @@
<webscript>
<shortname>AVM Browse Sample</shortname>
<description>Sample demonstrating the listing of AVM folder contents</description>
<url>/sample/avm/path/{storeid}/{path}</url>
<format default="html">argument</format>
<authentication>guest</authentication>
<transaction>required</transaction>
</webscript>

View File

@@ -0,0 +1,31 @@
<html>
<head>
<title>AVM Folder: ${folder.displayPath}/${folder.name}</title>
</head>
<body>
<a href="${url.serviceContext}/sample/avm/stores">AVM Store</a>: ${store.id}
<br>
<br>
AVM Folder: ${folder.displayPath}/${folder.name}
<br>
<br>
<table>
<#if folder.parent?exists>
<tr>
<td>${folder.parent.properties.creator}<td>&nbsp;<td>${folder.parent.size}<td>&nbsp;<td>${folder.parent.properties.modified?datetime}<td>&nbsp;<td><td><a href="${url.serviceContext}/sample/avm/path/${store.id}<@encodepath node=folder.parent/>">..</a>
</tr>
</#if>
<#list folder.children as child>
<tr>
<#if child.isContainer>
<td>${child.properties.creator}<td>&nbsp;<td>${child.size}<td>&nbsp;<td>${child.properties.modified?datetime}<td>&nbsp;<td>&gt;<td><a href="${url.serviceContext}/sample/avm/path/${store.id}<@encodepath node=child/>">${child.name}</a>
<#else>
<td>${child.properties.creator}<td>&nbsp;<td>${child.size}<td>&nbsp;<td>${child.properties.modified?datetime}<td>&nbsp;<td><td><a href="${url.serviceContext}/api/node/content/${child.nodeRef.storeRef.protocol}/${child.nodeRef.storeRef.identifier}/${child.nodeRef.id}/${child.name?url}">${child.name}</a>
</#if>
</tr>
</#list>
</table>
</body>
</html>
<#macro encodepath node><#if node.parent?exists><@encodepath node=node.parent/>/${node.name?url}</#if></#macro>

View File

@@ -0,0 +1,36 @@
script:
{
// extract avm store id and path
var fullpath = url.extension.split("/");
if (fullpath.length == 0)
{
status.code = 400;
status.message = "Store id has not been provided.";
status.redirect = true;
break script;
}
var storeid = fullpath[0];
var path = (fullpath.length == 1 ? "/" : "/" + fullpath.slice(1).join("/"));
// locate avm node from path
var store = avm.lookupStore(storeid);
if (store == undefined)
{
status.code = 404;
status.message = "Store " + storeid + " not found.";
status.redirect = true;
break script;
}
var node = avm.lookupNode(storeid + ":" + path);
if (node == undefined)
{
status.code = 404;
status.message = "Path " + path + " within store " + storeid + " not found.";
status.redirect = true;
break script;
}
// setup model for templates
model.store = store;
model.folder = node;
}

View File

@@ -0,0 +1,8 @@
<webscript>
<shortname>AVM Stores Sample</shortname>
<description>Sample demonstrating the listing of AVM stores</description>
<url>/sample/avm/stores</url>
<format default="html"/>
<authentication>admin</authentication>
<transaction>required</transaction>
</webscript>

View File

@@ -0,0 +1,18 @@
<html>
<head>
<title>AVM Stores</title>
</head>
<body>
AVM Stores
<br>
<br>
<table>
<tr>
<#list avm.stores as store>
<tr>
<td>${store.creator}<td>&nbsp;<td>${store.createdDate?datetime}<td>&nbsp;<td><a href="${url.serviceContext}/sample/avm/path/${store.id}/">${store.id}
</tr>
</#list>
</table>
</body>
</html>