[jboss-cvs] JBossBlog SVN: r205 - in trunk: resources/WEB-INF and 11 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Feb 8 06:10:59 EST 2008
Author: adamw
Date: 2008-02-08 06:10:59 -0500 (Fri, 08 Feb 2008)
New Revision: 205
Added:
trunk/src/action/org/jboss/blog/session/feed/posts/PostAuthorServiceBean.java
trunk/src/model/org/jboss/blog/model/feed/PostAuthorType.java
Modified:
trunk/resources/WEB-INF/pages.xml
trunk/resources/messages_en.properties
trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java
trunk/src/action/org/jboss/blog/session/feed/mod/RemoteFeedModBean.java
trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java
trunk/src/action/org/jboss/blog/session/xml/velocity/tools/XmlTools.java
trunk/src/model/org/jboss/blog/model/Post.java
trunk/src/model/org/jboss/blog/model/feed/Feed.java
trunk/src/model/org/jboss/blog/model/feed/RestrictedFeed.java
trunk/view/common/post.xhtml
trunk/view/manage/feed_mod.xhtml
trunk/view/manage/remote/remote_add.xhtml
trunk/view/manage/remote/remote_edit.xhtml
trunk/view/manage/remote/remote_mod.xhtml
trunk/view/manage/remote/remote_propose.xhtml
trunk/view/manage/template/template_mod.xhtml
trunk/view/stylesheet/blog.css
Log:
Modified: trunk/resources/WEB-INF/pages.xml
===================================================================
--- trunk/resources/WEB-INF/pages.xml 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/resources/WEB-INF/pages.xml 2008-02-08 11:10:59 UTC (rev 205)
@@ -102,6 +102,10 @@
<end-conversation />
<redirect view-id="/manage/index.xhtml" />
</navigation>
+ <navigation from-action="#{remoteFeedMod.saveOnlyPostAuthorType}">
+ <end-conversation />
+ <redirect view-id="/manage/index.xhtml" />
+ </navigation>
</page>
<page view-id="/manage/remote/remote_propose.xhtml">
Modified: trunk/resources/messages_en.properties
===================================================================
--- trunk/resources/messages_en.properties 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/resources/messages_en.properties 2008-02-08 11:10:59 UTC (rev 205)
@@ -99,10 +99,14 @@
blog.template.added=Template {0} of type {1} added.
blog.template.new.existingname=A template with that name already exists.
-blog.feed.remote.updated=Remote feed's {0} address changed.
+blog.feed.remote.address.updated=Remote feed's {0} address changed.
+blog.feed.remote.postauthor.updated=Remote feed {0} updated.
blog.feed.remote.invalid=Property: #0, #1.
blog.feed.remote.adding.quickstart=Enter your atom/rss2 feed address in the box below; if it is correct \
and the feed parses without any problems, you'll be able to proceed and fill in other details of the new feed.
+blog.feed.remote.mod.authors=You can choose how the author of a post is determined: the value can be either taken \
+ as it appears in the feed, can be always overwritten by the blog author (which is configurable later) or can be \
+ replaced by the blog author only when the post author is missing (default).
blog.feed.aggregated.updated=Aggregated feed {0} changed.
Modified: trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java 2008-02-08 11:10:59 UTC (rev 205)
@@ -1,6 +1,7 @@
package org.jboss.blog.session.feed.mod;
import org.jboss.blog.model.feed.Feed;
+import org.jboss.blog.model.feed.PostAuthorType;
import org.jboss.blog.model.Post;
import org.jboss.blog.model.Template;
import org.jboss.blog.model.XmlType;
@@ -53,6 +54,7 @@
feed.setTemplates(new HashMap<XmlType, Template>());
feed.setAccepted(true);
feed.setPosts(new ArrayList<Post>());
+ feed.setPostAuthorType(PostAuthorType.BLOG_AUTHOR_IF_MISSING);
}
public Feed getFeed() {
Modified: trunk/src/action/org/jboss/blog/session/feed/mod/RemoteFeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/RemoteFeedModBean.java 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/RemoteFeedModBean.java 2008-02-08 11:10:59 UTC (rev 205)
@@ -2,6 +2,7 @@
import org.jboss.blog.model.feed.Feed;
import org.jboss.blog.model.feed.RemoteFeed;
+import org.jboss.blog.model.feed.PostAuthorType;
import org.jboss.blog.model.Post;
import org.jboss.blog.session.feed.InvalidFeedTypeException;
import org.jboss.blog.session.parser.ParserException;
@@ -133,9 +134,24 @@
entityManager.flush();
- facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.feed.remote.updated",
+ facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.feed.remote.address.updated",
getRemoteFeed().getName());
Events.instance().raiseEvent("org.jboss.blog.feed.updated", getRemoteFeed().getName());
}
+
+ public void saveOnlyPostAuthorType() {
+ PostAuthorType newPostAuthorType = getRemoteFeed().getPostAuthorType();
+
+ entityManager.refresh(getRemoteFeed());
+
+ getRemoteFeed().setPostAuthorType(newPostAuthorType);
+
+ entityManager.flush();
+
+ facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.feed.remote.postauthor.updated",
+ getRemoteFeed().getName());
+
+ Events.instance().raiseEvent("org.jboss.blog.feed.updated", getRemoteFeed().getName());
+ }
}
Added: trunk/src/action/org/jboss/blog/session/feed/posts/PostAuthorServiceBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/posts/PostAuthorServiceBean.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/feed/posts/PostAuthorServiceBean.java 2008-02-08 11:10:59 UTC (rev 205)
@@ -0,0 +1,30 @@
+package org.jboss.blog.session.feed.posts;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.ScopeType;
+import org.jboss.blog.model.Post;
+import org.jboss.blog.tools.StringTools;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("postAuthorService")
+ at Scope(ScopeType.STATELESS)
+public class PostAuthorServiceBean {
+ public String getAuthor(Post post) {
+ String postAuthor = post.getAuthor();
+ switch (post.getFeed().getPostAuthorType()) {
+ case POST_AUTHOR:
+ return postAuthor == null ? "" : postAuthor;
+
+ case BLOG_AUTHOR:
+ return post.getFeed().getAuthor();
+
+ case BLOG_AUTHOR_IF_MISSING:
+ return StringTools.isEmpty(postAuthor) ? post.getFeed().getAuthor() : postAuthor;
+ }
+
+ return null;
+ }
+}
Modified: trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/src/action/org/jboss/blog/session/parser/ParserServiceImpl.java 2008-02-08 11:10:59 UTC (rev 205)
@@ -82,7 +82,7 @@
post.setFeed(feed);
- post.setAuthor(StringTools.isEmpty(entry.getAuthor()) ? feed.getAuthor() : entry.getAuthor());
+ post.setAuthor(StringTools.isEmpty(entry.getAuthor()) ? null : entry.getAuthor());
// Setting content
String longestContent = entry.getDescription() == null ? "" : entry.getDescription().getValue();
Modified: trunk/src/action/org/jboss/blog/session/xml/velocity/tools/XmlTools.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/xml/velocity/tools/XmlTools.java 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/src/action/org/jboss/blog/session/xml/velocity/tools/XmlTools.java 2008-02-08 11:10:59 UTC (rev 205)
@@ -4,6 +4,7 @@
import org.jboss.blog.model.Post;
import org.jboss.blog.model.XmlType;
import org.jboss.blog.session.view.LinkServiceBean;
+import org.jboss.blog.session.feed.posts.PostAuthorServiceBean;
import org.jboss.seam.Component;
import java.text.SimpleDateFormat;
@@ -45,4 +46,8 @@
public String postLink(Post post) {
return getLinkService().generatePostLink(post);
}
+
+ public String postAuthor(Post post) {
+ return ((PostAuthorServiceBean) Component.getInstance("postAuthorService")).getAuthor(post);
+ }
}
Modified: trunk/src/model/org/jboss/blog/model/Post.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Post.java 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/src/model/org/jboss/blog/model/Post.java 2008-02-08 11:10:59 UTC (rev 205)
@@ -197,7 +197,12 @@
public int compareTo(RestrictedPost post2) {
int dateCompare = - GeneralTools.safeCompare(getPublished(), post2.getPublished());
if (dateCompare == 0) {
- return GeneralTools.safeCompare(getLink(), post2.getLink());
+ int linkCompare = GeneralTools.safeCompare(getLink(), post2.getLink());
+ if (linkCompare == 0) {
+ return GeneralTools.safeCompare(getId(), post2.getId());
+ } else {
+ return linkCompare;
+ }
} else {
return dateCompare;
}
Modified: trunk/src/model/org/jboss/blog/model/feed/Feed.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/feed/Feed.java 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/src/model/org/jboss/blog/model/feed/Feed.java 2008-02-08 11:10:59 UTC (rev 205)
@@ -41,6 +41,7 @@
@Length(max = 512)
private String title;
+ @NotEmpty
@Length(max = 256)
private String author;
@@ -62,10 +63,11 @@
private int maxPostsInFeed;
@Column
- private boolean useBlogAuthorInPosts;
-
+ private int maxPostsOnPage;
+
@Column
- private int maxPostsOnPage;
+ @NotNull
+ private PostAuthorType postAuthorType;
@Column
@NotNull
@@ -159,12 +161,12 @@
this.maxPostsOnPage = maxPostsOnPage;
}
- public boolean isUseBlogAuthorInPosts() {
- return useBlogAuthorInPosts;
+ public PostAuthorType getPostAuthorType() {
+ return postAuthorType;
}
- public void setUseBlogAuthorInPosts(boolean useBlogAuthorInPosts) {
- this.useBlogAuthorInPosts = useBlogAuthorInPosts;
+ public void setPostAuthorType(PostAuthorType postAuthorType) {
+ this.postAuthorType = postAuthorType;
}
public boolean isAccepted() {
Added: trunk/src/model/org/jboss/blog/model/feed/PostAuthorType.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/feed/PostAuthorType.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/feed/PostAuthorType.java 2008-02-08 11:10:59 UTC (rev 205)
@@ -0,0 +1,10 @@
+package org.jboss.blog.model.feed;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+public enum PostAuthorType {
+ BLOG_AUTHOR_IF_MISSING,
+ POST_AUTHOR,
+ BLOG_AUTHOR
+}
Modified: trunk/src/model/org/jboss/blog/model/feed/RestrictedFeed.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/feed/RestrictedFeed.java 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/src/model/org/jboss/blog/model/feed/RestrictedFeed.java 2008-02-08 11:10:59 UTC (rev 205)
@@ -18,6 +18,4 @@
int getMaxPostsInFeed();
int getMaxPostsOnPage();
-
- boolean isUseBlogAuthorInPosts();
}
Modified: trunk/view/common/post.xhtml
===================================================================
--- trunk/view/common/post.xhtml 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/view/common/post.xhtml 2008-02-08 11:10:59 UTC (rev 205)
@@ -16,7 +16,7 @@
</h3>
<p class="blogauthortag">
- Published on #{post.published} by #{post.author} #{additionalHeader}
+ Published on #{post.published} by #{postAuthorService.getAuthor(post)} #{additionalHeader}
[ <a href="#{post.link}">View original post</a> ]
</p>
Modified: trunk/view/manage/feed_mod.xhtml
===================================================================
--- trunk/view/manage/feed_mod.xhtml 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/view/manage/feed_mod.xhtml 2008-02-08 11:10:59 UTC (rev 205)
@@ -14,10 +14,6 @@
<p>Please fill in all the details that are necessary to handle your feed.</p>
</li>
<li>
- <p>If posts in your feed do not contain author information, tick the checkbox near the bottom; then
- the author of the blog will automatically become the author of the post.</p>
- </li>
- <li>
<p>Also, choose an atom template that suites the type of your feed. Most of the time, 'standard' will
suffice, however if you have a podcast, choose 'podcast'.</p>
</li>
@@ -131,22 +127,8 @@
</a:outputPanel>
</h:panelGroup>
-<h:outputLabel for="useBlogAuthorInPosts">Overwrite post author with blog author in posts:</h:outputLabel>
+<h:outputLabel><span class="required">*</span> Xml templates:</h:outputLabel>
<h:panelGroup>
- <h:selectBooleanCheckbox id="useBlogAuthorInPosts" value="#{feedMod.feed.useBlogAuthorInPosts}"
- required="true">
- <a:support event="onblur" reRender="useBlogAuthorInPostsMessage" ajaxSingle="true"
- bypassUpdates="true"/>
- <s:validate />
- </h:selectBooleanCheckbox>
-
- <a:outputPanel id="useBlogAuthorInPostsMessage">
- <h:message for="useBlogAuthorInPosts" styleClass="error" />
- </a:outputPanel>
-</h:panelGroup>
-
-<h:outputLabel for="useBlogAuthorInPosts"><span class="required">*</span> Xml templates:</h:outputLabel>
-<h:panelGroup>
<h:dataTable var="templateType" value="#{feedMod.templateTypes}">
<h:column>
#{templateType}:
Modified: trunk/view/manage/remote/remote_add.xhtml
===================================================================
--- trunk/view/manage/remote/remote_add.xhtml 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/view/manage/remote/remote_add.xhtml 2008-02-08 11:10:59 UTC (rev 205)
@@ -18,6 +18,9 @@
<li>
<p>#{messages['blog.feed.remote.adding.quickstart']}</p>
</li>
+ <li>
+ <p>#{messages['blog.feed.remote.mod.authors']}</p>
+ </li>
</ul>
</div>
Modified: trunk/view/manage/remote/remote_edit.xhtml
===================================================================
--- trunk/view/manage/remote/remote_edit.xhtml 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/view/manage/remote/remote_edit.xhtml 2008-02-08 11:10:59 UTC (rev 205)
@@ -19,6 +19,9 @@
<p>You can change the address of your feed, however use this option with caution; if you
have a completely new feed, maybe it's better to create a new remote feed instead?</p>
</li>
+ <li>
+ <p>#{messages['blog.feed.remote.mod.authors']}</p>
+ </li>
</ul>
</div>
Modified: trunk/view/manage/remote/remote_mod.xhtml
===================================================================
--- trunk/view/manage/remote/remote_mod.xhtml 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/view/manage/remote/remote_mod.xhtml 2008-02-08 11:10:59 UTC (rev 205)
@@ -6,7 +6,7 @@
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:rich="http://richfaces.org/rich"
- xmlns:a="http://richfaces.org/a4j">
+ xmlns:a="http://richfaces.org/a4j">
<div class="adminforms">
<h:form>
<h:panelGrid columns="2">
@@ -34,6 +34,19 @@
</a:outputPanel>
</h:panelGroup>
+ <h:outputLabel for="postAuthorType"><span class="required">*</span> Post author:</h:outputLabel>
+ <h:panelGroup>
+ <h:selectOneMenu id="postAuthorType" value="#{remoteFeedMod.remoteFeed.postAuthorType}"
+ required="true" styleClass="selectwide">
+ <s:enumItem enumValue="BLOG_AUTHOR_IF_MISSING" label="Overwrite with blog author when post
+ author is missing" />
+ <s:enumItem enumValue="POST_AUTHOR" label="Always use original post author" />
+ <s:enumItem enumValue="BLOG_AUTHOR" label="Always overwrite post author with blog author" />
+ <s:convertEnum />
+ <s:validate />
+ </h:selectOneMenu>
+ </h:panelGroup>
+
<h:panelGroup />
<h:panelGroup id="parseStatus">
<h:panelGroup rendered="#{remoteFeedMod.parseOk}">
@@ -52,7 +65,7 @@
<li>
<a:commandButton action="#{remoteFeedMod.parseFeed}" value="Read and parse the feed"
styleClass="submit"
- reRender="parseStatus,proceed,linkMessage,link,captchaGraphic,captchaMessage" />
+ reRender="parseStatus,proceed,linkMessage,link,captchaGraphic,captchaMessage,postAuthorType" />
</li>
</s:fragment>
<s:fragment rendered="#{remoteFeedMod.parseOk and new}">
@@ -67,6 +80,12 @@
styleClass="submit" />
</li>
</s:fragment>
+ <s:fragment rendered="#{!new}">
+ <li>
+ <h:commandButton value="Save only 'post author'" action="#{remoteFeedMod.saveOnlyPostAuthorType}"
+ styleClass="submit" />
+ </li>
+ </s:fragment>
<li>
<s:button value="Cancel" view="#{backTo}" propagation="end" styleClass="submit" />
</li>
Modified: trunk/view/manage/remote/remote_propose.xhtml
===================================================================
--- trunk/view/manage/remote/remote_propose.xhtml 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/view/manage/remote/remote_propose.xhtml 2008-02-08 11:10:59 UTC (rev 205)
@@ -18,6 +18,9 @@
<li>
<p>#{messages['blog.feed.remote.adding.quickstart']}</p>
</li>
+ <li>
+ <p>#{messages['blog.feed.remote.mod.authors']}</p>
+ </li>
</ul>
</div>
Modified: trunk/view/manage/template/template_mod.xhtml
===================================================================
--- trunk/view/manage/template/template_mod.xhtml 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/view/manage/template/template_mod.xhtml 2008-02-08 11:10:59 UTC (rev 205)
@@ -95,6 +95,7 @@
a link to a feed of the given type</li>
<li>$tools.postLink(org.jboss.blog.model.Post) - generates a link to the html version of the
given post</li>
+ <li>$tools.postAuthor(org.jboss.blog.model.Post) - generates the author of the given post</li>
</ul>
</li>
</ul>
Modified: trunk/view/stylesheet/blog.css
===================================================================
--- trunk/view/stylesheet/blog.css 2008-02-08 08:45:43 UTC (rev 204)
+++ trunk/view/stylesheet/blog.css 2008-02-08 11:10:59 UTC (rev 205)
@@ -93,6 +93,7 @@
padding:.25em 0px;
}
+/* MY CHANGES START HERE */
/* --------------------- Admin list ------------------------ */
.adminlist {
@@ -170,3 +171,8 @@
.empty {
}
+
+.adminforms .selectwide {
+ width: 400px;
+ margin-bottom: 8px;
+}
More information about the jboss-cvs-commits
mailing list