[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