You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by ja...@apache.org on 2012/03/02 17:52:39 UTC
svn commit: r1296305 - in /incubator/rave/trunk:
rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/
rave-components/rave-web/src/main/java/org/apache/rave/portal/web/util/
rave-components/rave-web/src/test/java/org/apac...
Author: jasha
Date: Fri Mar 2 16:52:38 2012
New Revision: 1296305
URL: http://svn.apache.org/viewvc?rev=1296305&view=rev
Log:
RAVE-375 Create user from Admin interface. Patch submitted by Marijan Milicevic
Added:
incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/newaccount.jsp
incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/includes/
incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/includes/new_user_form.jsp
Modified:
incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/UserController.java
incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/util/ViewNames.java
incubator/rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/admin/UserControllerTest.java
incubator/rave/trunk/rave-portal-resources/src/main/resources/messages.properties
incubator/rave/trunk/rave-portal-resources/src/main/resources/messages_nl.properties
incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/users.jsp
incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newaccount.jsp
Modified: incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/UserController.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/UserController.java?rev=1296305&r1=1296304&r2=1296305&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/UserController.java (original)
+++ incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/admin/UserController.java Fri Mar 2 16:52:38 2012
@@ -20,16 +20,21 @@
package org.apache.rave.portal.web.controller.admin;
import org.apache.rave.portal.model.Authority;
+import org.apache.rave.portal.model.NewUser;
import org.apache.rave.portal.model.PortalPreference;
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.model.util.SearchResult;
import org.apache.rave.portal.service.AuthorityService;
+import org.apache.rave.portal.service.NewAccountService;
import org.apache.rave.portal.service.PortalPreferenceService;
import org.apache.rave.portal.service.UserService;
import org.apache.rave.portal.web.util.ModelKeys;
import org.apache.rave.portal.web.util.PortalPreferenceKeys;
import org.apache.rave.portal.web.util.ViewNames;
+import org.apache.rave.portal.web.validator.NewAccountValidator;
import org.apache.rave.portal.web.validator.UserProfileValidator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.GrantedAuthority;
import org.springframework.stereotype.Controller;
@@ -60,6 +65,8 @@ import static org.apache.rave.portal.web
@SessionAttributes({"user", ModelKeys.TOKENCHECK})
public class UserController {
+ private static final Logger logger = LoggerFactory.getLogger(UserController.class);
+
private static final String SELECTED_ITEM = "users";
@Autowired
@@ -74,13 +81,20 @@ public class UserController {
@Autowired
private PortalPreferenceService preferenceService;
- @InitBinder
+ @Autowired
+ private NewAccountValidator newAccountValidator;
+
+ @Autowired
+ private NewAccountService newAccountService;
+
+ @InitBinder(value = {"user"})
public void initBinder(WebDataBinder dataBinder) {
dataBinder.registerCustomEditor(GrantedAuthority.class, new AuthorityEditor());
dataBinder.registerCustomEditor(Authority.class, new AuthorityEditor());
dataBinder.setDisallowedFields("entityId", "username", "password", "confirmPassword");
}
+
@RequestMapping(value = {"/admin/users"}, method = RequestMethod.GET)
public String viewUsers(@RequestParam(required = false, defaultValue = "0") int offset,
@RequestParam(required = false) final String action,
@@ -151,7 +165,51 @@ public class UserController {
status.setComplete();
return "redirect:/app/admin/users?action=delete";
}
-
+
+ @RequestMapping(method = RequestMethod.GET, value = {"/admin/adduser"})
+ public String setUpForm(ModelMap model) {
+ logger.debug("Initializing new account form");
+ AdminControllerUtil.addNavigationMenusToModel(SELECTED_ITEM, (Model) model);
+ model.addAttribute(ModelKeys.NEW_USER, new NewUser());
+ return ViewNames.ADMIN_NEW_ACCOUNT;
+
+ }
+
+ @RequestMapping(value = {"/admin/newaccount", "/admin/newaccount/*"}, method = RequestMethod.POST)
+ public String create(@ModelAttribute NewUser newUser, BindingResult results, Model model) {
+ logger.debug("Creating a new user account");
+ model.addAttribute(ModelKeys.NEW_USER, newUser);
+ newAccountValidator.validate(newUser, results);
+ if (results.hasErrors()) {
+ logger.info("newaccount.jsp: shows validation errors");
+ addNavigationMenusToModel(SELECTED_ITEM, model);
+ return ViewNames.ADMIN_NEW_ACCOUNT;
+ }
+ try {
+ logger.debug("newaccount.jsp: passed form validation");
+ newAccountService.createNewAccount(newUser);
+ addNavigationMenusToModel("home", model);
+ return ViewNames.ADMIN_HOME;
+ } catch (org.springframework.dao.IncorrectResultSizeDataAccessException ex) {
+ addNavigationMenusToModel(SELECTED_ITEM, model);
+ logger.info("Account creation failed: ", ex);
+ results.reject("Account already exists", "Unable to create account");
+ return ViewNames.ADMIN_NEW_ACCOUNT;
+
+ } catch (Exception ex) {
+ if (logger.isDebugEnabled()) {
+ logger.error("Account creation failed: ", ex);
+ } else {
+ logger.error("Account creation failed: {}", ex.getMessage());
+ }
+ results.reject("Unable to create account:" + ex.getMessage(), "Unable to create account");
+ addNavigationMenusToModel(SELECTED_ITEM, model);
+ return ViewNames.ADMIN_NEW_ACCOUNT;
+ }
+
+ }
+
+
@ModelAttribute("authorities")
public SearchResult<Authority> populateAuthorityList() {
return authorityService.getAllAuthorities();
@@ -175,9 +233,16 @@ public class UserController {
this.userProfileValidator = userProfileValidator;
}
- // setters for unit tests
- public void setPreferenceService(PortalPreferenceService preferenceService) {
- this.preferenceService = preferenceService;
+ void setPreferenceService(PortalPreferenceService preferenceService) {
+ this.preferenceService = preferenceService;
+ }
+
+ void setNewAccountValidator(NewAccountValidator newAccountValidator) {
+ this.newAccountValidator = newAccountValidator;
+ }
+
+ void setNewAccountService(NewAccountService newAccountService) {
+ this.newAccountService = newAccountService;
}
@@ -193,7 +258,8 @@ public class UserController {
}
}
- public int getPageSize() {
+
+ public int getPageSize() {
final PortalPreference pageSizePref = preferenceService.getPreference(PortalPreferenceKeys.PAGE_SIZE);
if (pageSizePref == null) {
return DEFAULT_PAGE_SIZE;
Modified: incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/util/ViewNames.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/util/ViewNames.java?rev=1296305&r1=1296304&r2=1296305&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/util/ViewNames.java (original)
+++ incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/util/ViewNames.java Fri Mar 2 16:52:38 2012
@@ -37,6 +37,7 @@ public final class ViewNames {
public static final String PERSON_PROFILE = USER_PREFIX + "personProfile";
public static final String ADMIN_HOME = ADMIN_PREFIX + "home";
+ public static final String ADMIN_NEW_ACCOUNT = ADMIN_PREFIX + "newaccount";
public static final String ADMIN_PREFERENCES = ADMIN_PREFIX + "preferences";
public static final String ADMIN_PREFERENCE_DETAIL = ADMIN_PREFIX + "preferencedetail";
public static final String ADMIN_USERS = ADMIN_PREFIX + "users";
@@ -63,4 +64,4 @@ public final class ViewNames {
public static String getPersonPageView(String layoutName) {
return new StringBuilder(PERSON_PROFILE).append(".").append(layoutName).toString();
}
-}
\ No newline at end of file
+}
Modified: incubator/rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/admin/UserControllerTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/admin/UserControllerTest.java?rev=1296305&r1=1296304&r2=1296305&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/admin/UserControllerTest.java (original)
+++ incubator/rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/admin/UserControllerTest.java Fri Mar 2 16:52:38 2012
@@ -20,14 +20,16 @@
package org.apache.rave.portal.web.controller.admin;
import org.apache.rave.portal.model.Authority;
+import org.apache.rave.portal.model.NewUser;
import org.apache.rave.portal.model.User;
import org.apache.rave.portal.model.util.SearchResult;
import org.apache.rave.portal.service.AuthorityService;
+import org.apache.rave.portal.service.NewAccountService;
import org.apache.rave.portal.service.PortalPreferenceService;
import org.apache.rave.portal.service.UserService;
import org.apache.rave.portal.web.util.ModelKeys;
-import org.apache.rave.portal.web.util.PortalPreferenceKeys;
import org.apache.rave.portal.web.util.ViewNames;
+import org.apache.rave.portal.web.validator.NewAccountValidator;
import org.apache.rave.portal.web.validator.UserProfileValidator;
import org.junit.Before;
import org.junit.Test;
@@ -45,6 +47,7 @@ import static junit.framework.Assert.ass
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertTrue;
import static org.easymock.EasyMock.createMock;
+import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.expectLastCall;
import static org.easymock.EasyMock.replay;
@@ -59,6 +62,7 @@ public class UserControllerTest {
private UserController controller;
private UserService userService;
+ private NewAccountService newAccountService;
private AuthorityService authorityService;
private PortalPreferenceService preferenceService;
private String validToken;
@@ -236,6 +240,70 @@ public class UserControllerTest {
}
@Test
+ public void setupForm() {
+ ModelMap modelMap = new ExtendedModelMap();
+ final String viewName = controller.setUpForm(modelMap);
+ assertEquals(ViewNames.ADMIN_NEW_ACCOUNT, viewName);
+ assertTrue(modelMap.containsAttribute(TABS));
+ assertTrue(modelMap.get(ModelKeys.NEW_USER) instanceof NewUser);
+ }
+
+ @Test
+ public void create_ValidFormSubmitted() throws Exception {
+ final Model model = createNiceMock(Model.class);
+ final NewUser newUser = new NewUser();
+ final BindingResult errors = new BeanPropertyBindingResult(newUser, ModelKeys.NEW_USER);
+ final String username = "username";
+ final String password = "password";
+ final String email = "newuser@example.com";
+ final String confirmPassword = password;
+
+ newUser.setUsername(username);
+ newUser.setPassword(password);
+ newUser.setConfirmPassword(confirmPassword);
+ newUser.setEmail(email);
+
+ expect(userService.getUserByUsername(username)).andReturn(null);
+ expect(userService.getUserByEmail(email)).andReturn(null);
+
+ newAccountService.createNewAccount(newUser);
+
+ expectLastCall();
+ replay(userService, model, newAccountService);
+
+ String result = controller.create(newUser, errors, model);
+ verify(userService, model, newAccountService);
+
+ assertFalse(errors.hasErrors());
+ assertEquals(ViewNames.ADMIN_HOME, result);
+ }
+ @Test
+ public void create_EmptyForm() throws Exception {
+ final Model model = createNiceMock(Model.class);
+ final NewUser newUser = new NewUser();
+ final BindingResult errors = new BeanPropertyBindingResult(newUser, ModelKeys.NEW_USER);
+ final String username = "";
+ final String password = "";
+ final String email = "";
+ final String confirmPassword = password;
+
+ newUser.setUsername(username);
+ newUser.setPassword(password);
+ newUser.setConfirmPassword(confirmPassword);
+ newUser.setEmail(email);
+
+ newAccountService.createNewAccount(newUser);
+
+ replay(model);
+
+ String result = controller.create(newUser, errors, model);
+ verify(model);
+
+ assertTrue(errors.hasErrors());
+ assertEquals(ViewNames.ADMIN_NEW_ACCOUNT, result);
+ }
+
+ @Test
public void getAuthoritiesForModelMap() {
final SearchResult<Authority> authorities = createSearchResultWithTwoAuthorities();
expect(authorityService.getAllAuthorities()).andReturn(authorities);
@@ -261,6 +329,12 @@ public class UserControllerTest {
UserProfileValidator userProfileValidator = new UserProfileValidator(userService);
controller.setUserProfileValidator(userProfileValidator);
validToken = AdminControllerUtil.generateSessionToken();
+
+ final NewAccountValidator validator = new NewAccountValidator(userService);
+ controller.setNewAccountValidator(validator);
+
+ newAccountService = createMock(NewAccountService.class);
+ controller.setNewAccountService(newAccountService);
}
Modified: incubator/rave/trunk/rave-portal-resources/src/main/resources/messages.properties
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/resources/messages.properties?rev=1296305&r1=1296304&r2=1296305&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/resources/messages.properties (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/resources/messages.properties Fri Mar 2 16:52:38 2012
@@ -238,6 +238,7 @@ admin.userdata.enabled=Account enabled
admin.userdata.expired=Account expired
admin.userdata.locked=Account locked
admin.userdata.authorities=Authorities:
+admin.newaccount.title=Create new account
admin.widgets.search=Search Widgets
admin.widgets.search.choosetype=Choose Type...
admin.widgets.search.choosestatus=Choose Status...
Modified: incubator/rave/trunk/rave-portal-resources/src/main/resources/messages_nl.properties
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/resources/messages_nl.properties?rev=1296305&r1=1296304&r2=1296305&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/resources/messages_nl.properties (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/resources/messages_nl.properties Fri Mar 2 16:52:38 2012
@@ -249,6 +249,7 @@ admin.userdata.enabled=Account ingeschak
admin.userdata.expired=Account verlopen
admin.userdata.locked=Account op slot
admin.userdata.authorities=Autoriteiten\:
+admin.newaccount.title=Nieuwe gebruiker aanmaken
admin.widgets.search=Zoek widgets
admin.widgets.search.choosetype=Kies Type...
admin.widgets.search.choosestatus=Kies Status...
Added: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/newaccount.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/newaccount.jsp?rev=1296305&view=auto
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/newaccount.jsp (added)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/newaccount.jsp Fri Mar 2 16:52:38 2012
@@ -0,0 +1,52 @@
+<%--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+ --%>
+<%@ page language="java" trimDirectiveWhitespaces="true" %>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
+<fmt:setBundle basename="messages"/>
+
+<fmt:message key="${pageTitleKey}" var="pagetitle"/>
+<c:set var="canChangeUserStatus" value="${user.username ne loggedInUser}"/>
+<rave:header pageTitle="${pagetitle}"/>
+<rave:admin_tabsheader/>
+<div class="pageContent">
+ <article class="admincontent">
+ <ul class="horizontal-list goback">
+ <li><a href="<spring:url value="/app/admin/users"/>"><fmt:message key="admin.userdetail.goback"/></a>
+ </li>
+ </ul>
+
+ <div class="rightcolumn">
+ <%--RIGHT COLUMN--%>
+ </div>
+
+ <div class="leftcolumn">
+ <section class="formbox">
+ <h2><fmt:message key="admin.userdetail.editdata"/></h2>
+ <%@ include file="/WEB-INF/jsp/views/includes/new_user_form.jsp" %>
+ </section>
+
+ </div>
+
+ <div class="clear-float">
+
+ </div>
+
+
+ </article>
+</div>
Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/users.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/users.jsp?rev=1296305&r1=1296304&r2=1296305&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/users.jsp (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/admin/users.jsp Fri Mar 2 16:52:38 2012
@@ -35,7 +35,7 @@
</c:if>
<ul class="horizontal-list searchbox">
- <li><a href="<spring:url value="/app/newaccount.jsp"/>"><fmt:message key="admin.users.add"/></a></li>
+ <li><a href="<spring:url value="/app/admin/adduser"/>"><fmt:message key="admin.users.add"/></a></li>
<li>
<form action="<spring:url value="/app/admin/users/search"/>" method="GET">
<fieldset>
@@ -86,4 +86,4 @@
<script src="<spring:url value="/script/rave_admin.js"/>"></script>
<script>$(function() {
rave.admin.initAdminUi();
-});</script>
\ No newline at end of file
+});</script>
Added: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/includes/new_user_form.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/includes/new_user_form.jsp?rev=1296305&view=auto
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/includes/new_user_form.jsp (added)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/includes/new_user_form.jsp Fri Mar 2 16:52:38 2012
@@ -0,0 +1,104 @@
+<%@ page language="java" trimDirectiveWhitespaces="true" %>
+<%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
+<%--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you 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.
+ --%>
+
+<form:form id="newAccountForm" commandName="newUser" action="newaccount" method="POST">
+ <fieldset>
+ <p><fmt:message key="form.all.fields.required"/></p>
+
+ <p><form:errors cssClass="error"/></p>
+
+ <p>
+ <label for="userNameField"><fmt:message key="page.general.username"/></label>
+ <form:input id="userNameField" path="username" required="required" autofocus="autofocus"/>
+ <form:errors path="username" cssClass="error"/>
+ </p>
+
+ <p>
+ <label for="passwordField"><fmt:message key="page.general.password"/></label>
+ <form:password id="passwordField" path="password" required="required"/>
+ <form:errors path="password" cssClass="error"/>
+ </p>
+
+ <p>
+ <label for="passwordConfirmField"><fmt:message key="page.general.confirmpassword"/></label>
+ <form:password id="passwordConfirmField" path="confirmPassword" required="required"/>
+ <form:errors path="confirmPassword" cssClass="error"/>
+ </p>
+
+ <p>
+ <label for="emailField"><fmt:message key="page.general.email"/></label>
+ <form:input id="emailField" path="email" required="required"/>
+ <form:errors path="email" cssClass="error"/>
+ </p>
+
+ <p>
+ <label for="pageLayoutField"><fmt:message key="page.general.addpage.selectlayout"/></label>
+ <form:select path="pageLayout" id="pageLayoutField">
+ <form:option value="columns_1" id="columns_1_id"><fmt:message
+ key="page.general.addpage.layout.columns_1"/></form:option>
+ <form:option value="columns_2" id="columns_2_id"><fmt:message
+ key="page.general.addpage.layout.columns_2"/></form:option>
+ <form:option value="columns_2wn" id="columns_2wn_id"><fmt:message
+ key="page.general.addpage.layout.columns_2wn"/></form:option>
+ <form:option value="columns_3" id="columns_3_id"><fmt:message
+ key="page.general.addpage.layout.columns_3"/></form:option>
+ <form:option value="columns_3nwn" id="columns_3nwn_id"><fmt:message
+ key="page.general.addpage.layout.columns_3nwn"/></form:option>
+ <form:option value="columns_4" id="columns_4_id"><fmt:message
+ key="page.general.addpage.layout.columns_4"/></form:option>
+ <form:option value="columns_3nwn_1_bottom" id="columns_3nwn_1_bottom"><fmt:message
+ key="page.general.addpage.layout.columns_3nwn_1_bottom"/></form:option>
+ </form:select>
+ </p>
+ </fieldset>
+
+ <fieldset>${captchaHtml}</fieldset>
+
+ <!-- Personal information optional -->
+ <h2><fmt:message key="page.general.personal.information"/></h2>
+ <fieldset>
+ <p>
+ <label for="firstNameField"><fmt:message key="page.general.first.name"/></label>
+ <form:input id="firstNameField" path="firstName" autofocus="autofocus"/>
+ </p>
+ <p>
+ <label for="lastNameField"><fmt:message key="page.general.last.name"/></label>
+ <form:input id="lastNameField" path="lastName" autofocus="autofocus"/>
+ </p>
+ <p>
+ <label for="displayNameField"><fmt:message key="page.general.display.name"/></label>
+ <form:input id="displayNameField" path="displayName" autofocus="autofocus"/>
+ </p>
+ <p>
+ <label for="statusField"><fmt:message key="page.general.status"/></label>
+ <form:input id="statusField" path="status" autofocus="autofocus"/>
+ </p>
+ <p>
+ <label for="aboutMeField"><fmt:message key="page.general.about.me"/></label>
+ <form:textarea id="aboutMeField" path="aboutMe" autofocus="autofocus"/>
+ </p>
+ </fieldset>
+
+ <fieldset>
+ <fmt:message key="page.newaccount.button" var="submitButtonText"/>
+ <input type="submit" value="${submitButtonText}"/>
+ </fieldset>
+</form:form>
Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newaccount.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newaccount.jsp?rev=1296305&r1=1296304&r2=1296305&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newaccount.jsp (original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/newaccount.jsp Fri Mar 2 16:52:38 2012
@@ -31,89 +31,7 @@ under the License.
<!-- Login information (required) -->
<h2><fmt:message key="page.general.login.information"/></h2>
- <form:form id="newAccountForm" commandName="newUser" action="newaccount" method="POST">
- <fieldset>
- <p><fmt:message key="form.all.fields.required"/></p>
-
- <p><form:errors cssClass="error"/></p>
-
- <p>
- <label for="userNameField"><fmt:message key="page.general.username"/></label>
- <form:input id="userNameField" path="username" required="required" autofocus="autofocus"/>
- <form:errors path="username" cssClass="error"/>
- </p>
-
- <p>
- <label for="passwordField"><fmt:message key="page.general.password"/></label>
- <form:password id="passwordField" path="password" required="required"/>
- <form:errors path="password" cssClass="error"/>
- </p>
-
- <p>
- <label for="passwordConfirmField"><fmt:message key="page.general.confirmpassword"/></label>
- <form:password id="passwordConfirmField" path="confirmPassword" required="required"/>
- <form:errors path="confirmPassword" cssClass="error"/>
- </p>
-
- <p>
- <label for="emailField"><fmt:message key="page.general.email"/></label>
- <form:input id="emailField" path="email" required="required" />
- <form:errors path="email" cssClass="error"/>
- </p>
-
- <p>
- <label for="pageLayoutField"><fmt:message key="page.general.addpage.selectlayout"/></label>
- <form:select path="pageLayout" id="pageLayoutField">
- <form:option value="columns_1" id="columns_1_id"><fmt:message
- key="page.general.addpage.layout.columns_1"/></form:option>
- <form:option value="columns_2" id="columns_2_id"><fmt:message
- key="page.general.addpage.layout.columns_2"/></form:option>
- <form:option value="columns_2wn" id="columns_2wn_id"><fmt:message
- key="page.general.addpage.layout.columns_2wn"/></form:option>
- <form:option value="columns_3" id="columns_3_id"><fmt:message
- key="page.general.addpage.layout.columns_3"/></form:option>
- <form:option value="columns_3nwn" id="columns_3nwn_id"><fmt:message
- key="page.general.addpage.layout.columns_3nwn"/></form:option>
- <form:option value="columns_4" id="columns_4_id"><fmt:message
- key="page.general.addpage.layout.columns_4"/></form:option>
- <form:option value="columns_3nwn_1_bottom" id="columns_3nwn_1_bottom"><fmt:message
- key="page.general.addpage.layout.columns_3nwn_1_bottom"/></form:option>
- </form:select>
- </p>
- </fieldset>
-
- <fieldset>${captchaHtml}</fieldset>
-
- <!-- Personal information optional -->
- <h2><fmt:message key="page.general.personal.information"/></h2>
- <fieldset>
- <p>
- <label for="firstNameField"><fmt:message key="page.general.first.name"/></label>
- <form:input id="firstNameField" path="firstName" autofocus="autofocus"/>
- </p>
- <p>
- <label for="lastNameField"><fmt:message key="page.general.last.name"/></label>
- <form:input id="lastNameField" path="lastName" autofocus="autofocus"/>
- </p>
- <p>
- <label for="displayNameField"><fmt:message key="page.general.display.name"/></label>
- <form:input id="displayNameField" path="displayName" autofocus="autofocus"/>
- </p>
- <p>
- <label for="statusField"><fmt:message key="page.general.status"/></label>
- <form:input id="statusField" path="status" autofocus="autofocus"/>
- </p>
- <p>
- <label for="aboutMeField"><fmt:message key="page.general.about.me"/></label>
- <form:textarea id="aboutMeField" path="aboutMe" autofocus="autofocus"/>
- </p>
- </fieldset>
-
- <fieldset>
- <fmt:message key="page.newaccount.button" var="submitButtonText"/>
- <input type="submit" value="${submitButtonText}"/>
- </fieldset>
- </form:form>
+ <%@ include file="/WEB-INF/jsp/views/includes/new_user_form.jsp" %>
</div>
</tiles:putAttribute>
</tiles:insertDefinition>
@@ -123,4 +41,4 @@ under the License.
<script src="<spring:url value="/script/rave_forms.js"/>"></script>
<script src="<spring:url value="/app/messagebundle/rave_client_messages.js"/>"></script>
-<script>$(document).ready(rave.forms.validateNewAccountForm());</script>
\ No newline at end of file
+<script>$(document).ready(rave.forms.validateNewAccountForm());</script>