[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