[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 &#187;"
-                          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