[jboss-cvs] JBossBlog SVN: r249 - in trunk: resources/WEB-INF and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Mar 10 07:10:16 EDT 2008
Author: adamw
Date: 2008-03-10 07:10:16 -0400 (Mon, 10 Mar 2008)
New Revision: 249
Added:
trunk/view/emails/
trunk/view/emails/test_email.xhtml
trunk/view/manage/configuration_manager.xhtml
Modified:
trunk/resources/WEB-INF/pages.xml
trunk/resources/messages_en.properties
trunk/src/action/org/jboss/blog/session/configuration/ConfigurationManager.java
trunk/src/action/org/jboss/blog/session/update/UpdateManager.java
trunk/src/model/org/jboss/blog/model/configuration/Configuration.java
trunk/src/tools/org/jboss/blog/tools/GeneralTools.java
trunk/view/layout/template.xhtml
trunk/view/manage/index.xhtml
Log:
Modified: trunk/resources/WEB-INF/pages.xml
===================================================================
--- trunk/resources/WEB-INF/pages.xml 2008-03-10 10:00:00 UTC (rev 248)
+++ trunk/resources/WEB-INF/pages.xml 2008-03-10 11:10:16 UTC (rev 249)
@@ -324,6 +324,13 @@
<restrict>#{identity.hasPermission('admin', '')}</restrict>
</page>
+ <!-- Manage configuration -->
+
+ <page view-id="/manage/configuration_manager.xhtml" login-required="true">
+ <begin-conversation flush-mode="manual" join="true" />
+ <restrict>#{identity.hasPermission('admin', '')}</restrict>
+ </page>
+
<!-- Manage security -->
<page view-id="/security/security_manager.xhtml">
Modified: trunk/resources/messages_en.properties
===================================================================
--- trunk/resources/messages_en.properties 2008-03-10 10:00:00 UTC (rev 248)
+++ trunk/resources/messages_en.properties 2008-03-10 11:10:16 UTC (rev 249)
@@ -129,6 +129,8 @@
blog.search.emptyquery=Your query is empty.
blog.configuration.saved=Configuration saved.
+blog.configuration.testmail.sent=Test e-mail sent.
+blog.configuration.testmail.notsent=Exception when sending a test e-mail: {0}.
blog.feed.highlights.adding.info=A highlights feed lets you create a feed out of selected, arbitrary posts. \
After adding a new highlights feed, you'll be able to add posts to it by navigating to the post and clicking \
Modified: trunk/src/action/org/jboss/blog/session/configuration/ConfigurationManager.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/configuration/ConfigurationManager.java 2008-03-10 10:00:00 UTC (rev 248)
+++ trunk/src/action/org/jboss/blog/session/configuration/ConfigurationManager.java 2008-03-10 11:10:16 UTC (rev 249)
@@ -4,12 +4,17 @@
import org.jboss.seam.annotations.Scope;
import org.jboss.seam.annotations.AutoCreate;
import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.security.Restrict;
import org.jboss.seam.ScopeType;
+import org.jboss.seam.faces.FacesMessages;
+import org.jboss.seam.faces.Renderer;
import org.jboss.blog.model.configuration.Configuration;
+import org.jboss.blog.tools.GeneralTools;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.NonUniqueResultException;
+import javax.faces.application.FacesMessage;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
@@ -21,6 +26,12 @@
@In
private EntityManager entityManager;
+ @In
+ private FacesMessages facesMessages;
+
+ @In(create = true)
+ private Renderer renderer;
+
private Configuration initNewConfiguration() {
Configuration conf = new Configuration();
conf.setConnectionTimeout(5000);
@@ -43,4 +54,23 @@
throw new RuntimeException("There should be at most 1 configuration entity!", e);
}
}
+
+ @Restrict("#{identity.hasPermission('admin', null)}")
+ public void save() {
+ entityManager.flush();
+ facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.configuration.saved");
+ }
+
+ @Restrict("#{identity.hasPermission('admin', null)}")
+ public void testEmail() {
+ save();
+
+ try {
+ renderer.render("/emails/test_email.xhtml");
+ facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_INFO, "blog.configuration.testmail.sent");
+ } catch (Exception e) {
+ facesMessages.addFromResourceBundle(FacesMessage.SEVERITY_ERROR, "blog.configuration.testmail.notsent",
+ GeneralTools.getExceptionStackTrace(e));
+ }
+ }
}
Modified: trunk/src/action/org/jboss/blog/session/update/UpdateManager.java
===================================================================
--- trunk/src/action/org/jboss/blog/session/update/UpdateManager.java 2008-03-10 10:00:00 UTC (rev 248)
+++ trunk/src/action/org/jboss/blog/session/update/UpdateManager.java 2008-03-10 11:10:16 UTC (rev 249)
@@ -6,6 +6,7 @@
import org.jboss.seam.annotations.Observer;
import org.jboss.seam.annotations.security.Restrict;
import org.jboss.blog.session.configuration.ConfigurationManager;
+import org.jboss.blog.tools.GeneralTools;
import javax.faces.application.FacesMessage;
import java.util.concurrent.ScheduledExecutorService;
@@ -14,8 +15,6 @@
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.*;
import java.text.DateFormat;
-import java.io.ByteArrayOutputStream;
-import java.io.PrintWriter;
/**
* @author <a href="mailto:adam at warski.org">Adam Warski</a>
@@ -150,13 +149,7 @@
}
public String getExceptionStackTrace(Exception e) {
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
- PrintWriter pw = new PrintWriter(baos);
-
- e.printStackTrace(pw);
-
- pw.flush();
- return baos.toString();
+ return GeneralTools.getExceptionStackTrace(e);
}
@Restrict("#{identity.hasPermission('admin', null)}")
Modified: trunk/src/model/org/jboss/blog/model/configuration/Configuration.java
===================================================================
--- trunk/src/model/org/jboss/blog/model/configuration/Configuration.java 2008-03-10 10:00:00 UTC (rev 248)
+++ trunk/src/model/org/jboss/blog/model/configuration/Configuration.java 2008-03-10 11:10:16 UTC (rev 249)
@@ -1,6 +1,7 @@
package org.jboss.blog.model.configuration;
import org.hibernate.validator.NotNull;
+import org.hibernate.validator.Email;
import javax.persistence.*;
@@ -26,6 +27,10 @@
@NotNull
private int updateInterval;
+ @Column
+ @Email
+ private String adminEmail;
+
public Integer getId() {
return id;
}
@@ -58,6 +63,14 @@
this.updateInterval = updateInterval;
}
+ public String getAdminEmail() {
+ return adminEmail;
+ }
+
+ public void setAdminEmail(String adminEmail) {
+ this.adminEmail = adminEmail;
+ }
+
public boolean equals(Object o) {
if (this == o) return true;
if (!(o instanceof Configuration)) return false;
@@ -67,6 +80,7 @@
if (connectionTimeout != that.connectionTimeout) return false;
if (readTimeout != that.readTimeout) return false;
if (updateInterval != that.updateInterval) return false;
+ if (adminEmail != null ? !adminEmail.equals(that.adminEmail) : that.adminEmail != null) return false;
if (id != null ? !id.equals(that.id) : that.id != null) return false;
return true;
@@ -78,6 +92,7 @@
result = 31 * result + readTimeout;
result = 31 * result + connectionTimeout;
result = 31 * result + updateInterval;
+ result = 31 * result + (adminEmail != null ? adminEmail.hashCode() : 0);
return result;
}
}
Modified: trunk/src/tools/org/jboss/blog/tools/GeneralTools.java
===================================================================
--- trunk/src/tools/org/jboss/blog/tools/GeneralTools.java 2008-03-10 10:00:00 UTC (rev 248)
+++ trunk/src/tools/org/jboss/blog/tools/GeneralTools.java 2008-03-10 11:10:16 UTC (rev 249)
@@ -158,4 +158,14 @@
return contents.toString();
}
+
+ public static String getExceptionStackTrace(Exception e) {
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ PrintWriter pw = new PrintWriter(baos);
+
+ e.printStackTrace(pw);
+
+ pw.flush();
+ return baos.toString();
+ }
}
Added: trunk/view/emails/test_email.xhtml
===================================================================
--- trunk/view/emails/test_email.xhtml (rev 0)
+++ trunk/view/emails/test_email.xhtml 2008-03-10 11:10:16 UTC (rev 249)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<m:message xmlns="http://www.w3.org/1999/xhtml"
+ xmlns:m="http://jboss.com/products/seam/mail"
+ xmlns:h="http://java.sun.com/jsf/html"
+ charset="UTF-8">
+
+ <m:from name="JBoss Labs Feeds administrator" address="feeds-admin at jboss.org" />
+ <m:to>#{configurationManager.configuration.adminEmail}</m:to>
+ <m:subject>JBoss Labs Feeds test e-mail</m:subject>
+
+ <m:body type="plain">
+ <p>This is a test e-mail from JBoss Labs Feeds.</p>
+ </m:body>
+</m:message>
\ No newline at end of file
Modified: trunk/view/layout/template.xhtml
===================================================================
--- trunk/view/layout/template.xhtml 2008-03-10 10:00:00 UTC (rev 248)
+++ trunk/view/layout/template.xhtml 2008-03-10 11:10:16 UTC (rev 249)
@@ -37,6 +37,8 @@
<h:messages globalOnly="true"
infoClass="messages_info"
warnClass="messages_warn"
+ errorClass="messages_warn"
+ fatalClass="messages_warn"
styleClass="messages"
/>
</div>
Added: trunk/view/manage/configuration_manager.xhtml
===================================================================
--- trunk/view/manage/configuration_manager.xhtml (rev 0)
+++ trunk/view/manage/configuration_manager.xhtml 2008-03-10 11:10:16 UTC (rev 249)
@@ -0,0 +1,42 @@
+<!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="header">
+ Configuration manager
+ </ui:define>
+ <ui:define name="body">
+ <h:form>
+ <div class="adminforms">
+ <h:panelGrid columns="2">
+ <h:outputLabel for="adminEmail">Administrator email:</h:outputLabel>
+ <h:panelGroup>
+ <h:inputText id="adminEmail" value="#{configurationManager.configuration.adminEmail}" size="16">
+ <a:support event="onblur" reRender="adminEmailMessage" ajaxSingle="true" bypassUpdates="true"/>
+ <s:validate />
+ </h:inputText>
+ <a:outputPanel id="adminEmailMessage">
+ <h:message for="adminEmail" styleClass="error" />
+ </a:outputPanel>
+ </h:panelGroup>
+ </h:panelGrid>
+ <div class="formbuttons">
+ <ul>
+ <li>
+ <h:commandButton value="Save changes" action="#{configurationManager.save}" styleClass="submit" />
+ </li>
+ <li>
+ <h:commandButton value="Save and test email" action="#{configurationManager.testEmail}" styleClass="submit" />
+ </li>
+ </ul>
+ </div>
+ </div>
+ </h:form>
+ </ui:define>
+</ui:composition>
Modified: trunk/view/manage/index.xhtml
===================================================================
--- trunk/view/manage/index.xhtml 2008-03-10 10:00:00 UTC (rev 248)
+++ trunk/view/manage/index.xhtml 2008-03-10 11:10:16 UTC (rev 249)
@@ -47,6 +47,9 @@
<s:fragment rendered="#{identity.hasPermission('management_update', 'view')}">
<dd><s:link value="Manage updates" view="/manage/update_manager.xhtml" /></dd>
</s:fragment>
+ <s:fragment rendered="#{identity.hasPermission('management_configuration', 'view')}">
+ <dd><s:link value="Manage configuration" view="/manage/configuration_manager.xhtml" /></dd>
+ </s:fragment>
<s:fragment rendered="#{identity.hasPermission('security', 'view')}">
<dd><s:link value="Manage security" view="/security/security_manager.xhtml" /></dd>
</s:fragment>
More information about the jboss-cvs-commits
mailing list