[jboss-cvs] JBossBlog SVN: r146 - in trunk: src/action/org/jboss/blog/session/feed/aggregated and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Nov 30 06:56:27 EST 2007
Author: adamw
Date: 2007-11-30 06:56:27 -0500 (Fri, 30 Nov 2007)
New Revision: 146
Modified:
trunk/src/action/org/jboss/blog/session/feed/FeedModBean.java
trunk/src/action/org/jboss/blog/session/feed/aggregated/AggregatedFeedModBean.java
trunk/src/action/org/jboss/blog/session/feed/remote/RemoteFeedModBean.java
trunk/src/action/org/jboss/blog/session/template/DatabaseResourceLoader.java
trunk/src/action/org/jboss/blog/session/template/TemplateService.java
trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java
trunk/src/action/org/jboss/blog/session/view/FeedViewBean.java
trunk/src/action/org/jboss/blog/session/view/PostViewBean.java
trunk/src/model/org/jboss/blog/model/Feed.java
trunk/view/home.xhtml
trunk/view/manage/aggregated/aggregated_mod.xhtml
trunk/view/manage/feed_mod.xhtml
Log:
Modified: trunk/src/action/org/jboss/blog/session/feed/FeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/FeedModBean.java 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/src/action/org/jboss/blog/session/feed/FeedModBean.java 2007-11-30 11:56:27 UTC (rev 146)
@@ -2,6 +2,8 @@
import org.jboss.blog.model.Feed;
import org.jboss.blog.model.Post;
+import org.jboss.blog.model.TemplateType;
+import org.jboss.blog.model.Template;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.In;
@@ -10,6 +12,8 @@
import org.jboss.seam.core.Events;
import javax.persistence.EntityManager;
+import java.io.Serializable;
+import java.util.HashMap;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
@@ -17,7 +21,7 @@
@Scope(ScopeType.CONVERSATION)
@Name("feedMod")
@AutoCreate
-public class FeedModBean {
+public class FeedModBean implements Serializable {
private Feed feed;
@In
@@ -27,6 +31,7 @@
this.feed = feed;
feed.setMaxPostsInFeed(10);
feed.setMaxPostsOnPage(10);
+ feed.setTemplates(new HashMap<TemplateType, Template>());
}
public Feed getFeed() {
@@ -37,6 +42,10 @@
this.feed = feed;
}
+ public TemplateType[] getTemplateTypes() {
+ return TemplateType.values();
+ }
+
public void saveNew() {
entityManager.persist(feed);
Modified: trunk/src/action/org/jboss/blog/session/feed/aggregated/AggregatedFeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/aggregated/AggregatedFeedModBean.java 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/src/action/org/jboss/blog/session/feed/aggregated/AggregatedFeedModBean.java 2007-11-30 11:56:27 UTC (rev 146)
@@ -6,13 +6,16 @@
import org.jboss.blog.service.FeedsService;
import org.jboss.blog.session.feed.FeedModBean;
import org.jboss.blog.session.feed.InvalidFeedTypeException;
+import org.jboss.blog.tools.GeneralTools;
import org.jboss.seam.ScopeType;
import org.jboss.seam.annotations.Create;
import org.jboss.seam.annotations.In;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Scope;
+import javax.faces.model.SelectItem;
import javax.persistence.EntityManager;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@@ -21,7 +24,7 @@
*/
@Scope(ScopeType.CONVERSATION)
@Name("aggregatedFeedMod")
-public class AggregatedFeedModBean {
+public class AggregatedFeedModBean implements Serializable {
@In
private FeedModBean feedMod;
@@ -33,8 +36,9 @@
private AggregatedFeed aggregatedFeed;
- private List<Feed> availableFeeds;
- private List<Feed> selectedFeeds;
+ // We have to use SelectItem-s because of a bug with coerce in JSF RI.
+ private List<SelectItem> availableFeeds;
+ private List<String> selectedFeeds;
public AggregatedFeed getAggregatedFeed() {
if (aggregatedFeed == null) {
@@ -58,28 +62,38 @@
@Create
public void populateLists() {
- availableFeeds = feedsService.getAllFeeds();
- availableFeeds.remove(getAggregatedFeed());
+ availableFeeds = new ArrayList<SelectItem>();
+ for (Feed feed : feedsService.getAllFeeds()) {
+ if (!GeneralTools.objectsEquals(getAggregatedFeed().getName(), feed.getName())) {
+ availableFeeds.add(new SelectItem(feed.getName()));
+ }
+ }
- selectedFeeds = getAggregatedFeed().getFeeds();
+ selectedFeeds = new ArrayList<String>();
+ for (Feed feed : getAggregatedFeed().getFeeds()) {
+ selectedFeeds.add(feed.getName());
+ }
}
- public List<Feed> getAvailableFeeds() {
+ public List<SelectItem> getAvailableFeeds() {
return availableFeeds;
}
- public List<Feed> getSelectedFeeds() {
+ public List<String> getSelectedFeeds() {
return selectedFeeds;
}
- public void setSelectedFeeds(List<Feed> selectedFeeds) {
+ public void setSelectedFeeds(List<String> selectedFeeds) {
this.selectedFeeds = selectedFeeds;
}
private void save() {
List<Feed> currentAggregatedFeeds = getAggregatedFeed().getFeeds();
currentAggregatedFeeds.clear();
- currentAggregatedFeeds.addAll(getSelectedFeeds());
+
+ for (String si : getSelectedFeeds()) {
+ currentAggregatedFeeds.add(feedsService.getFeed(si));
+ }
}
public void saveNew() {
Modified: trunk/src/action/org/jboss/blog/session/feed/remote/RemoteFeedModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/remote/RemoteFeedModBean.java 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/src/action/org/jboss/blog/session/feed/remote/RemoteFeedModBean.java 2007-11-30 11:56:27 UTC (rev 146)
@@ -12,13 +12,14 @@
import org.jboss.seam.annotations.Scope;
import javax.persistence.EntityManager;
+import java.io.Serializable;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
*/
@Scope(ScopeType.CONVERSATION)
@Name("remoteFeedMod")
-public class RemoteFeedModBean {
+public class RemoteFeedModBean implements Serializable {
@In
private ParserService parserService;
Modified: trunk/src/action/org/jboss/blog/session/template/DatabaseResourceLoader.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/DatabaseResourceLoader.java 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/src/action/org/jboss/blog/session/template/DatabaseResourceLoader.java 2007-11-30 11:56:27 UTC (rev 146)
@@ -25,7 +25,6 @@
}
public InputStream getResourceStream(String name) throws ResourceNotFoundException {
- System.out.println("get res: " + name);
try {
return new ByteArrayInputStream(getTemplate(name).getText().getBytes());
} catch (NoResultException e) {
@@ -34,7 +33,6 @@
}
public boolean isSourceModified(Resource resource) {
- System.out.println("is mod: " + resource.getName());
try {
return resource.getLastModified() != getLastModified(resource);
} catch (NoResultException e) {
@@ -43,7 +41,6 @@
}
public long getLastModified(Resource resource) {
- System.out.println("last mod: " + resource.getName());
try {
return getTemplate(resource.getName()).getLastModified().getTime();
} catch (NoResultException e) {
Modified: trunk/src/action/org/jboss/blog/session/template/TemplateService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/TemplateService.java 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/src/action/org/jboss/blog/session/template/TemplateService.java 2007-11-30 11:56:27 UTC (rev 146)
@@ -1,16 +1,23 @@
package org.jboss.blog.session.template;
import org.jboss.blog.model.Template;
+import org.jboss.blog.model.TemplateType;
+import javax.ejb.Local;
import javax.servlet.ServletResponse;
import java.util.List;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
*/
+ at Local
public interface TemplateService {
void writeTemplate(String feedType, String feedName, ServletResponse response)
throws Exception;
List<Template> getAllTemplates();
+
+ List<Template> templatesOfType(TemplateType type);
+
+ void remove();
}
Modified: trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/src/action/org/jboss/blog/session/template/VelocityTemplateService.java 2007-11-30 11:56:27 UTC (rev 146)
@@ -7,11 +7,15 @@
import org.jboss.blog.model.Post;
import org.jboss.blog.model.TemplateType;
import org.jboss.blog.service.FeedsService;
-import org.jboss.seam.ScopeType;
-import org.jboss.seam.annotations.*;
+import org.jboss.seam.annotations.AutoCreate;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import javax.ejb.Remove;
+import javax.ejb.Stateless;
import javax.persistence.EntityManager;
import javax.servlet.ServletResponse;
+import javax.annotation.PostConstruct;
import java.util.List;
import java.util.Properties;
@@ -19,7 +23,7 @@
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
*/
@Name("templateService")
- at Scope(ScopeType.APPLICATION)
+ at Stateless
@AutoCreate
public class VelocityTemplateService implements TemplateService {
@In
@@ -30,12 +34,16 @@
private VelocityEngine engine;
- @Create
- public void initVeloctiy() throws Exception {
- Properties props = new Properties();
- props.load(this.getClass().getResourceAsStream("/velocity.properties"));
+ @PostConstruct
+ public void initVeloctiy() {
+ try {
+ Properties props = new Properties();
+ props.load(this.getClass().getResourceAsStream("/velocity.properties"));
- engine = new VelocityEngine(props);
+ engine = new VelocityEngine(props);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
public void writeTemplate(String feedType, String feedName, ServletResponse response)
@@ -64,4 +72,13 @@
public List<org.jboss.blog.model.Template> getAllTemplates() {
return entityManager.createQuery("select t from Template t order by t.name, t.type").getResultList();
}
+
+ @SuppressWarnings("unchecked")
+ public List<org.jboss.blog.model.Template> templatesOfType(TemplateType type) {
+ return entityManager.createQuery("select t from Template t where t.type = ?1 order by t.name")
+ .setParameter(1, type).getResultList();
+ }
+
+ @Remove
+ public void remove() { }
}
Modified: trunk/src/action/org/jboss/blog/session/view/FeedViewBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/view/FeedViewBean.java 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/src/action/org/jboss/blog/session/view/FeedViewBean.java 2007-11-30 11:56:27 UTC (rev 146)
@@ -9,13 +9,14 @@
import org.jboss.seam.annotations.Scope;
import java.util.List;
+import java.io.Serializable;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
*/
@Name("feedView")
@Scope(ScopeType.CONVERSATION)
-public class FeedViewBean {
+public class FeedViewBean implements Serializable {
@In
private FeedsService feedsService;
Modified: trunk/src/action/org/jboss/blog/session/view/PostViewBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/view/PostViewBean.java 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/src/action/org/jboss/blog/session/view/PostViewBean.java 2007-11-30 11:56:27 UTC (rev 146)
@@ -3,11 +3,13 @@
import org.jboss.blog.model.Post;
import org.jboss.seam.annotations.Name;
+import java.io.Serializable;
+
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
*/
@Name("postView")
-public class PostViewBean {
+public class PostViewBean implements Serializable {
private Post post;
public Post getPost() {
Modified: trunk/src/model/org/jboss/blog/model/Feed.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Feed.java 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/src/model/org/jboss/blog/model/Feed.java 2007-11-30 11:56:27 UTC (rev 146)
@@ -1,13 +1,12 @@
package org.jboss.blog.model;
-import org.hibernate.annotations.CollectionOfElements;
import org.hibernate.validator.Length;
import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.Pattern;
import javax.persistence.*;
-import java.util.Map;
import java.util.List;
+import java.util.Map;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
@@ -43,8 +42,8 @@
@Lob
private String description;
- @CollectionOfElements
- private Map<TemplateType, String> templates;
+ @ManyToMany
+ private Map<TemplateType, Template> templates;
@Column
private int maxPostsInFeed;
@@ -116,11 +115,11 @@
this.description = description;
}
- public Map<TemplateType, String> getTemplates() {
+ public Map<TemplateType, Template> getTemplates() {
return templates;
}
- public void setTemplates(Map<TemplateType, String> templates) {
+ public void setTemplates(Map<TemplateType, Template> templates) {
this.templates = templates;
}
Modified: trunk/view/home.xhtml
===================================================================
--- trunk/view/home.xhtml 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/view/home.xhtml 2007-11-30 11:56:27 UTC (rev 146)
@@ -11,7 +11,7 @@
<h1>Feeds central</h1>
<p>
- <s:link value="Manage feeds" view="/manage/index.xhtml" propagation="none" />
+ <s:link value="Manage" view="/manage/index.xhtml" propagation="none" />
</p>
<h3>Select a feed to view:</h3>
Modified: trunk/view/manage/aggregated/aggregated_mod.xhtml
===================================================================
--- trunk/view/manage/aggregated/aggregated_mod.xhtml 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/view/manage/aggregated/aggregated_mod.xhtml 2007-11-30 11:56:27 UTC (rev 146)
@@ -13,9 +13,7 @@
<h:panelGroup>
<h:selectManyCheckbox value="#{aggregatedFeedMod.selectedFeeds}" layout="pageDirection">
- <s:selectItems var="feed" value="#{aggregatedFeedMod.availableFeeds}"
- label="#{feed.title}" />
- <s:convertEntity />
+ <f:selectItems value="#{aggregatedFeedMod.availableFeeds}" />
</h:selectManyCheckbox>
</h:panelGroup>
Modified: trunk/view/manage/feed_mod.xhtml
===================================================================
--- trunk/view/manage/feed_mod.xhtml 2007-11-30 09:47:56 UTC (rev 145)
+++ trunk/view/manage/feed_mod.xhtml 2007-11-30 11:56:27 UTC (rev 146)
@@ -8,158 +8,174 @@
xmlns:rich="http://richfaces.org/rich"
xmlns:blog="http://jboss.org/blog/tags"
xmlns:a="http://richfaces.org/a4j">
- <h:form>
- <h:panelGrid columns="2">
- <h:outputLabel for="name"><span class="required">*</span> Name (to use in URLs):</h:outputLabel>
- <h:panelGroup>
- <h:inputText id="name" value="#{feedMod.feed.name}" required="true" size="16">
- <blog:uniqueFeedNameValidator entityId="#{feedMod.feed.id}" />
- <a:support event="onblur" reRender="nameMessage" ajaxSingle="true" bypassUpdates="true"/>
- <s:validate />
- </h:inputText>
+<h:form>
+<h:panelGrid columns="2">
+<h:outputLabel for="name"><span class="required">*</span> Name (to use in URLs):</h:outputLabel>
+<h:panelGroup>
+ <h:inputText id="name" value="#{feedMod.feed.name}" required="true" size="16">
+ <blog:uniqueFeedNameValidator entityId="#{feedMod.feed.id}" />
+ <a:support event="onblur" reRender="nameMessage" ajaxSingle="true" bypassUpdates="true"/>
+ <s:validate />
+ </h:inputText>
- <a:outputPanel id="nameMessage">
- <h:message for="name" styleClass="error" />
- </a:outputPanel>
- </h:panelGroup>
+ <a:outputPanel id="nameMessage">
+ <h:message for="name" styleClass="error" />
+ </a:outputPanel>
+</h:panelGroup>
- <h:outputLabel for="title"><span class="required">*</span> Title:</h:outputLabel>
- <h:panelGroup>
- <h:inputText id="title" value="#{feedMod.feed.title}" required="true" size="32">
- <a:support event="onblur" reRender="titleMessage" ajaxSingle="true" bypassUpdates="true"/>
- <s:validate />
- </h:inputText>
+<h:outputLabel for="title"><span class="required">*</span> Title:</h:outputLabel>
+<h:panelGroup>
+ <h:inputText id="title" value="#{feedMod.feed.title}" required="true" size="32">
+ <a:support event="onblur" reRender="titleMessage" ajaxSingle="true" bypassUpdates="true"/>
+ <s:validate />
+ </h:inputText>
- <a:outputPanel id="titleMessage">
- <h:message for="title" styleClass="error" />
- </a:outputPanel>
- </h:panelGroup>
+ <a:outputPanel id="titleMessage">
+ <h:message for="title" styleClass="error" />
+ </a:outputPanel>
+</h:panelGroup>
- <h:outputLabel for="author"><span class="required">*</span> Author:</h:outputLabel>
- <h:panelGroup>
- <h:inputText id="author" value="#{feedMod.feed.author}" required="true" size="32">
- <a:support event="onblur" reRender="authorMessage" ajaxSingle="true" bypassUpdates="true"/>
- <s:validate />
- </h:inputText>
+<h:outputLabel for="author"><span class="required">*</span> Author:</h:outputLabel>
+<h:panelGroup>
+ <h:inputText id="author" value="#{feedMod.feed.author}" required="true" size="32">
+ <a:support event="onblur" reRender="authorMessage" ajaxSingle="true" bypassUpdates="true"/>
+ <s:validate />
+ </h:inputText>
- <a:outputPanel id="authorMessage">
- <h:message for="author" styleClass="error" />
- </a:outputPanel>
- </h:panelGroup>
+ <a:outputPanel id="authorMessage">
+ <h:message for="author" styleClass="error" />
+ </a:outputPanel>
+</h:panelGroup>
- <h:outputLabel for="description">Description:</h:outputLabel>
- <h:panelGroup>
- <h:inputTextarea id="description" value="#{feedMod.feed.description}" rows="4" cols="32">
- <a:support event="onblur" reRender="descriptionMessage" ajaxSingle="true" bypassUpdates="true"/>
- <s:validate />
- </h:inputTextarea>
+<h:outputLabel for="description">Description:</h:outputLabel>
+<h:panelGroup>
+ <h:inputTextarea id="description" value="#{feedMod.feed.description}" rows="4" cols="32">
+ <a:support event="onblur" reRender="descriptionMessage" ajaxSingle="true" bypassUpdates="true"/>
+ <s:validate />
+ </h:inputTextarea>
- <a:outputPanel id="descriptionMessage">
- <h:message for="description" styleClass="error" />
- </a:outputPanel>
- </h:panelGroup>
+ <a:outputPanel id="descriptionMessage">
+ <h:message for="description" styleClass="error" />
+ </a:outputPanel>
+</h:panelGroup>
- <h:outputLabel for="link"><span class="required">*</span> Link to blog:</h:outputLabel>
- <h:panelGroup>
- <h:inputText id="link" value="#{feedMod.feed.link}" required="true" size="64">
- <a:support event="onblur" reRender="linkMessage" ajaxSingle="true" bypassUpdates="true"/>
- <s:validate />
- </h:inputText>
+<h:outputLabel for="link"><span class="required">*</span> Link to blog:</h:outputLabel>
+<h:panelGroup>
+ <h:inputText id="link" value="#{feedMod.feed.link}" required="true" size="64">
+ <a:support event="onblur" reRender="linkMessage" ajaxSingle="true" bypassUpdates="true"/>
+ <s:validate />
+ </h:inputText>
- <a:outputPanel id="linkMessage">
- <h:message for="link" styleClass="error" />
- </a:outputPanel>
- </h:panelGroup>
+ <a:outputPanel id="linkMessage">
+ <h:message for="link" styleClass="error" />
+ </a:outputPanel>
+</h:panelGroup>
- <h:outputLabel for="maxPostsInFeed">
- <span class="required">*</span> Maximum number of posts in a feed:
- </h:outputLabel>
- <h:panelGroup>
- <h:inputText id="maxPostsInFeed" value="#{feedMod.feed.maxPostsInFeed}" required="true" size="16">
- <a:support event="onblur" reRender="maxPostsInFeedMessage" ajaxSingle="true" bypassUpdates="true"/>
- <s:validate />
- </h:inputText>
+<h:outputLabel for="maxPostsInFeed">
+ <span class="required">*</span> Maximum number of posts in a feed:
+</h:outputLabel>
+<h:panelGroup>
+ <h:inputText id="maxPostsInFeed" value="#{feedMod.feed.maxPostsInFeed}" required="true" size="16">
+ <a:support event="onblur" reRender="maxPostsInFeedMessage" ajaxSingle="true" bypassUpdates="true"/>
+ <s:validate />
+ </h:inputText>
- <a:outputPanel id="maxPostsInFeedMessage">
- <h:message for="maxPostsInFeed" styleClass="error" />
- </a:outputPanel>
- </h:panelGroup>
+ <a:outputPanel id="maxPostsInFeedMessage">
+ <h:message for="maxPostsInFeed" styleClass="error" />
+ </a:outputPanel>
+</h:panelGroup>
- <h:outputLabel for="maxPostsOnPage">
- <span class="required">*</span> Maximum number of posts to display:
- </h:outputLabel>
- <h:panelGroup>
- <h:inputText id="maxPostsOnPage" value="#{feedMod.feed.maxPostsOnPage}" required="true" size="16">
- <a:support event="onblur" reRender="maxPostsOnPageMessage" ajaxSingle="true" bypassUpdates="true"/>
- <s:validate />
- </h:inputText>
+<h:outputLabel for="maxPostsOnPage">
+ <span class="required">*</span> Maximum number of posts to display:
+</h:outputLabel>
+<h:panelGroup>
+ <h:inputText id="maxPostsOnPage" value="#{feedMod.feed.maxPostsOnPage}" required="true" size="16">
+ <a:support event="onblur" reRender="maxPostsOnPageMessage" ajaxSingle="true" bypassUpdates="true"/>
+ <s:validate />
+ </h:inputText>
- <a:outputPanel id="maxPostsOnPageMessage">
- <h:message for="maxPostsOnPage" styleClass="error" />
- </a:outputPanel>
- </h:panelGroup>
+ <a:outputPanel id="maxPostsOnPageMessage">
+ <h:message for="maxPostsOnPage" styleClass="error" />
+ </a:outputPanel>
+</h:panelGroup>
- <h:outputLabel for="useBlogAuthorInPosts">Overwrite post author with blog author in posts:</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>
+<h:outputLabel for="useBlogAuthorInPosts">Overwrite post author with blog author in posts:</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>
+ <a:outputPanel id="useBlogAuthorInPostsMessage">
+ <h:message for="useBlogAuthorInPosts" styleClass="error" />
+ </a:outputPanel>
+</h:panelGroup>
- <h:outputLabel />
- <h:panelGroup>
- <h:commandButton value="Add" action="#{feedMod.saveNew}" rendered="#{new}" />
- <h:commandButton value="Save" action="#{feedMod.saveExisting}" rendered="#{!new}" />
- <s:button value="Cancel" view="/manage/index.html" propagation="end" />
- </h:panelGroup>
- </h:panelGrid>
+<h:outputLabel for="useBlogAuthorInPosts"><span class="required">*</span> Templates:</h:outputLabel>
+<h:panelGroup>
+ <h:dataTable var="templateType" value="#{feedMod.templateTypes}">
+ <h:column>
+ #{templateType}:
+ </h:column>
+ <h:column>
+ <h:selectOneMenu value="#{feedMod.feed.templates[templateType]}">
+ <s:convertEntity />
+ <s:selectItems var="template" value="#{templateService.templatesOfType(templateType)}"
+ label="#{template.name}" />
+ </h:selectOneMenu>
+ </h:column>
+ </h:dataTable>
+</h:panelGroup>
- <h3>Posts preview:</h3>
+<h:outputLabel />
+<h:panelGroup>
+ <h:commandButton value="Add" action="#{feedMod.saveNew}" rendered="#{new}" />
+ <h:commandButton value="Save" action="#{feedMod.saveExisting}" rendered="#{!new}" />
+ <s:button value="Cancel" view="/manage/index.html" propagation="end" />
+</h:panelGroup>
+</h:panelGrid>
- <h:panelGroup rendered="#{feedMod.feed.posts.size() == 0}">
- This feed doesn't have any posts. Unable to preview.
- </h:panelGroup>
- <h:panelGroup rendered="#{feedMod.feed.posts.size() > 0}">
- <h:dataTable value="#{feedMod.feed.posts}" var="post" rows="1">
- <h:column>
- <h:panelGrid columns="2">
- <h:outputText value="Title:" />
- <h:outputText value="#{post.title}" />
+<h3>Posts preview:</h3>
- <h:outputText value="Title as id:" />
- <h:outputText value="#{post.titleAsId}" />
+<h:panelGroup rendered="#{feedMod.feed.posts.size() == 0}">
+ This feed doesn't have any posts. Unable to preview.
+</h:panelGroup>
+<h:panelGroup rendered="#{feedMod.feed.posts.size() > 0}">
+ <h:dataTable value="#{feedMod.feed.posts}" var="post" rows="1">
+ <h:column>
+ <h:panelGrid columns="2">
+ <h:outputText value="Title:" />
+ <h:outputText value="#{post.title}" />
- <h:outputText value="Author:" />
- <h:outputText value="#{post.author}" />
+ <h:outputText value="Title as id:" />
+ <h:outputText value="#{post.titleAsId}" />
- <h:outputText value="Published date:" />
- <h:outputText value="#{post.published}" />
+ <h:outputText value="Author:" />
+ <h:outputText value="#{post.author}" />
- <h:outputText value="Modified date:" />
- <h:outputText value="#{post.modified}" />
+ <h:outputText value="Published date:" />
+ <h:outputText value="#{post.published}" />
- <h:outputText value="Link:" />
- <h:outputText value="#{post.link}" />
+ <h:outputText value="Modified date:" />
+ <h:outputText value="#{post.modified}" />
- <h:outputText value="Categories:" />
- <h:panelGroup>
- <ui:repeat var="category" value="#{post.categories}">
- #{category};
- </ui:repeat>
- </h:panelGroup>
+ <h:outputText value="Link:" />
+ <h:outputText value="#{post.link}" />
- <h:outputText value="Content:" />
- <h:outputText value="#{post.content}" escape="false" />
- </h:panelGrid>
- </h:column>
- </h:dataTable>
- </h:panelGroup>
- </h:form>
+ <h:outputText value="Categories:" />
+ <h:panelGroup>
+ <ui:repeat var="category" value="#{post.categories}">
+ #{category};
+ </ui:repeat>
+ </h:panelGroup>
+
+ <h:outputText value="Content:" />
+ <h:outputText value="#{post.content}" escape="false" />
+ </h:panelGrid>
+ </h:column>
+ </h:dataTable>
+</h:panelGroup>
+</h:form>
</ui:composition>
More information about the jboss-cvs-commits
mailing list