From b39830a2bdd39b1eb9ebef1cdf5c28fd4bc2c4c2 Mon Sep 17 00:00:00 2001 From: Mike Hatfield Date: Tue, 4 Dec 2007 16:33:15 +0000 Subject: [PATCH] Rough cut: blogSpace custom view webscript git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@7529 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261 --- .../collaboration/blogSpace.get.desc.xml | 8 ++ .../collaboration/blogSpace.get.html.ftl | 74 +++++++++++++++++ .../alfresco/collaboration/blogSpace.get.js | 83 +++++++++++++++++++ 3 files changed, 165 insertions(+) create mode 100644 config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.desc.xml create mode 100644 config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.html.ftl create mode 100644 config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.js diff --git a/config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.desc.xml b/config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.desc.xml new file mode 100644 index 0000000000..622d5666ea --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.desc.xml @@ -0,0 +1,8 @@ + + Blog Custom View + Collaboration Blog Space view + /collaboration/blogSpace?nodeRef={noderef} + + user + required + diff --git a/config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.html.ftl b/config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.html.ftl new file mode 100644 index 0000000000..7c15f6cada --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.html.ftl @@ -0,0 +1,74 @@ +
Blog Status
+ +
+
Pending Articles
+
+<#list blogSpace.pending as p> +
+
+ ${p.name}, ${p.properties["cm:title"]} +
+
+ +
+
+ +
+ +
Published Articles
+ +
+ + diff --git a/config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.js b/config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.js new file mode 100644 index 0000000000..2ab4b5e76f --- /dev/null +++ b/config/alfresco/templates/webscripts/org/alfresco/collaboration/blogSpace.get.js @@ -0,0 +1,83 @@ +/* + * blogSpace + * + * Inputs: + * mandatory: nodeRef = parent space nodeRef + * optional: n = nodeId for document to action against + * a = action + * "p" = publish + * "u" = update + * "r" = remove + * + * Outputs: blogSpace - object containing published and pending node arrays + */ +parseArgs(args["n"], args["a"]); +model.blogSpace = main(args["nodeRef"]); + +function parseArgs(nodeId, action) +{ + if ((nodeId != null) && (action != null)) + { + var blog = actions.create("blog-post"); + + var node = search.findNode(nodeId); + if (node != null) + { + var blogAction = ""; + var isPublished = false; + if ((node.hasAspect("blg:blogPost")) && (node.properties["blg:published"] == true)) + { + isPublished = true; + } + + switch (action) + { + case "p": + blogAction = (isPublished ? "" : "post"); + break; + case "u": + blogAction = (isPublished ? "update" : ""); + break; + case "r": + blogAction = (isPublished ? "remove" : ""); + break; + } + + if (blogAction != "") + { + blog.parameters.action = blogAction; + blog.execute(node); + } + } + } +} + +function main(nodeRef) +{ + var published = new Array(), + pending = new Array(); + + var space = search.findNode(nodeRef); + + if (space != null) + { + for each(node in space.children) + { + if ((node.hasAspect("blg:blogPost")) && (node.properties["blg:published"] == true)) + { + published.push(node); + } + else + { + pending.push(node); + } + } + } + + var blogSpace = + { + "published": published, + "pending": pending + }; + return blogSpace; +}