[jboss-svn-commits] JBL Code SVN: r18773 - in labs/jbosslabs/labs-3.0-build: views/admin/src/main/java/org/jboss/labs/admin/action and 5 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Mar 7 14:19:38 EST 2008


Author: wrzep
Date: 2008-03-07 14:19:38 -0500 (Fri, 07 Mar 2008)
New Revision: 18773

Added:
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/MyRequests.java
Modified:
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/JoinRequest.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/Request.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/AcceptProject.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/META-INF/persistence.xml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/jbpm/createProject.jpdl.xml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/jbpm/joinProject.jpdl.xml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/ticket.xhtml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/requests.xhtml
Log:
JBLAB-934 my pending requests


Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/JoinRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/JoinRequest.java	2008-03-07 19:17:47 UTC (rev 18772)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/JoinRequest.java	2008-03-07 19:19:38 UTC (rev 18773)
@@ -24,12 +24,15 @@
 package org.jboss.labs.core.model.admin;
 
 import javax.persistence.Entity;
+import javax.persistence.Transient;
+import javax.persistence.DiscriminatorValue;
 
 /**
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
  */
 
 @Entity
+ at DiscriminatorValue("j")
 public class JoinRequest extends Request {
     
     private static final long serialVersionUID = 1196778060516603947L;
@@ -40,6 +43,21 @@
         super(projectId, username);
     }
 
+    @Transient
+    public boolean isJoinRequest() {
+        return true;
+    }
+
+    @Transient
+    public boolean isProjectRequest() {
+        return false;
+    }
+
+    @Transient
+    public String getDescription() {
+        return "User '" + username + "' wants to join project '" + projectId + "'";
+    }
+
     @Override
     public String toString() {
         return "JoinRequest(" + username + ", " + projectId + ", " + finished + ")";

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.java	2008-03-07 19:17:47 UTC (rev 18772)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.java	2008-03-07 19:19:38 UTC (rev 18773)
@@ -26,12 +26,15 @@
 import org.hibernate.validator.Email;
 
 import javax.persistence.Entity;
+import javax.persistence.Transient;
+import javax.persistence.DiscriminatorValue;
 
 /**
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
  */
 
 @Entity
+ at DiscriminatorValue("p")
 public class ProjectRequest extends Request {
 
     protected String name = "New Project";
@@ -119,6 +122,26 @@
         this.announceForum = announceForum;
     }
 
+    @Transient
+    public boolean isJoinRequest() {
+        return true;
+    }
+
+    @Transient
+    public boolean isProjectRequest() {
+        return false;
+    }
+
+    @Transient
+    public String getDescription() {
+        return "Request to create new project: '" + projectId + "'";
+    }
+
+    @Override
+    public String toString() {
+        return "ProjectRequest(" + username + ", " + projectId + ")"; 
+    }
+
   /*  private String escape(String string, String w) {
 
         StringBuilder sb = new StringBuilder();

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/Request.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/Request.java	2008-03-07 19:17:47 UTC (rev 18772)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/Request.java	2008-03-07 19:19:38 UTC (rev 18773)
@@ -23,20 +23,19 @@
 
 package org.jboss.labs.core.model.admin;
 
-import org.hibernate.validator.Email;
-
-import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.Id;
-import javax.persistence.MappedSuperclass;
+import javax.persistence.*;
 import java.io.Serializable;
 
 /**
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
  */
 
- at MappedSuperclass
-public class Request implements Serializable {
+ at Entity
+ at Inheritance(strategy = InheritanceType.SINGLE_TABLE)
+ at DiscriminatorColumn(name = "request_type",
+                     discriminatorType = DiscriminatorType.CHAR)
+ at DiscriminatorValue("r")
+public abstract class Request implements Serializable {
 
     private static final long serialVersionUID = 2639173025158823340L;
 
@@ -97,6 +96,15 @@
         this.taskId = taskId;
     }
 
+    @Transient
+    public abstract String getDescription();
+
+    @Transient
+    public abstract boolean isJoinRequest();
+
+    @Transient
+    public abstract boolean isProjectRequest();    
+
     @Override
     public String toString() {
         return "Request(" + username + ", " + projectId + ", " + finished + ", " + taskId + ")";

Added: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/MyRequests.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/MyRequests.java	                        (rev 0)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/MyRequests.java	2008-03-07 19:19:38 UTC (rev 18773)
@@ -0,0 +1,35 @@
+package org.jboss.labs.admin.action;
+
+import org.jboss.labs.core.model.admin.Request;
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.Transactional;
+import org.jboss.seam.annotations.Unwrap;
+
+import javax.persistence.EntityManager;
+import java.util.List;
+
+/**
+ * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
+ */
+ at Name("myRequests")
+public class MyRequests {
+
+    @In(create = true) private EntityManager entityManager;
+
+    @In("#{user.name}") private String username;
+    
+    @Unwrap
+    @Transactional
+    @SuppressWarnings("unchecked")
+    public List<Request> getMyRequests() {
+
+        return (List<Request>)
+                entityManager
+                .createQuery("SELECT r FROM Request r " +
+                                      "WHERE (r.username = :username) " +
+                                      "AND (r.finished = false)")
+                .setParameter("username", username)
+                .getResultList();
+    }
+}
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/AcceptProject.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/AcceptProject.java	2008-03-07 19:17:47 UTC (rev 18772)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/AcceptProject.java	2008-03-07 19:19:38 UTC (rev 18773)
@@ -26,6 +26,8 @@
 import com.google.inject.Inject;
 import org.jboss.labs.admin.Pages;
 import org.jboss.labs.core.model.admin.ProjectRequest;
+import org.jboss.labs.core.model.admin.JoinRequest;
+import org.jboss.labs.core.model.admin.Request;
 import org.jboss.labs.core.service.ProjectService;
 import org.jboss.labs.injection.seam.Guice;
 import org.jboss.labs.exception.LabsRollbackException;
@@ -37,6 +39,8 @@
 import org.jboss.seam.faces.FacesMessages;
 import org.jboss.seam.log.Log;
 
+import javax.persistence.EntityManager;
+
 /**
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
  */
@@ -49,6 +53,8 @@
 
     @Inject private ProjectService projectService;
 
+    @In(create = true) EntityManager entityManager;
+
     @In private Conversation conversation;
     @In private BusinessProcess businessProcess;
 
@@ -73,6 +79,8 @@
             return null;
         }
 
+        cleanRequest(projectRequest);
+
         businessProcess.resumeTask(tId);
         businessProcess.startTask();
         businessProcess.endTask("approve");
@@ -87,8 +95,10 @@
     // Hardcoded inside:
     // @StartTask @EndTask(transition = "reject")
     // @End
-    public String reject() {
+    public String reject(Request projectRequest) {
 
+        cleanRequest(projectRequest);
+
         businessProcess.resumeTask(tId);
         businessProcess.startTask();
         businessProcess.endTask("reject");
@@ -99,4 +109,9 @@
 
         return Pages.REQUESTS_PAGE;
     }
+
+        private void cleanRequest(Request request) {
+            request.setFinished(true);
+            entityManager.merge(request);
+    }
 }
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/META-INF/persistence.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/META-INF/persistence.xml	2008-03-07 19:17:47 UTC (rev 18772)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/META-INF/persistence.xml	2008-03-07 19:19:38 UTC (rev 18773)
@@ -10,6 +10,7 @@
                         <property name="hibernate.transaction.manager_lookup_class"
                                   value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
                 </properties>
+               <class>org.jboss.labs.core.model.admin.Request</class>
                <class>org.jboss.labs.core.model.admin.ProjectRequest</class>
                <class>org.jboss.labs.core.model.admin.JoinRequest</class>
         </persistence-unit>

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/jbpm/createProject.jpdl.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/jbpm/createProject.jpdl.xml	2008-03-07 19:17:47 UTC (rev 18772)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/jbpm/createProject.jpdl.xml	2008-03-07 19:19:38 UTC (rev 18773)
@@ -11,7 +11,7 @@
    </start-state>
 
    <task-node name="decide">
-        <task name="approve" description="Request to create new project: '#{projectRequest.name}'">
+        <task name="approve" description="#{projectRequest.description}">
            <assignment pooled-actors="Administrators"/>
         </task>
         <transition name="approve" to="done">

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/jbpm/joinProject.jpdl.xml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/jbpm/joinProject.jpdl.xml	2008-03-07 19:17:47 UTC (rev 18772)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/jbpm/joinProject.jpdl.xml	2008-03-07 19:19:38 UTC (rev 18773)
@@ -11,7 +11,7 @@
    </start-state>
 
    <task-node name="decide">
-        <task name="approve" description="User '#{joinRequest.username}' wants to join project '#{joinRequest.projectId}'">
+        <task name="approve" description="#{joinRequest.description}">
            <assignment pooled-actors="#{joinRequest.projectId}_SUPERUSER, Administrators"/>
         </task>
         <transition name="approve" to="done">

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/ticket.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/ticket.xhtml	2008-03-07 19:17:47 UTC (rev 18772)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/ticket.xhtml	2008-03-07 19:19:38 UTC (rev 18773)
@@ -60,7 +60,7 @@
                 <f:param name="taskId" value="#{tId}" />
             </h:commandLink>
             <span/>
-            <s:link value="Reject" action="#{acceptProject.reject}">
+            <s:link value="Reject" action="#{acceptProject.reject(prjRequest)}">
                 <ui:remove><!-- s:link here to skip validation --></ui:remove>
                 <f:param name="taskId" value="#{tId}" />
             </s:link>

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/requests.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/requests.xhtml	2008-03-07 19:17:47 UTC (rev 18772)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/requests.xhtml	2008-03-07 19:19:38 UTC (rev 18773)
@@ -30,22 +30,17 @@
           </h:column>
       </h:dataTable>
 
-      <h:dataTable value="#{myTaskInstanceList}"
-                   rendered="#{! empty myTaskInstanceList}"
-                   var="task">
+      <h:dataTable value="#{myRequests}"
+                   rendered="#{! empty myRequests}"
+                   var="r">
           <f:facet name="header">My Pending Requests</f:facet>
           <h:column>
               <f:facet name="header">Id</f:facet>
-              #{task.id}
+              #{r.id}
           </h:column>
-           <h:column>
-               <f:facet name="header">Description</f:facet>
-               <h:commandLink value="#{task.description}"
-                              action="#{reviewProjectRequest.select(task.id, task.variables['projectRequestId'])}"
-                              rendered="#{not empty (task.variables['projectRequestId'])}"/>
-               <h:commandLink value="#{task.description}"
-                              action="#{reviewJoinRequest.select(task.id, task.variables['joinRequestId'])}"
-                              rendered="#{not empty (task.variables['joinRequestId'])}"/>
+          <h:column>
+              <f:facet name="header">Description</f:facet>
+              #{r.description}
           </h:column>
       </h:dataTable>
     </h:form>




More information about the jboss-svn-commits mailing list