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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Mar 4 07:43:35 EST 2008


Author: wrzep
Date: 2008-03-04 07:43:35 -0500 (Tue, 04 Mar 2008)
New Revision: 18673

Removed:
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Logout.java
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/views/admin/src/main/java/org/jboss/labs/admin/action/project/CreateProjectRequest.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/RequestProject.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/java/org/jboss/labs/admin/validator/UniqueProjectIdValidator.java
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/createProject.xhtml
   labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/overview.xhtml
Log:
JBLAB-904 unique projectId pre-validation


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-04 10:57:49 UTC (rev 18672)
+++ labs/jbosslabs/labs-3.0-build/core/core-model/src/main/java/org/jboss/labs/core/model/admin/ProjectRequest.java	2008-03-04 12:43:35 UTC (rev 18673)
@@ -28,6 +28,7 @@
 import javax.persistence.Entity;
 import javax.persistence.GeneratedValue;
 import javax.persistence.Id;
+import javax.persistence.Transient;
 import java.io.Serializable;
 
 /**
@@ -51,7 +52,6 @@
     protected boolean userForum = true;
     protected boolean announceForum = true;
 
-
     private String escape(String string, String w) {
 
         StringBuilder sb = new StringBuilder();
@@ -96,18 +96,6 @@
 
     public void setName(String name) {
         this.name = name;
-
-       /* if (name != null) {
-            if (projectId == null) {
-
-                String projectId = escape(name.toLowerCase(), "-");
-                setProjectId(projectId);
-            }
-            if (jiraKey == null) {
-                String jiraKey = escape(name.toUpperCase().replace("JBOSS", "JB"), "");
-                setProjectKey(jiraKey);
-            }
-        }*/
     }
 
     public String getEmail() {

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/CreateProjectRequest.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/CreateProjectRequest.java	2008-03-04 10:57:49 UTC (rev 18672)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/CreateProjectRequest.java	2008-03-04 12:43:35 UTC (rev 18673)
@@ -26,6 +26,8 @@
 import org.jboss.labs.admin.Pages;
 import org.jboss.labs.core.model.admin.ProjectRequest;
 import org.jboss.labs.core.model.auth.User;
+import org.jboss.labs.core.service.ProjectService;
+import org.jboss.labs.injection.seam.Guice;
 import org.jboss.seam.ScopeType;
 import org.jboss.seam.core.Conversation;
 import org.jboss.seam.annotations.In;
@@ -33,22 +35,32 @@
 import org.jboss.seam.annotations.Out;
 import org.jboss.seam.annotations.Begin;
 
+import java.util.List;
 
+import com.google.inject.Inject;
+
+
 @Name("createProject")
+ at Guice
 public class CreateProjectRequest {
 
     @Out(scope= ScopeType.CONVERSATION) private ProjectRequest req;
-    //@In private User user; TODO uncomment after auth db is set up
+    @Out(scope = ScopeType.CONVERSATION) private List<String> projectIds;
 
+    @Inject private ProjectService projectService;
+
+    @In private User user;
+
     @In private Conversation conversation;
 
     @Begin(nested = true)
     public String create() {
 
         req = new ProjectRequest();
-        req.setEmail("myemail at jboss.org");
-        //TODO change to req.setEmail(user.getEmail());
+        req.setEmail(user.getEmail());
 
+        projectIds = projectService.getProjectIds();
+
         conversation.setDescription("New Project Request");
 
         return Pages.CREATE_PROJECT_PAGE;

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/RequestProject.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/RequestProject.java	2008-03-04 10:57:49 UTC (rev 18672)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/action/project/RequestProject.java	2008-03-04 12:43:35 UTC (rev 18673)
@@ -32,6 +32,7 @@
 import org.jboss.seam.faces.FacesMessages;
 
 import javax.persistence.EntityManager;
+import java.util.List;
 
 /**
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
@@ -41,8 +42,10 @@
 
     @In private ProjectRequest req;
 
-    @Out(scope= ScopeType.BUSINESS_PROCESS) private Integer projectRequestId;
+    @Out(scope= ScopeType.BUSINESS_PROCESS, required = false) private Integer projectRequestId;
 
+    @In private List<String> projectIds;
+
     @In private Actor actor;
     @In private FacesMessages facesMessages;
 
@@ -52,8 +55,6 @@
     @CreateProcess(definition = "createProject")
     public String request() {
 
-       System.out.println("invoke " + req.getProjectId());
-
         req.setLeadUsername(actor.getId());
 
         entityManager.persist(req);

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-04 10:57:49 UTC (rev 18672)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Authenticator.java	2008-03-04 12:43:35 UTC (rev 18673)
@@ -74,12 +74,7 @@
         }
 
         if (user == null) {
-            try {
-                user = userService.getUserByLogin(login);
-            } catch (NoSuchUserException e) {
-                user = new User(); //TODO get rid of this 2 lines
-                user.setName(actor.getId());
-            }
+            user = userService.getUserByLogin(login);
         }
     }
 

Deleted: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Logout.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Logout.java	2008-03-04 10:57:49 UTC (rev 18672)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/auth/Logout.java	2008-03-04 12:43:35 UTC (rev 18673)
@@ -1,64 +0,0 @@
-/*
-* JBoss Labs. http://labs.jboss.com/jbosslabs
-*
-* Copyright © 2008  Red Hat Middleware, LLC. All rights reserved.
-*
-* This copyrighted material is made available to anyone wishing to use,
-* modify, copy, or redistribute it subject to the terms and conditions
-* of the GNU Lesser General Public License, v. 2.1.
-*
-* This program is distributed in the hope that it will be useful,
-* but WITHOUT A WARRANTY; without even the implied warranty of
-* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-* GNU Lesser General Public License for more details.
-*
-* You should have received a copy of the GNU Lesser General Public
-* License, v.2.1 along with this distribution; if not, write to the Free
-* Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-* 02110-1301, USA.
-*
-* Red Hat Author(s): Bob McWhirter, Przemyslaw Dej, Ryszard Kozmik,
-*     Tomasz Szymanski, Adam Warski, Pawel Wrzeszcz
-*/
-
-package org.jboss.labs.admin.auth;
-
-import org.jboss.seam.annotations.In;
-import org.jboss.seam.annotations.Logger;
-import org.jboss.seam.annotations.Name;
-import org.jboss.seam.bpm.Actor;
-import org.jboss.seam.log.Log;
-import org.jboss.labs.admin.Pages;
-
-import javax.faces.context.ExternalContext;
-import javax.faces.context.FacesContext;
-import java.io.IOException;
-
-/**
- * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
- */
- at Name("logout")
-public class Logout {
-
-    @In private Actor actor;
-
-    @In private FacesContext facesContext;
-
-    @Logger private Log log;
-
-
-    public String logout() {
-        System.out.println("logout");
-        actor.setId(null);
-        actor.getGroupActorIds().clear();
-
-	    ExternalContext externalContext = facesContext.getExternalContext();
-        try {
-            externalContext.redirect("josso_logout/");
-        } catch (IOException e) {
-            log.error(e);
-        }
-
-        return Pages.ERROR_PAGE;
-    }
-}

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/validator/UniqueProjectIdValidator.java
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/validator/UniqueProjectIdValidator.java	2008-03-04 10:57:49 UTC (rev 18672)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/java/org/jboss/labs/admin/validator/UniqueProjectIdValidator.java	2008-03-04 12:43:35 UTC (rev 18673)
@@ -28,34 +28,30 @@
 import org.jboss.labs.exception.admin.ProjectNotFoundException;
 import org.jboss.labs.injection.seam.Guice;
 import org.jboss.seam.annotations.Name;
+import org.jboss.seam.annotations.In;
 import org.jboss.seam.annotations.faces.Validator;
 
 import javax.faces.application.FacesMessage;
 import javax.faces.component.UIComponent;
 import javax.faces.context.FacesContext;
 import javax.faces.validator.ValidatorException;
+import java.util.List;
 
 /**
  * @author Pawel Wrzeszcz (pwrzeszcz [at] jboss . org)
  */
 @Name("uniqueProjectIdValidator")
 @Validator
- at Guice
 public class UniqueProjectIdValidator implements javax.faces.validator.Validator {
 
-    @Inject private ProjectService projectService;
+    @In private List<String> projectIds;
 
     public void validate(FacesContext facesContext, UIComponent uiComponent, Object o) throws ValidatorException {
 
         String projectId = (String) o;
 
-        try {
-            projectService.getProject(projectId);
-        } catch (ProjectNotFoundException e) {
-            // do nothing
-            return;
+        if (projectIds.contains(projectId)) {
+            throw new ValidatorException(new FacesMessage("Project '" + projectId + "' already exsists."));
         }
-
-        throw new ValidatorException(new FacesMessage("Project '" + projectId + "' already exsists."));
     }
 }

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/createProject.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/createProject.xhtml	2008-03-04 10:57:49 UTC (rev 18672)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/createProject.xhtml	2008-03-04 12:43:35 UTC (rev 18673)
@@ -10,34 +10,29 @@
                 template="../layout/template.xhtml">
 
 <ui:define name="body">
-    
-    <rich:panel>
+
         <f:facet name="header">Create Project Request</f:facet>
         <h:form id="mainForm" >
-            <h:messages styleClass="message" id="messages"/>
+             <h:messages styleClass="message"/>
              <s:validateAll>
              <table>
                 <tr>
-                    <th>Email (TODO: get email from UserService):</th>
+                    <th>Email:</th>
                     <td>
-                        <h:inputText value="#{req.email}" required="true" id="email" requiredMessage="Email is required">
-                            <f:validator validatorId="emailValidator"/>
-                        </h:inputText>
+                        <h:outputText value="#{req.email}" />
                     </td>
                 </tr>
                  <tr>
                     <th>Project Name:</th>
                     <td>
-                        <h:inputText value="#{req.name}" id="projectName" required="true" requiredMessage="Project Name is required."/>
+                        <h:inputText value="#{req.tmpName}" id="projectName" required="true" requiredMessage="Project Name is required."/>
                     </td>
                 </tr>
                 <tr>
                     <th>Project ID:</th>
                     <td>
                         <h:inputText value="#{req.projectId}" id="projectId" required="true" requiredMessage="Project ID is required.">
-                            <ui:remove>
                                 <f:validator validatorId="uniqueProjectIdValidator"/>
-                            </ui:remove>
                         </h:inputText>
                     </td>
                 </tr>
@@ -65,7 +60,7 @@
             </s:validateAll>
             <h:commandButton value="Submit" action="#{requestProject.request}" />
         </h:form>
-    </rich:panel>
+
     
 </ui:define> 
 </ui:composition>

Modified: labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/overview.xhtml
===================================================================
--- labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/overview.xhtml	2008-03-04 10:57:49 UTC (rev 18672)
+++ labs/jbosslabs/labs-3.0-build/views/admin/src/main/webapp/project/overview.xhtml	2008-03-04 12:43:35 UTC (rev 18673)
@@ -41,19 +41,15 @@
             <tr>
                 <th>#{(empty project.commiterRepository) ? '' : project.repositoryType} Repository:</th>
                 <td>
-                    #{project.anonymusRepository}<br/>
-                    #{project.commiterRepository}
+                    <h:outputLink value="#{project.anonymusRepository}">
+                        #{project.anonymusRepository}
+                    </h:outputLink><br/>
+                    <h:outputLink value="#{project.commiterRepository}">
+                        #{project.commiterRepository}    
+                    </h:outputLink>
                 </td>
             </tr>
             <tr>
-                <th>Downloads:</th>
-                <td><h:inputTextarea value="#{project.downloadsURL}"/></td>
-            </tr>
-            <tr>
-                <th>Documentation:</th>
-                <td><h:inputTextarea value="#{project.documentationURL}"/></td>
-            </tr>
-            <tr>
                 <th>Quick links:</th>
                 <td>
                     <h:dataTable value="#{project.linkList}" var="link">
@@ -64,7 +60,9 @@
                         </h:column>
                         <h:column>
                             <f:facet name="header">URL</f:facet>
-                            #{link.url}
+                            <h:outputLink value="#{link.url}">
+                                #{link.url}
+                            </h:outputLink>
                             <f:facet name="footer"><h:inputText value="#{newLink.url}"/></f:facet>
                         </h:column>
                         <h:column>




More information about the jboss-svn-commits mailing list