[jboss-svn-commits] JBL Code SVN: r18700 - in labs/jbosslabs/labs-3.0-build: core/core-api/src/main/java/org/jboss/labs/events and 11 other directories.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Wed Mar 5 08:05:53 EST 2008


Author: wrzep
Date: 2008-03-05 08:05:53 -0500 (Wed, 05 Mar 2008)
New Revision: 18700

Modified:
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java
   labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/ProjectEvents.java
   labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java
   labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java
   labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/ProjectEventsConsumer.java
   labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java
   labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceEventListenerBean.java
   labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/events/ProjectEventsGenerator.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/SaveProject.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ShowView.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinProject.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinState.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/members.xhtml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/project.xhtml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/projects.xhtml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/user/joinProject.xhtml
Log:
JBLAB-904


Modified: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/core/service/ProjectService.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -47,7 +47,7 @@
 
     public Project getProject(String projectId) throws ProjectNotFoundException;
 
-    public Project merge(Project project);
+    public Project merge(Project project) throws LabsRollbackException;
 
     public void createProject(ProjectRequest projectRequest) throws LabsRollbackException;
 

Modified: labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/ProjectEvents.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/ProjectEvents.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/core/core-api/src/main/java/org/jboss/labs/events/ProjectEvents.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -37,9 +37,11 @@
 @Producer
 public interface ProjectEvents extends EventListener {
 
-    public void projectCreated( String projectId );
+    public void projectCreated(String projectId);
 
-    public void projectLeadAdded( String username, String projectId);
+    public void projectLeadAdded(String username, String projectId);
     
     public void projectContributorAdded(String username, String projectId);
+
+    public void projectUpdated(String projectId);
 }

Modified: labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/Project.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -301,19 +301,26 @@
     }
 
     public boolean isMemberOrLead(String username) {
-        
-        for (Username contributor : contributors) {
+
+        return isMember(username) || isLead(username);
+    }
+
+    public boolean isMember(String username) {
+
+       for (Username contributor : contributors) {
             if (contributor.getUsername().equals(username)) {
                 return true;
             }
         }
+        return false;
+    }
 
+    public boolean isLead(String username) {
         for (Username projectLead : projectLeads) {
             if (projectLead.getUsername().equals(username)) {
                 return true;
             }
         }
-
         return false;
     }
 

Modified: labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/services/credential/src/main/java/org/jboss/labs/auth/impl/UserServiceImpl.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -71,7 +71,18 @@
 			User user = new User("user");
 			user.setPassword(AuthHelper.countMD5("user"));
 
-			try {
+            add("bob");
+            add("tomek");
+            add("adam");
+            add("przemek");
+            add("rysiek");
+            add("james");
+            add("mark");
+            add("cheyenne");
+            add("pawel");
+            add("sacha");
+
+            try {
 				addNewUser(user);
 				addNewUser(admin);
 			} catch (UserExistsException e2) {
@@ -124,7 +135,18 @@
 		return ctx.proceed();
 	}
 
-	public void bindRoleToUser(Principal user, UserRole role)
+    private void add(String u) {
+        User user = new User(u);
+		user.setPassword(AuthHelper.countMD5(u));
+        user.setEmail(u + "@jboss.org");
+        try {
+            addNewUser(user);
+        } catch (UserExistsException e) {
+            e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
+        }
+    }
+
+    public void bindRoleToUser(Principal user, UserRole role)
 			throws NoSuchUserException {
 		User userEn = getUser(user);
 

Modified: labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/ProjectEventsConsumer.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/ProjectEventsConsumer.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/services/events-service/src/main/java/org/jboss/labs/events/ProjectEventsConsumer.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -73,4 +73,12 @@
         }
     }
 
+    @SuppressWarnings("unchecked")
+    public void projectUpdated(String projectId) {
+        List<ProjectEvents> list = storage.findAllListeners (this.getClass().getInterfaces()[0]);
+        for ( ProjectEvents listener : list ) {
+            listener.projectUpdated(projectId);
+        }
+    }
+
 }

Modified: labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceBean.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -188,9 +188,21 @@
 
     }
 
-    public Project merge(Project project) {
+    public Project merge(Project project) throws LabsRollbackException {
 
-        return em.merge(project);
+        Project p = em.merge(project);
+        em.flush();
+
+        try {
+            projectEventsGenerator.projectUpdated(project.getProjectId());
+        } catch (NamingException e) {
+            throw new LabsRollbackException(e);
+        } catch (JMSException e) {
+            throw new LabsRollbackException(e);
+
+        }
+
+        return p;
     }
 
     public void addUserToProject(JoinRequest joinRequest)

Modified: labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceEventListenerBean.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceEventListenerBean.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/core/service/impl/ProjectServiceEventListenerBean.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -71,9 +71,13 @@
         private static final long serialVersionUID = -2472280200806077548L;
 
         public void projectCreated(String projectId) {
-            log.info("Project projectCreated: " + projectId);
+            log.info("Project created: " + projectId);
         }
 
+        public void projectUpdated(String projectId) {
+            log.info("Project updated: " + projectId);
+        }
+
         public void projectLeadAdded(String username, String projectId) {
             log.info("Added project lead: " + username + " project: " + projectId);
 

Modified: labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/events/ProjectEventsGenerator.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/events/ProjectEventsGenerator.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/services/project-service/src/main/java/org/jboss/labs/events/ProjectEventsGenerator.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -102,6 +102,26 @@
 
     }
 
+    public void projectUpdated(String projectId) throws NamingException, JMSException {
+
+        InitialContext ctx = new InitialContext();
+        ProjectEvents projectEvents = (ProjectEvents)ctx.lookup(ProjectEvents.class.getName());
+
+        ProducerObject po = (ProducerObject)projectEvents;
+        ProducerManager manager = po.getProducerManager();
+
+        manager.connect(); // internally create a JMS connection
+        try
+        {
+            projectEvents.projectUpdated(projectId);
+        }
+        finally
+        {
+            manager.close(); // clean up the JMS connection
+        }
+
+    }
+
     public static ProjectEventsGenerator getInstance() {
         if (projectEventsGenerator == null) {
             projectEventsGenerator = new ProjectEventsGenerator();

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/SaveProject.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/SaveProject.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/SaveProject.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -28,6 +28,7 @@
 import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.labs.core.service.ProjectService;
 import org.jboss.labs.injection.seam.Guice;
+import org.jboss.labs.exception.LabsRollbackException;
 import org.jboss.seam.annotations.*;
 import org.jboss.seam.log.Log;
 import org.jboss.seam.faces.FacesMessages;
@@ -47,14 +48,14 @@
 
     @In @Out(scope = ScopeType.CONVERSATION) private Project project;
 
-    public void save() {
+    public void save() throws LabsRollbackException {
 
         project = projectService.merge(project);
   
         facesMessages.add("Your changes have been saved.");
     }
 
-    public String save(String viewId) {
+    public String save(String viewId) throws LabsRollbackException {
         save();
         return viewId;
     }

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ShowView.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ShowView.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/ShowView.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -48,8 +48,12 @@
     }
 
     public String[] getProjectViews() {
-        return new String[] {"Overview", "Members", "Releases",
+        return new String[] {"Overview", "Members" };
+    }
+
+    public String[] getToDoViews() {
+        return new String[] {"Releases",
                              "Licences", "ContributorAgreements",
-                             "Blogs", "Forums"};
+                             "Blogs (external)", "Forums (external)"};
     }
 }
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinProject.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinProject.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinProject.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -23,21 +23,20 @@
 
 package org.jboss.labs.admin.action.user;
 
+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.ContributorAgreement;
+import org.jboss.labs.core.model.Project;
 import org.jboss.labs.core.model.admin.JoinRequest;
 import org.jboss.labs.core.model.auth.User;
-import org.jboss.labs.core.model.Project;
-import org.jboss.labs.core.model.ContributorAgreement;
 import org.jboss.labs.core.service.ProjectService;
 import org.jboss.labs.injection.seam.Guice;
 import org.jboss.seam.ScopeType;
-import org.jboss.seam.faces.FacesMessages;
 import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.Name;
 import org.jboss.seam.annotations.Out;
 import org.jboss.seam.annotations.bpm.CreateProcess;
-import com.google.inject.Inject;
+import org.jboss.seam.faces.FacesMessages;
 
 import javax.persistence.EntityManager;
 import java.util.List;
@@ -47,9 +46,10 @@
 @Guice
 public class JoinProject {
 
-    @In private Project project;
     @In private User user;
 
+    @Out(required = false, scope = ScopeType.CONVERSATION) private Project project;
+
     @Inject private ProjectService projectService;
 
     @Out(required = false) private List<ContributorAgreement> cas;
@@ -58,8 +58,10 @@
     @Out(required = false, scope= ScopeType.BUSINESS_PROCESS) private Integer joinRequestId;
     @In(create = true) private EntityManager entityManager;
 
-    public String join() {
+    public String join(Project project) {
 
+        this.project = project;
+
         if (projectService.canJoin(user.getName(), project)) {
 
             return Pages.JOIN_PROJECT_PAGE;
@@ -74,7 +76,7 @@
 
 
     @CreateProcess(definition = "joinProject")
-    public String createRequest() {
+    public String createRequest(Project project) {
 
         facesMessages.add("Your request has been sent to the project lead.");
 
@@ -83,6 +85,6 @@
 
         joinRequestId = jr.getId();
 
-        return Pages.MEMEBERS_PAGE;
+        return Pages.PROJECTS_PAGE;
     }
 }
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinState.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinState.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/user/JoinState.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -39,53 +39,61 @@
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
  */
 @Name("joinState")
- at Scope(ScopeType.PAGE)
 public class JoinState implements Serializable {
 
+    //TODO initState should be called in @Create
+
     private static final long serialVersionUID = 1769748492233658315L;
 
-    private static enum State { CAN_JOIN, PENDING, MEMEBER }
+    private static enum State { CAN_JOIN, PENDING, MEMEBER, LEAD }
 
     private State state;
 
     @In(create = true) private EntityManager entityManager;
 
-    @In private Project project;
-    @In private User user;
-
-    public boolean canJoin() {
+    public boolean canJoin(Project project, String username) {
+        initState(project, username);
         return State.CAN_JOIN.equals(state);
     }
 
-    public boolean isPending() {
+    public boolean isPending(Project project, String username) {
+        initState(project, username);
         return State.PENDING.equals(state);
     }
 
-    public boolean isMember() {
+    public boolean isMember(Project project, String username) {
+        initState(project, username);
         return State.MEMEBER.equals(state);
     }
-    
-    @Create
-    public void initState() {
 
-        System.out.println("JoinState.initState " + project.getProjectId() + " " + user.getName());
+    public boolean isLead(Project project, String username) {
+        initState(project, username);
+        return State.LEAD.equals(state);    
+    }
 
-        String username = user.getName();
+    public void initState(Project project, String username) {
 
-        if (project.isMemberOrLead(username)) {
+        if (project.isMember(username)) {
             state = State.MEMEBER;
-        } else {
-            boolean joinRequest = 0 < entityManager.createQuery(
-                "SELECT jr FROM JoinRequest jr " +
-                        "WHERE jr.username = :username " +
-                        "AND jr.projectId = :projectId " +
-                        "AND NOT jr.finished = true")
-                .setParameter("username", username)
-                .setParameter("projectId", project.getProjectId())
-                .getResultList()
-                .size();
+            return;
+        }
 
-            state = joinRequest ? State.PENDING : State.CAN_JOIN;
+        if (project.isLead(username)) {
+            state = State.LEAD;
+            return;
         }
+
+        boolean joinRequest = 0 < entityManager.createQuery(
+            "SELECT jr FROM JoinRequest jr " +
+                    "WHERE jr.username = :username " +
+                    "AND jr.projectId = :projectId " +
+                    "AND NOT jr.finished = true")
+            .setParameter("username", username)
+            .setParameter("projectId", project.getProjectId())
+            .getResultList()
+            .size();
+
+        state = joinRequest ? State.PENDING : State.CAN_JOIN;
+
     }
 }
\ No newline at end of file

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java	2008-03-05 13:05:53 UTC (rev 18700)
@@ -69,8 +69,6 @@
 
     public void autoLogin() throws NoSuchUserException {
 
-        System.out.println("Authenticator.autoLogin");
-
         final Principal p = facesContext.getExternalContext().getUserPrincipal();
         final String login = p.getName();
 
@@ -82,7 +80,9 @@
             user = userService.getUserByLogin(login);
         }
 
-        final Set<UserRole> roles = user.getUserRoles();
+        //final Set<UserRole> roles = user.getUserRoles();
+        final Set<UserRole> roles = userService.getRolesForUser(user);
+
         for (UserRole role : roles) {
             actor.getGroupActorIds().add(role.getId());
         }

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/home.xhtml	2008-03-05 13:05:53 UTC (rev 18700)
@@ -19,7 +19,7 @@
                 <s:link value="Projects" action="#{showProjects.showProjects()}"/>
             </li>
             <li>
-                <s:link value="Licences" action="#{showLicenses.showLicenses()}"/>
+                <s:link value="Licences" action="#{showLicenses.showLicenses()}" disabled="true"/>
             </li>
         </ul>
     </h:form>

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/members.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/members.xhtml	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/members.xhtml	2008-03-05 13:05:53 UTC (rev 18700)
@@ -38,13 +38,6 @@
             </tr>
         </table>
         <br/>
-        <h:outputText value="You are not a member of this project."
-                             rendered="#{joinState.canJoin()}"/>
-        <h:commandLink action="#{joinProject.join}" value="Join!"
-                                   rendered="#{joinState.canJoin()}"/>
-          <h:outputText value="Your membership is pending approval."
-                             rendered="#{joinState.isPending()}"/>
-        <br/>
         <s:button value="Back" action="/project/project.seam"/>
     </h:form>
 

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/project.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/project.xhtml	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/project.xhtml	2008-03-05 13:05:53 UTC (rev 18700)
@@ -17,6 +17,11 @@
                      <h:commandLink value="#{v}" action="#{showView.show(v)}"/>
                  </li>
             </ui:repeat>
+            <ui:repeat var="v" value="#{showView.toDoViews}">
+                 <li>
+                     <h:commandLink value="#{v}" action="#{showView.show(v)}" disabled="true"/>
+                 </li>
+            </ui:repeat>
         </ul>
     </h:form>
 

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/projects.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/projects.xhtml	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/projects.xhtml	2008-03-05 13:05:53 UTC (rev 18700)
@@ -24,12 +24,22 @@
            <h:column>
                <f:facet name="header">Name</f:facet>
                <h:outputText value="#{project.name} "/>
-
-               <h:commandLink value="[edit hack]" action="#{viewProject.view(project.projectId)}"/>
-
-               <h:commandLink value="[edit]" action="#{viewProject.view(project.projectId)}"
+           </h:column>
+           <h:column>
+                <h:commandLink value="[edit]" action="#{viewProject.view(project.projectId)}"
                        rendered="#{securityManager.canEdit(project.projectId)}"/>
            </h:column>
+           <h:column>
+               <f:facet name="header">Membership</f:facet>
+               <h:commandLink action="#{joinProject.join(project)}" value="Join project!"
+                                           rendered="#{joinState.canJoin(project, user.name)}"/>
+               <h:outputText value="pending"
+                                     rendered="#{joinState.isPending(project, user.name)}"/>
+               <h:outputText value="contributor"
+                             rendered="#{joinState.isMember(project, user.name)}"/>
+               <h:outputText value="lead"
+                             rendered="#{joinState.isLead(project, user.name)}"/>
+           </h:column>
        </h:dataTable>
     </h:form>
 </ui:define> 

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/user/joinProject.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/user/joinProject.xhtml	2008-03-05 12:25:37 UTC (rev 18699)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/user/joinProject.xhtml	2008-03-05 13:05:53 UTC (rev 18700)
@@ -14,7 +14,7 @@
     <h2>Join Project</h2>
     <h:form id="mainForm" >
         Do you want to apply to join project '#{project.name}'?
-        <h:commandButton value="Yes" action="#{joinProject.createRequest}"/>
+        <h:commandButton value="Yes" action="#{joinProject.createRequest(project)}"/>
         <h:commandButton value="No" action="/project/project.seam"/>
     </h:form>
     




More information about the jboss-svn-commits mailing list