[jboss-cvs] JBossBlog SVN: r178 - in trunk: resources/META-INF and 11 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Wed Jan 23 13:40:30 EST 2008
Author: adamw
Date: 2008-01-23 13:40:30 -0500 (Wed, 23 Jan 2008)
New Revision: 178
Added:
trunk/src/action/org/jboss/blog/session/converter/GroupConverter.java
trunk/src/action/org/jboss/blog/session/group/
trunk/src/action/org/jboss/blog/session/group/GroupModBean.java
trunk/src/action/org/jboss/blog/session/validator/UniqueGroupNameValidator.java
trunk/src/model/org/jboss/blog/model/Group.java
trunk/view/manage/group/
trunk/view/manage/group/group_add.xhtml
trunk/view/manage/group/group_edit.xhtml
trunk/view/manage/group/group_list.xhtml
trunk/view/manage/group/group_mod.xhtml
Modified:
trunk/resources/META-INF/jbossblog.taglib.xml
trunk/resources/META-INF/persistence-dev.xml
trunk/resources/META-INF/persistence-prod.xml
trunk/resources/WEB-INF/pages.xml
trunk/resources/messages_en.properties
trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
trunk/src/model/org/jboss/blog/model/feed/Feed.java
trunk/src/services/org/jboss/blog/service/FeedsService.java
trunk/view/manage/index.xhtml
Log:
Modified: trunk/resources/META-INF/jbossblog.taglib.xml
===================================================================
--- trunk/resources/META-INF/jbossblog.taglib.xml 2008-01-21 20:19:33 UTC (rev 177)
+++ trunk/resources/META-INF/jbossblog.taglib.xml 2008-01-23 18:40:30 UTC (rev 178)
@@ -17,4 +17,10 @@
<validator-id>uniqueTemplateNameValidator</validator-id>
</validator>
</tag>
+ <tag>
+ <tag-name>uniqueGroupNameValidator</tag-name>
+ <validator>
+ <validator-id>uniqueGroupNameValidator</validator-id>
+ </validator>
+ </tag>
</facelet-taglib>
\ No newline at end of file
Modified: trunk/resources/META-INF/persistence-dev.xml
===================================================================
--- trunk/resources/META-INF/persistence-dev.xml 2008-01-21 20:19:33 UTC (rev 177)
+++ trunk/resources/META-INF/persistence-dev.xml 2008-01-23 18:40:30 UTC (rev 178)
@@ -8,6 +8,7 @@
<persistence-unit name="blog">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/blogDatasource</jta-data-source>
+ <class>org.jboss.blog.model.Group</class>
<class>org.jboss.blog.model.feed.Feed</class>
<class>org.jboss.blog.model.feed.RemoteFeed</class>
<class>org.jboss.blog.model.feed.AggregatedFeed</class>
Modified: trunk/resources/META-INF/persistence-prod.xml
===================================================================
--- trunk/resources/META-INF/persistence-prod.xml 2008-01-21 20:19:33 UTC (rev 177)
+++ trunk/resources/META-INF/persistence-prod.xml 2008-01-23 18:40:30 UTC (rev 178)
@@ -8,6 +8,7 @@
<persistence-unit name="blog">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:/blogDatasource</jta-data-source>
+ <class>org.jboss.blog.model.Group</class>
<class>org.jboss.blog.model.feed.Feed</class>
<class>org.jboss.blog.model.feed.RemoteFeed</class>
<class>org.jboss.blog.model.feed.AggregatedFeed</class>
Modified: trunk/resources/WEB-INF/pages.xml
===================================================================
--- trunk/resources/WEB-INF/pages.xml 2008-01-21 20:19:33 UTC (rev 177)
+++ trunk/resources/WEB-INF/pages.xml 2008-01-23 18:40:30 UTC (rev 178)
@@ -137,6 +137,53 @@
</navigation>
</page>
+ <!-- Manage groups -->
+
+ <page view-id="*">
+ <navigation from-action="#{groupMod.add}">
+ <begin-conversation nested="true" flush-mode="manual" />
+ <raise-event type="org.jboss.blog.captureView" />
+ <redirect view-id="/manage/group/group_add.xhtml" />
+ </navigation>
+ <navigation from-action="#{groupMod.cancel}">
+ <end-conversation />
+ <raise-event type="org.jboss.blog.restoreView" />
+ </navigation>
+ </page>
+
+ <page view-id="/manage/group/group_list.xhtml">
+ <param name="id" converterId="groupConverter" value="#{groupMod.group}" />
+ <navigation from-action="#{groupMod.edit}">
+ <begin-conversation nested="true" flush-mode="manual" />
+ <raise-event type="org.jboss.blog.captureView" />
+ <redirect view-id="/manage/group/group_edit.xhtml">
+ <param name="id" converterId="groupConverter" value="#{groupMod.group}" />
+ </redirect>
+ </navigation>
+ </page>
+
+ <page view-id="/manage/group/group_add.xhtml">
+ <navigation from-action="#{groupMod.saveNew}">
+ <end-conversation />
+ <raise-event type="org.jboss.blog.restoreView" />
+ </navigation>
+ </page>
+
+ <page view-id="/manage/group/group_edit.xhtml">
+ <param name="id" converterId="groupConverter" value="#{groupMod.group}" />
+ <navigation from-action="#{groupMod.saveExisting}">
+ <end-conversation />
+ <raise-event type="org.jboss.blog.restoreView" />
+ </navigation>
+ </page>
+
+ <page view-id="/manage/group/group_delete.xhtml">
+ <param name="id" converterId="groupConverter" value="#{groupMod.group}" />
+ <navigation from-action="#{groupMod.delete}">
+ <redirect view-id="/manage/group/group_list.xhtml" />
+ </navigation>
+ </page>
+
<!-- Manage templates -->
<page view-id="/manage/template/template_add.xhtml">
Modified: trunk/resources/messages_en.properties
===================================================================
--- trunk/resources/messages_en.properties 2008-01-21 20:19:33 UTC (rev 177)
+++ trunk/resources/messages_en.properties 2008-01-23 18:40:30 UTC (rev 178)
@@ -95,6 +95,7 @@
blog.template.deleted=Template {0} of type {1} deleted.
blog.template.updated=Template {0} of type {1} updated.
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.
@@ -103,7 +104,11 @@
blog.feed.new.invalidname=Feed name may only contain small latin letters, numbers, _ and /.
blog.feed.new.existingname=A feed with that name already exists.
-blog.template.new.existingname=A template with that name already exists.
+blog.group.invalidname=Group name may only contain small latin letters, numbers, _ and /.
+blog.group.existingname=A group with that name already exists.
+blog.group.deleted=Group '{0}' ({1}) deleted.
+blog.group.updated=Group '{0}' ({1}) updated.
+blog.group.added=Group '{0}' ({1}) added.
blog.post.deleted=Post '{0}' deleted.
Copied: trunk/src/action/org/jboss/blog/session/converter/GroupConverter.java (from rev 175, trunk/src/action/org/jboss/blog/session/converter/TemplateConverter.java)
===================================================================
--- trunk/src/action/org/jboss/blog/session/converter/GroupConverter.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/converter/GroupConverter.java 2008-01-23 18:40:30 UTC (rev 178)
@@ -0,0 +1,41 @@
+package org.jboss.blog.session.converter;
+
+import org.jboss.blog.model.Group;
+import org.jboss.seam.Component;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Transactional;
+import org.jboss.seam.annotations.faces.Converter;
+import org.jboss.seam.annotations.intercept.BypassInterceptors;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.persistence.EntityManager;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("groupConverter")
+ at BypassInterceptors
+ at Converter
+public class GroupConverter implements javax.faces.convert.Converter {
+ @Transactional
+ public Object getAsObject(FacesContext context, UIComponent cmp, String value) {
+ EntityManager entityManager = (EntityManager) Component.getInstance("entityManager");
+
+ entityManager.joinTransaction();
+
+ Integer id;
+ id = Integer.parseInt(value);
+
+ return entityManager.find(Group.class, id);
+ }
+
+ public String getAsString(FacesContext context, UIComponent cmp, Object value) {
+ if (value == null) {
+ return null;
+ }
+
+ Integer id = ((Group) value).getId();
+ return id == null ? null : id.toString();
+ }
+}
\ No newline at end of file
Modified: trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java 2008-01-21 20:19:33 UTC (rev 177)
+++ trunk/src/action/org/jboss/blog/session/feed/FeedsServiceImpl.java 2008-01-23 18:40:30 UTC (rev 178)
@@ -40,6 +40,12 @@
private Log log;
@SuppressWarnings("unchecked")
+ public List<Feed> getAllGroups() {
+ // TODO: add caching
+ return entityManager.createQuery("select group from Group group order by group.name").getResultList();
+ }
+
+ @SuppressWarnings("unchecked")
@Interceptors(FeedsServiceGetFeedsInterceptor.class)
public List<Feed> getAllFeeds() {
log.debug("Reading a list of all feeds from the DB.");
Added: trunk/src/action/org/jboss/blog/session/group/GroupModBean.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/group/GroupModBean.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/group/GroupModBean.java 2008-01-23 18:40:30 UTC (rev 178)
@@ -0,0 +1,65 @@
+package org.jboss.blog.session.group;
+
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.faces.FacesMessages;
+import org.jboss.blog.model.Group;
+
+import javax.persistence.EntityManager;
+import javax.faces.application.FacesMessage;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Name("groupMod")
+public class GroupModBean {
+ @In
+ private EntityManager entityManager;
+
+ @In
+ private FacesMessages facesMessages;
+
+ private Group group;
+
+ public Group getGroup() {
+ if (group == null) {
+ group = new Group();
+ }
+
+ return group;
+ }
+
+ public void setGroup(Group group) {
+ this.group = group;
+ }
+
+ public void saveNew() {
+ entityManager.persist(group);
+ entityManager.flush();
+
+ facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.group.added", group.getDisplayName(),
+ group.getName());
+ }
+
+ public void saveExisting() {
+ entityManager.flush();
+
+ facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.group.updated", group.getDisplayName(),
+ group.getName());
+ }
+
+ public void delete() {
+ entityManager.remove(group);
+
+ facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.group.deleted", group.getDisplayName(),
+ group.getName());
+ }
+
+ // Marker actions
+
+ public void add() { }
+
+ public void edit() { }
+
+ public void cancel() { }
+}
Added: trunk/src/action/org/jboss/blog/session/validator/UniqueGroupNameValidator.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/validator/UniqueGroupNameValidator.java (rev 0)
+++ trunk/src/action/org/jboss/blog/session/validator/UniqueGroupNameValidator.java 2008-01-23 18:40:30 UTC (rev 178)
@@ -0,0 +1,62 @@
+package org.jboss.blog.session.validator;
+
+import org.jboss.blog.tools.StringTools;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.faces.Validator;
+import org.jboss.seam.international.Messages;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.validator.ValidatorException;
+import javax.persistence.EntityManager;
+import javax.persistence.Query;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Validator
+ at Name("uniqueGroupNameValidator")
+public class UniqueGroupNameValidator implements javax.faces.validator.Validator {
+ @In
+ private EntityManager entityManager;
+
+ private String entityId;
+
+ public String getEntityId() {
+ return entityId;
+ }
+
+ public void setEntityId(String entityId) {
+ this.entityId = entityId;
+ }
+
+ public void validate(FacesContext context, UIComponent cmp, Object value)
+ throws ValidatorException {
+ String name = StringTools.safeToString(value);
+
+ Integer id;
+
+ if (StringTools.isEmpty(entityId)) {
+ id = null;
+ } else {
+ id = Integer.parseInt(entityId);
+ }
+
+ Query query;
+
+ if (id == null) {
+ query = entityManager.createQuery("select g.id from Group g where g.name = ?1")
+ .setParameter(1, name);
+ } else {
+ query = entityManager.createQuery(
+ "select g.id from Group g where g.name = ?1 and not (g.id = ?2)")
+ .setParameter(1, name).setParameter(2, id);
+ }
+
+ if (query.getResultList().size() != 0) {
+ throw new ValidatorException(new FacesMessage(Messages.instance().get("blog.group.existingname")));
+ }
+ }
+}
\ No newline at end of file
Added: trunk/src/model/org/jboss/blog/model/Group.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/Group.java (rev 0)
+++ trunk/src/model/org/jboss/blog/model/Group.java 2008-01-23 18:40:30 UTC (rev 178)
@@ -0,0 +1,86 @@
+package org.jboss.blog.model;
+
+import org.jboss.blog.model.feed.Feed;
+import org.hibernate.validator.NotEmpty;
+import org.hibernate.validator.Pattern;
+import org.hibernate.validator.Length;
+
+import javax.persistence.*;
+import java.util.List;
+
+/**
+ * @author <a href="mailto:adam at warski.org">Adam Warski</a>
+ */
+ at Entity
+ at Table(name = "FeedGroup")
+public class Group {
+ @Id
+ @GeneratedValue
+ @Column(updatable = false)
+ private Integer id;
+
+ @OneToMany(mappedBy = "group")
+ @OrderBy("name")
+ private List<Feed> feeds;
+
+ @NotEmpty
+ @Column(unique = true)
+ @Length(max = 32)
+ @Pattern(regex = "^[a-z0-9_]*$", message = "#{messages['blog.group.invalidname']}")
+ private String name;
+
+ @NotEmpty
+ @Length(max = 32)
+ private String displayName;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public void setId(Integer id) {
+ this.id = id;
+ }
+
+ public List<Feed> getFeeds() {
+ return feeds;
+ }
+
+ public void setFeeds(List<Feed> feeds) {
+ this.feeds = feeds;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public String getDisplayName() {
+ return displayName;
+ }
+
+ public void setDisplayName(String displayName) {
+ this.displayName = displayName;
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (!(o instanceof Group)) return false;
+
+ Group group = (Group) o;
+
+ if (id != null ? !id.equals(group.id) : group.id != null) return false;
+ if (name != null ? !name.equals(group.name) : group.name != null) return false;
+
+ return true;
+ }
+
+ public int hashCode() {
+ int result;
+ result = (id != null ? id.hashCode() : 0);
+ result = 31 * result + (name != null ? name.hashCode() : 0);
+ return result;
+ }
+}
Modified: trunk/src/model/org/jboss/blog/model/feed/Feed.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/feed/Feed.java 2008-01-21 20:19:33 UTC (rev 177)
+++ trunk/src/model/org/jboss/blog/model/feed/Feed.java 2008-01-23 18:40:30 UTC (rev 178)
@@ -3,9 +3,11 @@
import org.hibernate.validator.Length;
import org.hibernate.validator.NotEmpty;
import org.hibernate.validator.Pattern;
+import org.hibernate.validator.NotNull;
import org.jboss.blog.model.Post;
import org.jboss.blog.model.XmlType;
import org.jboss.blog.model.Template;
+import org.jboss.blog.model.Group;
import javax.persistence.*;
import java.util.List;
@@ -22,6 +24,10 @@
@Column(updatable = false)
private Integer id;
+ @NotNull
+ @ManyToOne
+ private Group group;
+
@NotEmpty
@Length(max = 16)
@Column(unique = true)
@@ -65,6 +71,14 @@
this.id = id;
}
+ public Group getGroup() {
+ return group;
+ }
+
+ public void setGroup(Group group) {
+ this.group = group;
+ }
+
public String getName() {
return name;
}
Modified: trunk/src/services/org/jboss/blog/service/FeedsService.java
===================================================================
--- trunk/src/services/org/jboss/blog/service/FeedsService.java 2008-01-21 20:19:33 UTC (rev 177)
+++ trunk/src/services/org/jboss/blog/service/FeedsService.java 2008-01-23 18:40:30 UTC (rev 178)
@@ -11,17 +11,19 @@
*/
@Local
public interface FeedsService {
- public List<Feed> getAllFeeds();
+ List<Feed> getAllGroups();
- public Post getPost(String titleAsId) throws PostNotFoundException;
+ List<Feed> getAllFeeds();
- public Post getPost(String titleAsId, boolean writeable) throws PostNotFoundException;
+ Post getPost(String titleAsId) throws PostNotFoundException;
- public Feed getFeed(String feedName) throws FeedNotFoundException;
+ Post getPost(String titleAsId, boolean writeable) throws PostNotFoundException;
- public Feed getFeed(String feedName, boolean writeable) throws FeedNotFoundException;
+ Feed getFeed(String feedName) throws FeedNotFoundException;
- public List<Post> getPosts(Feed feed, int from, int to);
+ Feed getFeed(String feedName, boolean writeable) throws FeedNotFoundException;
- public void remove();
+ List<Post> getPosts(Feed feed, int from, int to);
+
+ void remove();
}
Copied: trunk/view/manage/group/group_add.xhtml (from rev 175, trunk/view/manage/remote/remote_add.xhtml)
===================================================================
--- trunk/view/manage/group/group_add.xhtml (rev 0)
+++ trunk/view/manage/group/group_add.xhtml 2008-01-23 18:40:30 UTC (rev 178)
@@ -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>Add feed group</h1>
+
+ <ui:include src="group_mod.xhtml">
+ <ui:param name="new" value="true" />
+ </ui:include>
+ </ui:define>
+</ui:composition>
Copied: trunk/view/manage/group/group_edit.xhtml (from rev 175, trunk/view/manage/remote/remote_edit.xhtml)
===================================================================
--- trunk/view/manage/group/group_edit.xhtml (rev 0)
+++ trunk/view/manage/group/group_edit.xhtml 2008-01-23 18:40:30 UTC (rev 178)
@@ -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>Edit feed group: #{groupMod.group.displayName}</h1>
+
+ <ui:include src="group_mod.xhtml">
+ <ui:param name="new" value="false" />
+ </ui:include>
+ </ui:define>
+</ui:composition>
Added: trunk/view/manage/group/group_list.xhtml
===================================================================
--- trunk/view/manage/group/group_list.xhtml (rev 0)
+++ trunk/view/manage/group/group_list.xhtml 2008-01-23 18:40:30 UTC (rev 178)
@@ -0,0 +1,32 @@
+<!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"
+ template="../../layout/template.xhtml">
+ <ui:define name="body">
+ <h1>Manage groups</h1>
+
+ <s:link value="Add new group" action="#{groupMod.add}" />
+
+ <h3>Current groups:</h3>
+
+ <ui:repeat var="group" value="#{feedsService.allGroups}">
+ <p>
+ #{group.displayName} (#{group.name})
+ <br />
+ <s:link action="#{groupMod.edit}" value="Edit">
+ <f:param name="id" value="#{group.id}" />
+ </s:link>
+ <br />
+ <s:link view="/manage/group/group_delete.xhtml" action="#{groupMod.delete}" value="Delete"
+ onclick="if (!confirm('Are you sure you want to delete this group?')) return false">
+ <f:param name="id" value="#{group.id}" />
+ </s:link>
+ </p>
+ </ui:repeat>
+ </ui:define>
+</ui:composition>
Copied: trunk/view/manage/group/group_mod.xhtml (from rev 175, trunk/view/manage/remote/remote_mod.xhtml)
===================================================================
--- trunk/view/manage/group/group_mod.xhtml (rev 0)
+++ trunk/view/manage/group/group_mod.xhtml 2008-01-23 18:40:30 UTC (rev 178)
@@ -0,0 +1,47 @@
+<!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: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="#{groupMod.group.name}" required="true" size="32">
+ <blog:uniqueGroupNameValidator entityId="#{groupMod.group.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>
+
+ <h:outputLabel for="displayName"><span class="required">*</span> Display name:</h:outputLabel>
+ <h:panelGroup>
+ <h:inputText id="displayName" value="#{groupMod.group.displayName}" required="true" size="32">
+ <a:support event="onblur" reRender="displayNameMessage" ajaxSingle="true" bypassUpdates="true"/>
+ <s:validate />
+ </h:inputText>
+
+ <a:outputPanel id="displayNameMessage">
+ <h:message for="displayName" styleClass="error" />
+ </a:outputPanel>
+ </h:panelGroup>
+
+ <h:outputLabel />
+ <h:panelGroup>
+ <h:commandButton value="Add" action="#{groupMod.saveNew}" rendered="#{new}" />
+ <h:commandButton value="Save" action="#{groupMod.saveExisting}" rendered="#{!new}" />
+ <s:button value="Cancel" action="#{groupMod.cancel}" />
+ </h:panelGroup>
+ </h:panelGrid>
+
+ </h:form>
+</ui:composition>
Modified: trunk/view/manage/index.xhtml
===================================================================
--- trunk/view/manage/index.xhtml 2008-01-21 20:19:33 UTC (rev 177)
+++ trunk/view/manage/index.xhtml 2008-01-23 18:40:30 UTC (rev 178)
@@ -12,6 +12,8 @@
<s:link value="Manage templates" view="/manage/template/template_list.xhtml" /> <br /> <br />
+ <s:link value="Manage groups" view="/manage/group/group_list.xhtml" /> <br /> <br />
+
<s:link value="Add new feed" view="/manage/add.xhtml" /> <br /> <br />
<s:link value="Re-index posts (for search)" action="#{postSearch.reindex}" /> <br /> <br />
More information about the jboss-cvs-commits
mailing list