Skip to content

Commit db015a9

Browse files
committed
Add Create Post dialog to Site Blog dashlet. Refactored code to use client-side loading of blog entries.
git-svn-id: https://share-extras.googlecode.com/svn/trunk/Site Blog Dashlet@191 a3f5c567-fd0f-3a89-9b71-a290c5a5f590
1 parent da601f4 commit db015a9

File tree

8 files changed

+384
-183
lines changed

8 files changed

+384
-183
lines changed
Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,10 @@
11
<#include "../component.head.inc">
2-
<!-- Site Blog -->
2+
<!-- Site Blog dashlet dependencies -->
3+
<@script type="text/javascript" src="${page.url.context}/modules/simple-dialog.js"></@script>
4+
<script type="text/javascript" src="${page.url.context}/modules/editors/tiny_mce/tiny_mce.js"></script>
5+
<@script type="text/javascript" src="${page.url.context}/modules/editors/tiny_mce.js"></@script>
6+
<@link rel="stylesheet" type="text/css" href="${page.url.context}/modules/taglibrary/taglibrary.css" />
7+
<@script type="text/javascript" src="${page.url.context}/modules/taglibrary/taglibrary.js"></@script>
8+
<!-- Site Blog dashlet -->
9+
<@script type="text/javascript" src="${page.url.context}/res/components/dashlets/site-blog.js"></@script>
310
<@link rel="stylesheet" type="text/css" href="${page.url.context}/res/components/dashlets/site-blog.css" />
Lines changed: 10 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,18 @@
11
<script type="text/javascript">//<![CDATA[
2+
new Alfresco.dashlet.SiteBlog("${args.htmlid}").setOptions(
3+
{
4+
"siteId": "${page.url.templateArgs.site!''}"
5+
}).setMessages(
6+
${messages}
7+
);
28
new Alfresco.widget.DashletResizer("${args.htmlid}", "${instance.object.id}");
39
//]]></script>
410

5-
<#assign site=page.url.templateArgs.site>
6-
711
<div class="dashlet site-blog-posts">
812
<div class="title">${msg("header.siteBlog")}</div>
9-
<#if create?? && create?string == "true">
10-
<div class="toolbar">
11-
<a id="${args.htmlid}-createLink-button" class="theme-color-1" title="${msg('list.createLink')}" href="${url.context}/page/site/${site}/blog-postedit">${msg("list.createLink")}</a>
12-
</div>
13-
</#if>
14-
<div class="body scrollableList" <#if args.height??>style="height: ${args.height}px;"</#if>>
15-
<#if numPosts?? && numPosts!=0>
16-
<#list posts as post>
17-
<#assign postedBy><a href="${url.context}/page/user/${post.author.username?url}/profile" class="theme-color-1">${post.author.firstName?html} ${post.author.lastName?html}</a></#assign>
18-
<div id="${args.htmlid}-list-div-${post.name}" class="detail-list-item <#if post_index = 0>first-item<#elseif !post_has_next>last-item</#if>">
19-
<h4><a id="${args.htmlid}-details-span-${post_index}" href="${url.context}/page/site/${site}/blog-postview?container=${container}&postId=${post.name?html}" class="theme-color-1 blog-post-title" title="${(post.title!"")?html}">${(post.title!"")?html}</a></h4>
20-
<div class="post-details">${msg("text.posted-by", postedBy)} ${msg("text.modified-on", post.createdOn?datetime("MMM dd yyyy HH:mm:ss 'GMT'Z '('zzz')'")?string("d MMM, yyyy HH:mm:ss"))}</div>
21-
<div class="description"><#if post.content?length &gt; 100>${(post.content)?substring(0, 100)?replace('</*\\w*>', '', 'r')} ...<#else>${post.content?replace('</*\\w*>', '', 'r')}</#if></div>
22-
</div>
23-
</#list>
24-
<#else>
25-
<div class="detail-list-item first-item last-item">
26-
<span>${msg("label.noPosts")}</span>
27-
</div>
28-
</#if>
13+
<div class="toolbar">
14+
<a id="${args.htmlid}-createPost-link" class="theme-color-1" title="${msg('list.createLink')}" href="${url.context}/page/site/${page.url.templateArgs.site}/blog-postedit">${msg("list.createLink")}</a>
15+
</div>
16+
<div class="body scrollableList" id="${args.htmlid}-body" <#if args.height??>style="height: ${args.height}px;"</#if>>
2917
</div>
3018
</div>
Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,5 @@
1-
function sortByCreationDate(post1, post2)
2-
{
3-
return (post1.name > post2.name) ? -1 : (post1.name < post2.name) ? 1 : 0;
4-
}
5-
61
function main()
72
{
8-
var site, container, theUrl, connector, result, posts;
9-
10-
site = page.url.templateArgs.site;
11-
container = 'blog';
12-
theUrl = '/api/blog/site/' + site + '/' + container + '/posts?pageSize=10';
13-
connector = remote.connect("alfresco");
14-
result = connector.get(theUrl);
15-
if (result.status == 200)
16-
{
17-
response = eval('(' + result.response + ')');
18-
posts = response.items;
19-
//posts.sort(sortByCreationDate);
20-
model.posts = posts;
21-
model.create = response.metadata.blogPermissions.create;
22-
model.numPosts = response.itemCount;
23-
model.container = container;
24-
}
253
}
264

275
main();

config/alfresco/site-webscripts/org/alfresco/components/dashlets/site-blog.get.properties

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,9 @@ header.siteBlog=Site Blog
22
label.noPosts=No blog posts to display
33
list.createLink=Create Post
44
text.posted-by=Posted by {0}
5-
text.modified-on=on {0}
5+
text.modified-on=on {0}
6+
message.unsavedChanges.blog=You have unsaved text in the blog post dialogue
7+
message.savedDraft=Saved draft post successfully
8+
message.posted=Blog entry posted successfully
9+
message.postExternalFailure=Blog entry was posted successfully but could not be published externally
10+
message.postFailure=Failed to save blog post
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<webscript>
2+
<shortname>Blog dashlet post dialog</shortname>
3+
<description>Dialogue to allow a user to post a new blog entry</description>
4+
<url>/modules/blog/site/{siteId}/{componentId}/post</url>
5+
</webscript>
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<div id="${args.htmlid}-configDialog">
2+
<div class="hd">${msg("label.header")}</div>
3+
<div class="bd">
4+
<form id="${args.htmlid}-form" action="" method="POST">
5+
<div class="yui-gd">
6+
<div class="yui-u first"><label for="${args.htmlid}-title">${msg("label.title")}:</label></div>
7+
<div class="yui-u">
8+
<input class="wide" type="text" name="title" id="${args.htmlid}-title" />
9+
</div>
10+
</div>
11+
<div class="yui-gd">
12+
<div class="yui-u first"><label for="${args.htmlid}-content">${msg("label.content")}:</label></div>
13+
<div class="yui-u">
14+
<textarea rows="8" cols="80" name="content" id="${args.htmlid}-content"></textarea>
15+
</div>
16+
</div>
17+
<div class="yui-gd">
18+
<div class="yui-u first"><label for="${args.htmlid}-tags">${msg("label.tags")}:</label></div>
19+
<div class="yui-u">
20+
<#import "/org/alfresco/modules/taglibrary/taglibrary.lib.ftl" as taglibraryLib/>
21+
<@taglibraryLib.renderTagLibraryHTML htmlid=args.htmlid />
22+
</div>
23+
</div>
24+
<div class="bdft">
25+
<input type="submit" id="${args.htmlid}-ok" value="${msg("button.post")}" />
26+
<input type="submit" id="${args.htmlid}-save" value="${msg("button.saveDraft")}" />
27+
<input type="button" id="${args.htmlid}-cancel" value="${msg("button.cancel")}" />
28+
</div>
29+
<input type="hidden" id="${args.htmlid}-container" name="container" value="${url.templateArgs.componentId}" />
30+
<input type="hidden" id="${args.htmlid}-draft" name="draft" value="false" />
31+
<input type="hidden" id="${args.htmlid}-page" name="page" value="blog-postview" />
32+
<input type="hidden" id="${args.htmlid}-site" name="site" value="${url.templateArgs.siteId}" />
33+
</form>
34+
</div>
35+
</div>
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
label.header=Create Blog Post
2+
label.title=Title
3+
label.content=Content
4+
label.tags=Tags
5+
button.saveDraft=Save Draft
6+
button.post=Post
7+
button.postInternally=Post Internally
8+
button.postExternally=Post Internally and Externally
9+
link.fullPage=Full Create Post form

0 commit comments

Comments
 (0)