[jboss-cvs] JBossBlog SVN: r183 - in trunk: src/action/org/jboss/blog/session/cache and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Jan 29 16:25:25 EST 2008
Author: adamw
Date: 2008-01-29 16:25:25 -0500 (Tue, 29 Jan 2008)
New Revision: 183
Added:
trunk/src/action/org/jboss/blog/session/tools/CaptchaToolsBean.java
trunk/view/manage/feed_propose.xhtml
trunk/view/manage/remote/remote_propose.xhtml
Modified:
trunk/resources/WEB-INF/pages.xml
trunk/src/action/org/jboss/blog/session/cache/CacheManager.java
trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedFeedModBean.java
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/update/UpdateHandlerImpl.java
trunk/src/model/org/jboss/blog/model/feed/Feed.java
trunk/view/home.xhtml
trunk/view/manage/remote/remote_add.xhtml
trunk/view/manage/remote/remote_edit.xhtml
trunk/view/manage/remote/remote_mod.xhtml
Log:
Modified: trunk/resources/WEB-INF/pages.xml
===================================================================
--- trunk/resources/WEB-INF/pages.xml 2008-01-25 17:41:09 UTC (rev 182)
+++ trunk/resources/WEB-INF/pages.xml 2008-01-29 21:25:25 UTC (rev 183)
@@ -50,6 +50,13 @@
</navigation>
</page>
+ <page view-id="/manage/feed_propose.xhtml" conversation-required="true">
+ <navigation from-action="#{feedMod.saveNew}">
+ <end-conversation />
+ <redirect view-id="/home.xhtml" />
+ </navigation>
+ </page>
+
<page view-id="/manage/feed_edit.xhtml">
<begin-conversation flush-mode="manual" join="true" />
<param name="name" converterId="feedConverter" value="#{feedMod.feed}" />
@@ -84,6 +91,14 @@
</navigation>
</page>
+ <page view-id="/manage/remote/remote_propose.xhtml">
+ <begin-conversation flush-mode="manual" join="true" />
+ <action execute="#{remoteFeedMod.unsetAccepted}" />
+ <navigation from-action="#{remoteFeedMod.saveNew}">
+ <redirect view-id="/manage/feed_propose.xhtml" />
+ </navigation>
+ </page>
+
<!-- Manage aggregated feeds -->
<page view-id="/manage/aggregated/aggregated_add.xhtml">
Modified: trunk/src/action/org/jboss/blog/session/cache/CacheManager.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/cache/CacheManager.java 2008-01-25 17:41:09 UTC (rev 182)
+++ trunk/src/action/org/jboss/blog/session/cache/CacheManager.java 2008-01-29 21:25:25 UTC (rev 183)
@@ -17,6 +17,7 @@
/**
* TODO: check Soft References
+ * TODO: add 2nd level caching to entities and persistence.xml
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
*/
@Name("cacheManager")
Modified: trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedFeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedFeedModBean.java 2008-01-25 17:41:09 UTC (rev 182)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/AggregatedFeedModBean.java 2008-01-29 21:25:25 UTC (rev 183)
@@ -2,7 +2,6 @@
import org.jboss.blog.model.feed.AggregatedFeed;
import org.jboss.blog.model.feed.Feed;
-import org.jboss.blog.model.Post;
import org.jboss.blog.model.Group;
import org.jboss.blog.model.post.PostFilter;
import org.jboss.blog.service.FeedsService;
@@ -63,7 +62,6 @@
aggregatedFeed = new AggregatedFeed();
aggregatedFeed.setFeeds(new HashMap<Feed, PostFilter>());
aggregatedFeed.setGroups(new HashMap<Group, PostFilter>());
- aggregatedFeed.setPosts(new ArrayList<Post>());
aggregatedFeed.setGlobalFilter(new AndFilter());
feedMod.initNewFeed(aggregatedFeed);
Modified: trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java 2008-01-25 17:41:09 UTC (rev 182)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/FeedModBean.java 2008-01-29 21:25:25 UTC (rev 183)
@@ -17,6 +17,7 @@
import javax.persistence.EntityManager;
import java.io.Serializable;
import java.util.HashMap;
+import java.util.ArrayList;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
@@ -41,6 +42,8 @@
feed.setMaxPostsInFeed(10);
feed.setMaxPostsOnPage(10);
feed.setTemplates(new HashMap<XmlType, Template>());
+ feed.setAccepted(true);
+ feed.setPosts(new ArrayList<Post>());
}
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-01-25 17:41:09 UTC (rev 182)
+++ trunk/src/action/org/jboss/blog/session/feed/mod/RemoteFeedModBean.java 2008-01-29 21:25:25 UTC (rev 183)
@@ -79,6 +79,10 @@
this.parseException = parseException;
}
+ public void unsetAccepted() {
+ getRemoteFeed().setAccepted(false);
+ }
+
public void parseFeed() {
try {
parsedFeed = parserService.parse(getRemoteFeed().getRemoteLink());
@@ -93,8 +97,11 @@
getRemoteFeed().setAuthor(parsedFeed.getAuthor());
getRemoteFeed().setDescription(parsedFeed.getDescription());
getRemoteFeed().setLink(parsedFeed.getLink());
- getRemoteFeed().setPosts(parsedFeed.getPosts());
getRemoteFeed().setTitle(parsedFeed.getTitle());
+
+ if (getRemoteFeed().isAccepted()) {
+ getRemoteFeed().setPosts(parsedFeed.getPosts());
+ }
}
public void saveExisting() {
Added: trunk/src/action/org/jboss/blog/session/tools/CaptchaToolsBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/tools/CaptchaToolsBean.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/tools/CaptchaToolsBean.java 2008-01-29 21:25:25 UTC (rev 183)
@@ -0,0 +1,18 @@
+package org.jboss.blog.session.tools;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Scope;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.ScopeType;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("captchaTools")
+ at Scope(ScopeType.STATELESS)
+ at AutoCreate
+public class CaptchaToolsBean {
+ public long getId() {
+ return System.currentTimeMillis();
+ }
+}
Modified: trunk/src/action/org/jboss/blog/session/update/UpdateHandlerImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/update/UpdateHandlerImpl.java 2008-01-25 17:41:09 UTC (rev 182)
+++ trunk/src/action/org/jboss/blog/session/update/UpdateHandlerImpl.java 2008-01-29 21:25:25 UTC (rev 183)
@@ -28,7 +28,9 @@
public void update(Date expiration, long interval) {
for (Group group : feedsService.getAllGroups()) {
for (Feed feed : group.getFeeds()) {
- feedTypes.getFeedDao(feed).update();
+ if (feed.isAccepted()) {
+ feedTypes.getFeedDao(feed).update();
+ }
}
}
}
Modified: trunk/src/model/org/jboss/blog/model/feed/Feed.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/feed/Feed.java 2008-01-25 17:41:09 UTC (rev 182)
+++ trunk/src/model/org/jboss/blog/model/feed/Feed.java 2008-01-29 21:25:25 UTC (rev 183)
@@ -63,6 +63,10 @@
@Column
private int maxPostsOnPage;
+ @Column
+ @NotNull
+ private boolean accepted;
+
public Integer getId() {
return id;
}
@@ -159,6 +163,14 @@
this.useBlogAuthorInPosts = useBlogAuthorInPosts;
}
+ public boolean isAccepted() {
+ return accepted;
+ }
+
+ public void setAccepted(boolean accepted) {
+ this.accepted = accepted;
+ }
+
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Feed)) return false;
Modified: trunk/view/home.xhtml
===================================================================
--- trunk/view/home.xhtml 2008-01-25 17:41:09 UTC (rev 182)
+++ trunk/view/home.xhtml 2008-01-29 21:25:25 UTC (rev 183)
@@ -14,19 +14,25 @@
<s:link value="Manage" view="/manage/index.xhtml" propagation="none" />
</p>
+ <p>
+ <s:link value="Propose a blog" view="/manage/remote/remote_propose.xhtml" propagation="none" />
+ </p>
+
<h3>Select a feed to view:</h3>
-
+
<ui:repeat var="group" value="#{feedsService.allGroups}">
<s:fragment rendered="#{group.feeds.size() > 1}">
<p>#{group.displayName}</p>
</s:fragment>
<ui:repeat var="feed" value="#{group.feeds}">
- <p>
- <s:link view="/view/feed.xhtml" value="#{feed.title}" propagation="none">
- <f:param name="name" value="#{feed.name}"/>
- </s:link>
- </p>
+ <s:fragment rendered="#{feed.accepted}">
+ <p>
+ <s:link view="/view/feed.xhtml" value="#{feed.title}" propagation="none">
+ <f:param name="name" value="#{feed.name}"/>
+ </s:link>
+ </p>
+ </s:fragment>
</ui:repeat>
</ui:repeat>
</ui:define>
Copied: trunk/view/manage/feed_propose.xhtml (from rev 175, trunk/view/manage/feed_add.xhtml)
===================================================================
--- trunk/view/manage/feed_propose.xhtml (rev 0)
+++ trunk/view/manage/feed_propose.xhtml 2008-01-29 21:25:25 UTC (rev 183)
@@ -0,0 +1,18 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ 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"
+ template="../layout/template.xhtml">
+ <ui:define name="body">
+ <h1>Propose a new feed - edit data</h1>
+
+ <ui:include src="feed_mod.xhtml">
+ <ui:param name="new" value="true" />
+ </ui:include>
+ </ui:define>
+</ui:composition>
Modified: trunk/view/manage/remote/remote_add.xhtml
===================================================================
--- trunk/view/manage/remote/remote_add.xhtml 2008-01-25 17:41:09 UTC (rev 182)
+++ trunk/view/manage/remote/remote_add.xhtml 2008-01-29 21:25:25 UTC (rev 183)
@@ -12,7 +12,8 @@
<h1>Add remote feed</h1>
<ui:include src="remote_mod.xhtml">
- <ui:param name="new" value="true" />
+ <ui:param name="new" value="true" />
+ <ui:param name="showCaptcha" value="false" />
</ui:include>
</ui:define>
</ui:composition>
Modified: trunk/view/manage/remote/remote_edit.xhtml
===================================================================
--- trunk/view/manage/remote/remote_edit.xhtml 2008-01-25 17:41:09 UTC (rev 182)
+++ trunk/view/manage/remote/remote_edit.xhtml 2008-01-29 21:25:25 UTC (rev 183)
@@ -12,7 +12,8 @@
<h1>Edit remote feed: #{feedMod.feed.name}</h1>
<ui:include src="remote_mod.xhtml">
- <ui:param name="new" value="false" />
+ <ui:param name="new" value="false" />
+ <ui:param name="showCaptcha" value="false" />
</ui:include>
</ui:define>
</ui:composition>
Modified: trunk/view/manage/remote/remote_mod.xhtml
===================================================================
--- trunk/view/manage/remote/remote_mod.xhtml 2008-01-25 17:41:09 UTC (rev 182)
+++ trunk/view/manage/remote/remote_mod.xhtml 2008-01-29 21:25:25 UTC (rev 183)
@@ -9,6 +9,19 @@
xmlns:a="http://richfaces.org/a4j">
<h:form>
<h:panelGrid columns="2">
+ <h:panelGroup rendered="#{showCaptcha}">
+ <span class="required">*</span>
+ <h:graphicImage value="/seam/resource/captcha/#{captchaTools.id}" id="captchaGraphic"/>
+ </h:panelGroup>
+ <h:panelGroup rendered="#{showCaptcha}">
+ <h:inputText id="verifyCaptcha" value="#{captcha.response}" required="true">
+ <s:validate />
+ </h:inputText>
+ <a:outputPanel id="captchaMessage">
+ <h:message for="verifyCaptcha" styleClass="error" />
+ </a:outputPanel>
+ </h:panelGroup>
+
<h:outputLabel><span class="required">*</span> Remote feed address:</h:outputLabel>
<h:panelGroup>
<h:inputText id="link" value="#{remoteFeedMod.remoteFeed.remoteLink}" required="true" size="64">
@@ -22,7 +35,7 @@
<h:panelGroup />
<h:panelGroup>
<a:commandButton action="#{remoteFeedMod.parseFeed}" value="Read and parse the feed"
- reRender="parseStatus,proceed,linkMessage,link" />
+ reRender="parseStatus,proceed,linkMessage,link,captchaGraphic,captchaMessage" />
<a:status stopText="" startText="Wait ..." />
</h:panelGroup>
@@ -33,16 +46,16 @@
</h:panelGroup>
<h:panelGroup rendered="#{!remoteFeedMod.parseOk and remoteFeedMod.parseException != null}">
Parsing the feed failed, because of the following exception:
- #{newRemoteFeed.parseException.message}
+ #{remoteFeedMod.parseException.message}
</h:panelGroup>
</h:panelGroup>
<h:panelGroup />
<h:panelGroup id="proceed">
<h:commandButton rendered="#{remoteFeedMod.parseOk and new}" value="Next »"
- action="#{remoteFeedMod.saveNew}" />
+ action="#{remoteFeedMod.saveNew}" />
<h:commandButton rendered="#{remoteFeedMod.parseOk and !new}" value="Save"
- action="#{remoteFeedMod.saveExisting}" />
+ action="#{remoteFeedMod.saveExisting}" />
<s:button value="Cancel" view="/manage/index.html" propagation="end" />
</h:panelGroup>
</h:panelGrid>
Copied: trunk/view/manage/remote/remote_propose.xhtml (from rev 175, trunk/view/manage/remote/remote_add.xhtml)
===================================================================
--- trunk/view/manage/remote/remote_propose.xhtml (rev 0)
+++ trunk/view/manage/remote/remote_propose.xhtml 2008-01-29 21:25:25 UTC (rev 183)
@@ -0,0 +1,19 @@
+<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<ui:composition xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:s="http://jboss.com/products/seam/taglib"
+ xmlns:ui="http://java.sun.com/jsf/facelets"
+ 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"
+ template="../../layout/template.xhtml">
+ <ui:define name="body">
+ <h1>Propose a blog</h1>
+
+ <ui:include src="remote_mod.xhtml">
+ <ui:param name="new" value="true" />
+ <ui:param name="showCaptcha" value="true" />
+ </ui:include>
+ </ui:define>
+</ui:composition>
More information about the jboss-cvs-commits
mailing list