You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lenya.apache.org by an...@apache.org on 2006/06/28 09:31:52 UTC

svn commit: r417686 - in /lenya/trunk/src/modules: contactform/ contactform/config/ contactform/config/cocoon-xconf/ contactform/java/ contactform/java/src/ contactform/java/src/org/ contactform/java/src/org/apache/ contactform/java/src/org/apache/leny...

Author: andreas
Date: Wed Jun 28 00:31:51 2006
New Revision: 417686

URL: http://svn.apache.org/viewvc?rev=417686&view=rev
Log:
Fixed usecasedocument module references, moved contact form to separate module

Added:
    lenya/trunk/src/modules/contactform/
    lenya/trunk/src/modules/contactform/config/
    lenya/trunk/src/modules/contactform/config/cocoon-xconf/
    lenya/trunk/src/modules/contactform/config/cocoon-xconf/usecase-contactForm.xconf
      - copied, changed from r417484, lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/usecase-contactForm.xconf
    lenya/trunk/src/modules/contactform/config/menu.xsp
      - copied, changed from r417484, lenya/trunk/src/modules/usecasedocument/config/menu.xsp
    lenya/trunk/src/modules/contactform/java/
    lenya/trunk/src/modules/contactform/java/src/
    lenya/trunk/src/modules/contactform/java/src/org/
    lenya/trunk/src/modules/contactform/java/src/org/apache/
    lenya/trunk/src/modules/contactform/java/src/org/apache/lenya/
    lenya/trunk/src/modules/contactform/java/src/org/apache/lenya/cms/
    lenya/trunk/src/modules/contactform/java/src/org/apache/lenya/cms/contactform/
    lenya/trunk/src/modules/contactform/java/src/org/apache/lenya/cms/contactform/ContactForm.java
    lenya/trunk/src/modules/contactform/menus.xmap
      - copied, changed from r417484, lenya/trunk/src/modules/usecasedocument/menus.xmap
    lenya/trunk/src/modules/contactform/module.xml
    lenya/trunk/src/modules/contactform/usecases/
    lenya/trunk/src/modules/contactform/usecases/contactForm.jx
      - copied, changed from r417484, lenya/trunk/src/modules/usecasedocument/usecases/contactForm.jx
Removed:
    lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/usecase-contactForm.xconf
    lenya/trunk/src/modules/usecasedocument/config/menu.xsp
    lenya/trunk/src/modules/usecasedocument/menus.xmap
    lenya/trunk/src/modules/usecasedocument/usecases/contactForm.jx
Modified:
    lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/resource-type-usecase.xconf
    lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/usecase-createUsecaseDocument.xconf

Copied: lenya/trunk/src/modules/contactform/config/cocoon-xconf/usecase-contactForm.xconf (from r417484, lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/usecase-contactForm.xconf)
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/contactform/config/cocoon-xconf/usecase-contactForm.xconf?p2=lenya/trunk/src/modules/contactform/config/cocoon-xconf/usecase-contactForm.xconf&p1=lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/usecase-contactForm.xconf&r1=417484&r2=417686&rev=417686&view=diff
==============================================================================
--- lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/usecase-contactForm.xconf (original)
+++ lenya/trunk/src/modules/contactform/config/cocoon-xconf/usecase-contactForm.xconf Wed Jun 28 00:31:51 2006
@@ -23,8 +23,10 @@
   <xconf xpath="/cocoon/usecases" unless="/cocoon/usecases/component-instance[@name = 'usecase.contactForm']">
 
     <component-instance name="usecase.contactForm" logger="lenya.usecase"
-      class="org.apache.lenya.cms.usecase.DummyUsecase">
-      <view template="modules/usecase/usecases/contactForm.jx"/>
+      class="org.apache.lenya.cms.contactform.ContactForm">
+      <view template="modules/contactform/usecases/contactForm.jx"/>
+      <parameter name="sender" value="lenya"/>
+      <parameter name="recipient" value="alice"/>
     </component-instance>
     
   </xconf>

Copied: lenya/trunk/src/modules/contactform/config/menu.xsp (from r417484, lenya/trunk/src/modules/usecasedocument/config/menu.xsp)
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/contactform/config/menu.xsp?p2=lenya/trunk/src/modules/contactform/config/menu.xsp&p1=lenya/trunk/src/modules/usecasedocument/config/menu.xsp&r1=417484&r2=417686&rev=417686&view=diff
==============================================================================
--- lenya/trunk/src/modules/usecasedocument/config/menu.xsp (original)
+++ lenya/trunk/src/modules/contactform/config/menu.xsp Wed Jun 28 00:31:51 2006
@@ -38,7 +38,7 @@
     <menus>
       <menu i18n:attr="name" name="File">
         <block admin="false">
-          <item uc:usecase="usecase.createUsecaseDocument" href="?usecase=usecase.contactForm"><i18n:text>New Usecase Document</i18n:text></item>
+          <item uc:usecase="usecase.createUsecaseDocument" href="?usecase=usecase.contactForm"><i18n:text>New Contact Form</i18n:text></item>
         </block>
       </menu>
     </menus>

Added: lenya/trunk/src/modules/contactform/java/src/org/apache/lenya/cms/contactform/ContactForm.java
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/contactform/java/src/org/apache/lenya/cms/contactform/ContactForm.java?rev=417686&view=auto
==============================================================================
--- lenya/trunk/src/modules/contactform/java/src/org/apache/lenya/cms/contactform/ContactForm.java (added)
+++ lenya/trunk/src/modules/contactform/java/src/org/apache/lenya/cms/contactform/ContactForm.java Wed Jun 28 00:31:51 2006
@@ -0,0 +1,116 @@
+/*
+ * Copyright  1999-2004 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ *
+ */
+package org.apache.lenya.cms.contactform;
+
+import org.apache.avalon.framework.service.ServiceSelector;
+import org.apache.lenya.ac.AccessController;
+import org.apache.lenya.ac.AccessControllerResolver;
+import org.apache.lenya.ac.User;
+import org.apache.lenya.ac.UserManager;
+import org.apache.lenya.cms.usecase.AbstractUsecase;
+import org.apache.lenya.notification.Message;
+import org.apache.lenya.notification.NotificationUtil;
+
+/**
+ * Contact form. The recipient user ID is set using the "recipient" parameter. The sender user ID is
+ * set using the "sender" parameter;
+ */
+public class ContactForm extends AbstractUsecase {
+
+    protected static final String RECIPIENT = "recipient";
+    protected static final String SENDER = "sender";
+    protected static final String MESSAGE = "message";
+    protected static final String NAME = "name";
+    protected static final String FROM = "email";
+
+    protected void doCheckPreconditions() throws Exception {
+        super.doCheckPreconditions();
+        if (getParameterAsString(SENDER).equals("")) {
+            addErrorMessage("The sender is not configured!");
+        }
+    }
+
+    protected void doCheckExecutionConditions() throws Exception {
+        super.doCheckExecutionConditions();
+
+        if (getParameterAsString(NAME).trim().equals("")) {
+            addErrorMessage("Please enter your name!");
+        }
+        if (getParameterAsString(FROM).trim().equals("")) {
+            addErrorMessage("Please enter your e-mail address!");
+        }
+        if (getParameterAsString(MESSAGE).trim().equals("")) {
+            addErrorMessage("Please enter a message!");
+        }
+        if (getParameterAsString(RECIPIENT).trim().equals("")) {
+            addErrorMessage("Please choose a recipient!");
+        }
+    }
+
+    protected void doExecute() throws Exception {
+        super.doExecute();
+
+        String senderUserId = getParameterAsString(SENDER);
+        String recipientUserId = getParameterAsString(RECIPIENT);
+
+        User sender = getUser(senderUserId);
+        User recipient = getUser(recipientUserId);
+        User[] recipients = { recipient };
+
+        String name = getParameterAsString(NAME);
+        String body = getParameterAsString(MESSAGE);
+        String from = getParameterAsString(FROM);
+
+        Message message = new Message("Contact form submitted by " + name + " (" + from + ")",
+                new String[0],
+                body,
+                new String[0]);
+
+        NotificationUtil.notify(this.manager, recipients, sender, message);
+
+        setTargetURL(getSourceURL() + "?sent=true");
+    }
+
+    protected User getUser(String userId) throws Exception {
+        User user;
+        ServiceSelector selector = null;
+        AccessControllerResolver acResolver = null;
+        AccessController accessController = null;
+        try {
+            selector = (ServiceSelector) this.manager.lookup(AccessControllerResolver.ROLE
+                    + "Selector");
+            acResolver = (AccessControllerResolver) selector.select(AccessControllerResolver.DEFAULT_RESOLVER);
+            accessController = acResolver.resolveAccessController(getSourceURL());
+
+            UserManager userManager = accessController.getAccreditableManager().getUserManager();
+            user = userManager.getUser(userId);
+
+        } finally {
+            if (selector != null) {
+                if (acResolver != null) {
+                    if (accessController != null) {
+                        acResolver.release(accessController);
+                    }
+                    selector.release(acResolver);
+                }
+                this.manager.release(selector);
+            }
+        }
+        return user;
+    }
+
+}

Copied: lenya/trunk/src/modules/contactform/menus.xmap (from r417484, lenya/trunk/src/modules/usecasedocument/menus.xmap)
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/contactform/menus.xmap?p2=lenya/trunk/src/modules/contactform/menus.xmap&p1=lenya/trunk/src/modules/usecasedocument/menus.xmap&r1=417484&r2=417686&rev=417686&view=diff
==============================================================================
--- lenya/trunk/src/modules/usecasedocument/menus.xmap (original)
+++ lenya/trunk/src/modules/contactform/menus.xmap Wed Jun 28 00:31:51 2006
@@ -24,7 +24,7 @@
     <map:pipeline>
     	
       <map:match pattern="**">
-        <map:generate type="serverpages" src="fallback://lenya/modules/usecase/config/menu.xsp"/>
+        <map:generate type="serverpages" src="fallback://lenya/modules/contactform/config/menu.xsp"/>
         <map:serialize type="xml"/>
       </map:match>
       

Added: lenya/trunk/src/modules/contactform/module.xml
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/contactform/module.xml?rev=417686&view=auto
==============================================================================
--- lenya/trunk/src/modules/contactform/module.xml (added)
+++ lenya/trunk/src/modules/contactform/module.xml Wed Jun 28 00:31:51 2006
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright 1999-2005 The Apache Software Foundation
+
+  Licensed under the Apache License, Version 2.0 (the "License");
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+-->
+
+<!-- $Id: publication.xml 374687 2006-02-03 15:24:55Z michi $ -->
+
+<module xmlns="http://apache.org/lenya/module/1.0">
+  <id>org.apache.lenya.modules.contactform</id>
+  <depends module="org.apache.lenya.modules.usecase"/>
+  <depends module="org.apache.lenya.modules.notification"/>
+  <package>org.apache.lenya.modules</package>
+  <version>0.1-dev</version>
+  <name>Contact Form</name>
+  <lenya-version>@lenya.version@</lenya-version>
+  <description>Contact Form</description>
+</module>

Copied: lenya/trunk/src/modules/contactform/usecases/contactForm.jx (from r417484, lenya/trunk/src/modules/usecasedocument/usecases/contactForm.jx)
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/contactform/usecases/contactForm.jx?p2=lenya/trunk/src/modules/contactform/usecases/contactForm.jx&p1=lenya/trunk/src/modules/usecasedocument/usecases/contactForm.jx&r1=417484&r2=417686&rev=417686&view=diff
==============================================================================
--- lenya/trunk/src/modules/usecasedocument/usecases/contactForm.jx (original)
+++ lenya/trunk/src/modules/contactform/usecases/contactForm.jx Wed Jun 28 00:31:51 2006
@@ -26,20 +26,14 @@
     <jx:choose>
       <jx:when test="${usecase.getParameter('sent').equals('true')}">
         <p>
-          Sorry - your message was not sent because this is just a sample usecase.
-        </p>
-        <p>
-          <form id="form-contact">
-            <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
-            <input type="submit" name="submit" value="Try again"/>
-          </form>
+          Your message was sent.<br/>
+          Thanks a lot!
         </p>
       </jx:when>
       <jx:otherwise>
 
         <form id="form-contact">
           <input type="hidden" name="lenya.continuation" value="${continuation.id}"/>
-          <input type="hidden" name="sent" value="true"/>
           
           <table style="font-size: small">
             <tr>
@@ -50,7 +44,7 @@
             
             <tr>
               <td><label for="name"><i18n:text>Your Name</i18n:text> *</label></td>
-              <td><input type="text" name="password" value="${usecase.getParameter('name')}"/></td>
+              <td><input type="text" name="name" value="${usecase.getParameter('name')}"/></td>
             </tr>
             <tr>
               <td><label for="email"><i18n:text>Your E-Mail Address</i18n:text> *</label></td>
@@ -64,7 +58,7 @@
             <tr>
               <td/>
               <td>
-                <input i18n:attr="value" type="submit" value="Submit"/>
+                <input i18n:attr="value" name="submit" type="submit" value="Submit"/>
               </td>
             </tr>
           </table>

Modified: lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/resource-type-usecase.xconf
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/resource-type-usecase.xconf?rev=417686&r1=417685&r2=417686&view=diff
==============================================================================
--- lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/resource-type-usecase.xconf (original)
+++ lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/resource-type-usecase.xconf Wed Jun 28 00:31:51 2006
@@ -23,11 +23,11 @@
     logger="lenya.resourcetypes.usecase"
     class="org.apache.lenya.cms.publication.ResourceTypeImpl">
     <schema language="http://relaxng.org/ns/structure/0.9"
-      src="fallback://lenya/modules/usecase/resources/schemas/usecase.rng"/>
+      src="fallback://lenya/modules/usecasedocument/resources/schemas/usecase.rng"/>
     
-    <sample-name>fallback://lenya/modules/usecase/samples/usecase.xml</sample-name>
+    <sample-name>fallback://lenya/modules/usecasedocument/samples/usecase.xml</sample-name>
     
-    <format name="xhtml" uri="cocoon://modules/usecase/usecase.xml"/>
+    <format name="xhtml" uri="cocoon://modules/usecasedocument/usecase.xml"/>
   </component-instance>
   
 </xconf>

Modified: lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/usecase-createUsecaseDocument.xconf
URL: http://svn.apache.org/viewvc/lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/usecase-createUsecaseDocument.xconf?rev=417686&r1=417685&r2=417686&view=diff
==============================================================================
--- lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/usecase-createUsecaseDocument.xconf (original)
+++ lenya/trunk/src/modules/usecasedocument/config/cocoon-xconf/usecase-createUsecaseDocument.xconf Wed Jun 28 00:31:51 2006
@@ -22,6 +22,6 @@
 
   <xconf xpath="/cocoon/usecases" unless="/cocoon/usecases/component-instance[@name = 'usecase.createUsecaseDocument']">
     <component-instance name="usecase.createUsecaseDocument" logger="lenya.site" class="org.apache.lenya.cms.site.usecases.CreateUsecaseDocument">
-      <view template="modules/usecase/usecases/createUsecaseDocument.jx"/>
+      <view template="modules/usecasedocument/usecases/createUsecaseDocument.jx"/>
     </component-instance>
   </xconf>



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@lenya.apache.org
For additional commands, e-mail: commits-help@lenya.apache.org