diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/blogpost.lib.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/blogpost.lib.ftl index 3ed2dee382..76f7557f9b 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/blogpost.lib.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/blogpost.lib.ftl @@ -1,3 +1,5 @@ +<#import "../generic-paged-results.lib.ftl" as gen/> + <#-- Renders a person object. --> <#macro renderPerson person fieldName> <#escape x as jsonUtils.encodeJSONString(x)> @@ -76,3 +78,28 @@ } + +<#macro renderPostList> +{ + "metadata" : { + "blogPermissions" : { + "create" : ${blog.hasPermission("CreateChildren")?string}, + "edit" : ${blog.hasPermission("Write")?string}, + "delete" : ${blog.hasPermission("Delete")?string} + }, + "externalBlogConfig" : ${externalBlogConfig?string} + }, +<@gen.pagedResults data=data ; item> + <@blogpostJSON item=item /> + +} + + +<#macro renderPost> +{ + "metadata" : { + "externalBlogConfig" : ${externalBlogConfig?string} + }, + "item" : <@blogpostJSON item=item /> +} + diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/blogpost.lib.js b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/blogpost.lib.js index e443d7774d..0400057c31 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/blogpost.lib.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/blogpost.lib.js @@ -103,3 +103,27 @@ function getBlogPostData(node) return data; } + +/** + * Checks whether a blog configuration is available + * This should at some point also check whether the configuration is enabled. + * + * @param node the node that should be checked. Will check all parents if + * the node itself doesn't contain a configuration. + * @return {boolean} whether a configuration could be found. + */ +function hasExternalBlogConfiguration(node) +{ + if (node == null) + { + return false; + } + else if (node.hasAspect("blg:blogDetails")) + { + return true; + } + else + { + return hasExternalBlogConfiguration(node.parent) + } +} \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post-publishing.post.js b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post-publishing.post.js index 8e0efea48a..82b2206d71 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post-publishing.post.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post-publishing.post.js @@ -82,6 +82,7 @@ function main() // get the updated data for the blog post model.item = getBlogPostData(node); + model.externalBlogConfig = hasExternalBlogConfiguration(node); } main(); diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post-publishing.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post-publishing.post.json.ftl index 80d31c4202..709882b67f 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post-publishing.post.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post-publishing.post.json.ftl @@ -1,4 +1,2 @@ <#import "../blogpost.lib.ftl" as blogpostLib/> -{ - "item" : <@blogpostLib.blogpostJSON item=item /> -} +<@blogpostLib.renderPost /> \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.get.js b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.get.js index 625c1f2b74..efceef3521 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.get.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.get.js @@ -12,6 +12,7 @@ function main() // assign data model.item = getBlogPostData(node); + model.externalBlogConfig = hasExternalBlogConfiguration(node); // fetch the contentLength param var contentLength = args["contentLength"] != undefined ? parseInt(args["contentLength"]) : -1; diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.get.json.ftl index 80d31c4202..709882b67f 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.get.json.ftl @@ -1,4 +1,2 @@ <#import "../blogpost.lib.ftl" as blogpostLib/> -{ - "item" : <@blogpostLib.blogpostJSON item=item /> -} +<@blogpostLib.renderPost /> \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.put.js b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.put.js index a2eb8a6f7f..bbbea998de 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.put.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.put.js @@ -75,6 +75,7 @@ function main() updateBlogPost(node); model.item = getBlogPostData(node); + model.externalBlogConfig = hasExternalBlogConfiguration(node); if (json.has("site") && json.has("container") && json.has("browsePostUrl") && ! model.item.isDraft) { diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.put.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.put.json.ftl index 80d31c4202..709882b67f 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.put.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/post/blog-post.put.json.ftl @@ -1,4 +1,2 @@ <#import "../blogpost.lib.ftl" as blogpostLib/> -{ - "item" : <@blogpostLib.blogpostJSON item=item /> -} +<@blogpostLib.renderPost /> \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mydrafts.get.js b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mydrafts.get.js index 32daa171bf..e75cd19cc0 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mydrafts.get.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mydrafts.get.js @@ -44,6 +44,7 @@ function main() // assign the blog node model.blog = node; + model.externalBlogConfig = hasExternalBlogConfiguration(node); } main(); diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mydrafts.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mydrafts.get.json.ftl index 5f9b7ad1c0..8c931b77a3 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mydrafts.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mydrafts.get.json.ftl @@ -1,12 +1,2 @@ <#import "../blogpost.lib.ftl" as blogpostLib/> -<#import "../../generic-paged-results.lib.ftl" as gen/> -{ - "blogPermissions" : { - "create" : ${blog.hasPermission("CreateChildren")?string}, - "edit" : ${blog.hasPermission("Write")?string}, - "delete" : ${blog.hasPermission("Delete")?string} - }, -<@gen.pagedResults data=data ; item> - <@blogpostLib.blogpostJSON item=item /> - -} +<@blogpostLib.renderPostList /> diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mypublished.get.js b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mypublished.get.js index 85fd44efeb..952df56e0e 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mypublished.get.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mypublished.get.js @@ -45,6 +45,7 @@ function main() // assign the blog node model.blog = node; + model.externalBlogConfig = hasExternalBlogConfiguration(node); } main(); diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mypublished.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mypublished.get.json.ftl index 406a0c8a6b..b955ab5451 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mypublished.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-mypublished.get.json.ftl @@ -1,12 +1,2 @@ <#import "../blogpost.lib.ftl" as blogpostLib/> -<#import "../../generic-paged-results.lib.ftl" as gen/> -{ - "blogPermissions" : { - "create" : ${blog.hasPermission("CreateChildren")?string}, - "edit" : ${blog.hasPermission("Write")?string}, - "delete" : ${blog.hasPermission("Delete")?string} - }, -<@gen.pagedResults data=data ; item> - <@blogpostLib.blogpostJSON item=item /> - -} \ No newline at end of file +<@blogpostLib.renderPostList /> \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-new.get.js b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-new.get.js index fbd2c0d60c..b5648fdf40 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-new.get.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-new.get.js @@ -47,6 +47,7 @@ function main() // assign the blog node model.blog = node; + model.externalBlogConfig = hasExternalBlogConfiguration(node); } main(); diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-new.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-new.get.json.ftl index 5f9b7ad1c0..b955ab5451 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-new.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-new.get.json.ftl @@ -1,12 +1,2 @@ <#import "../blogpost.lib.ftl" as blogpostLib/> -<#import "../../generic-paged-results.lib.ftl" as gen/> -{ - "blogPermissions" : { - "create" : ${blog.hasPermission("CreateChildren")?string}, - "edit" : ${blog.hasPermission("Write")?string}, - "delete" : ${blog.hasPermission("Delete")?string} - }, -<@gen.pagedResults data=data ; item> - <@blogpostLib.blogpostJSON item=item /> - -} +<@blogpostLib.renderPostList /> \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-publishedext.get.js b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-publishedext.get.js index db0352dfdd..eee8f94d10 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-publishedext.get.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-publishedext.get.js @@ -43,6 +43,7 @@ function main() // assign the blog node model.blog = node; + model.externalBlogConfig = hasExternalBlogConfiguration(node); } main(); diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-publishedext.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-publishedext.get.json.ftl index 5f9b7ad1c0..8c931b77a3 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-publishedext.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts-publishedext.get.json.ftl @@ -1,12 +1,2 @@ <#import "../blogpost.lib.ftl" as blogpostLib/> -<#import "../../generic-paged-results.lib.ftl" as gen/> -{ - "blogPermissions" : { - "create" : ${blog.hasPermission("CreateChildren")?string}, - "edit" : ${blog.hasPermission("Write")?string}, - "delete" : ${blog.hasPermission("Delete")?string} - }, -<@gen.pagedResults data=data ; item> - <@blogpostLib.blogpostJSON item=item /> - -} +<@blogpostLib.renderPostList /> diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.get.js b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.get.js index fd31c3026c..48651a0052 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.get.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.get.js @@ -83,6 +83,7 @@ function main() // assign the blog node model.blog = node; + model.externalBlogConfig = hasExternalBlogConfiguration(node); } main(); diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.get.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.get.json.ftl index 5f9b7ad1c0..b955ab5451 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.get.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.get.json.ftl @@ -1,12 +1,2 @@ <#import "../blogpost.lib.ftl" as blogpostLib/> -<#import "../../generic-paged-results.lib.ftl" as gen/> -{ - "blogPermissions" : { - "create" : ${blog.hasPermission("CreateChildren")?string}, - "edit" : ${blog.hasPermission("Write")?string}, - "delete" : ${blog.hasPermission("Delete")?string} - }, -<@gen.pagedResults data=data ; item> - <@blogpostLib.blogpostJSON item=item /> - -} +<@blogpostLib.renderPostList /> \ No newline at end of file diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.post.js b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.post.js index f435d10c20..826d5be938 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.post.js +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.post.js @@ -85,6 +85,7 @@ function main() var post = createBlogPost(node); model.item = getBlogPostData(post); + model.externalBlogConfig = hasExternalBlogConfiguration(node); if (json.has("site") && json.has("container") && json.has("browsePostUrl") && ! model.item.isDraft) { diff --git a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.post.json.ftl b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.post.json.ftl index 80d31c4202..709882b67f 100644 --- a/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.post.json.ftl +++ b/config/alfresco/templates/webscripts/org/alfresco/repository/blogs/posts/blog-posts.post.json.ftl @@ -1,4 +1,2 @@ <#import "../blogpost.lib.ftl" as blogpostLib/> -{ - "item" : <@blogpostLib.blogpostJSON item=item /> -} +<@blogpostLib.renderPost /> \ No newline at end of file