rave-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From carlu...@apache.org
Subject svn commit: r1293256 - in /incubator/rave/trunk: rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ rave-components/rave-web/src/main/java/org/apache/rave/portal/web/util/ rave-components/rave-web/src/test/java/org/apache/rav...
Date Fri, 24 Feb 2012 13:59:17 GMT
Author: carlucci
Date: Fri Feb 24 13:59:16 2012
New Revision: 1293256

URL: http://svn.apache.org/viewvc?rev=1293256&view=rev
Log:
Code in support of RAVE-456: View Person Profile:
- merged existing edit profile code into new person profile page
- removed the old person profile entry points and jsp pages
- updated profile link in page header to point to new person profile entry point

Removed:
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/profile.jsp
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/profile_about.jsp
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/profile_friend_finder.jsp
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/profile_posts.jsp
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/profile_widgets.jsp
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_profile.js
Modified:
    incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.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/ProfileControllerTest.java
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/page.jsp
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp
    incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_person_profile.js

Modified: incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java?rev=1293256&r1=1293255&r2=1293256&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java
(original)
+++ incubator/rave/trunk/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/controller/ProfileController.java
Fri Feb 24 13:59:16 2012
@@ -40,20 +40,18 @@ import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
 
 @Controller
-@RequestMapping(value = {"/userInfo/*", "/userInfo", "/userInfo/"})
+@RequestMapping(value = {"/person/*", "/person"})
 public class ProfileController {
 
 	private final Logger logger = LoggerFactory.getLogger(getClass());
 	
 	private final UserService userService;
 	private final PageService pageService;
-	private final PageLayoutService pageLayoutService;
 
 	@Autowired
-	public ProfileController(UserService userService, PageService pageService, PageLayoutService
pageLayoutService) {
+	public ProfileController(UserService userService, PageService pageService) {
 		this.userService = userService;
         this.pageService = pageService;
-        this.pageLayoutService = pageLayoutService;
 	}
 
     /**
@@ -64,37 +62,17 @@ public class ProfileController {
      * @param referringPageId		page reference id (optional)
 	 * @return the view name of the user profile page
 	 */
-	@RequestMapping(value = {"/person/{username:.*}"}, method = RequestMethod.GET)
-	public String viewPersonProfile(@PathVariable String username, ModelMap model, @RequestParam(required
= false) Long referringPageId) {
+	@RequestMapping(value = {"/{username:.*}"}, method = RequestMethod.GET)
+	public String viewProfile(@PathVariable String username, ModelMap model, @RequestParam(required
= false) Long referringPageId) {
 		logger.debug("Viewing person profile for: " + username);
 		User user = userService.getUserByUsername(username);
         Page personProfilePage = pageService.getDefaultPageFromList(pageService.getAllPersonProfilePages(user.getEntityId()));
-        addAttributesToModel(model, user, referringPageId, ViewNames.ABOUT_TAG_PAGE);
+        addAttributesToModel(model, user, referringPageId);
         model.addAttribute(ModelKeys.PAGE, personProfilePage);
 		return ViewNames.getPersonPageView(personProfilePage.getPageLayout().getCode());
 	}
 	
 	/**
-	 * Views the main page of the user profile
-	 *
-	 * @param model           			{@link Model} map
-	 * @param referringPageId			page reference id
-	 * @return the view name of the user profile page
-	 */
-	@RequestMapping(method = RequestMethod.GET)
-	public String setUpForm(ModelMap model, 
-							@RequestParam Long referringPageId) {
-		logger.debug("Initializing User Info page");
-		
-		User user = userService.getAuthenticatedUser();
-		
-		//set the posts tag page as default for first setup 
-        addAttributesToModel(model, user, referringPageId, ViewNames.ABOUT_TAG_PAGE);
-
-		return ViewNames.USER_INFO;
-	}
-	
-	/**
 	 * Updates the user's personal information
 	 *
 	 * @param model           			{@link Model} map
@@ -102,37 +80,36 @@ public class ProfileController {
 	 * @param updatedUser				Updated user information 
 	 * @return the view name of the user profile page
 	 */
-	@RequestMapping(method = RequestMethod.POST)
-	public String updateUserProfile(ModelMap model, 
-									@RequestParam Long referringPageId,
-									@ModelAttribute("updatedUser") User updatedUser) {
-		logger.debug("Updating User's profile information");
-		
-		User user = userService.getAuthenticatedUser();
-				                
+    @RequestMapping(method = RequestMethod.POST)
+    public String updateProfile(ModelMap model,
+                                @RequestParam(required = false) Long referringPageId,
+                                @ModelAttribute("updatedUser") User updatedUser) {
+        logger.info("Updating " + updatedUser.getUsername() + " profile information");
+
+        User user = userService.getAuthenticatedUser();
+
         //set the updated fields for optional information
-		user.setGivenName(updatedUser.getGivenName());
-		user.setFamilyName(updatedUser.getFamilyName());
-		user.setDisplayName(updatedUser.getDisplayName());
-		user.setAboutMe(updatedUser.getAboutMe());
-		user.setStatus(updatedUser.getStatus());
-		user.setEmail(updatedUser.getEmail());
-		
-		//update the user profile
-		userService.updateUserProfile(user);
-			        
-		//set about tag page as default page for the changes to be visible
-		addAttributesToModel(model, user, referringPageId, ViewNames.ABOUT_TAG_PAGE);
-		
-		return ViewNames.USER_INFO;
-	}
+        user.setGivenName(updatedUser.getGivenName());
+        user.setFamilyName(updatedUser.getFamilyName());
+        user.setDisplayName(updatedUser.getDisplayName());
+        user.setAboutMe(updatedUser.getAboutMe());
+        user.setStatus(updatedUser.getStatus());
+        user.setEmail(updatedUser.getEmail());
+
+        //update the user profile
+        userService.updateUserProfile(user);
+
+        //set about tag page as default page for the changes to be visible
+        addAttributesToModel(model, user, referringPageId);
+
+        return ViewNames.REDIRECT + "app/person/" + user.getUsername();
+    }
 	
 	/*
 	 * Function to add attributes to model map
 	 */
-	private void addAttributesToModel(ModelMap model, User user, Long referringPageId, String
defaultTagPage) {
+	private void addAttributesToModel(ModelMap model, User user, Long referringPageId) {
     	model.addAttribute(ModelKeys.USER_PROFILE, user);
     	model.addAttribute(ModelKeys.REFERRING_PAGE_ID, referringPageId);
-    	model.addAttribute(ModelKeys.DEFAULT_TAG_PAGE, defaultTagPage);
     }
 }

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=1293256&r1=1293255&r2=1293256&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 Feb 24 13:59:16 2012
@@ -34,7 +34,6 @@ public final class ViewNames {
     public static final String ADD_WIDGET_FORM = USER_PREFIX + "addwidget";
     public static final String NEW_ACCOUNT = USER_PREFIX + "newaccount";
     public static final String USER_PROFILE = USER_PREFIX + "userProfile";
-    public static final String USER_INFO = USER_PREFIX + "profile";
     public static final String PERSON_PROFILE = USER_PREFIX + "personProfile";
 
     public static final String ADMIN_HOME = ADMIN_PREFIX + "home";
@@ -52,13 +51,7 @@ public final class ViewNames {
     public static final String USERNAME_REQUEST = USER_PREFIX + "retrieveusername";
     public static final String PASSWORD_CHANGE = USER_PREFIX + "changepassword";
 
-
-
     public static final String REDIRECT = "redirect:/";
-
-    public static final String POSTS_TAG_PAGE = "postsTagPage";
-    public static final String ABOUT_TAG_PAGE = "aboutTagPage";
-
     public static final String REDIRECT_NEW_PASSWORD = REDIRECT + "app/newpassword";
     public static final String REDIRECT_RETRIEVE_USERNAME = REDIRECT + "app/retrieveusername";
 

Modified: incubator/rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/ProfileControllerTest.java
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/ProfileControllerTest.java?rev=1293256&r1=1293255&r2=1293256&view=diff
==============================================================================
--- incubator/rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/ProfileControllerTest.java
(original)
+++ incubator/rave/trunk/rave-components/rave-web/src/test/java/org/apache/rave/portal/web/controller/ProfileControllerTest.java
Fri Feb 24 13:59:16 2012
@@ -19,15 +19,17 @@
 
 package org.apache.rave.portal.web.controller;
 
+import static org.easymock.EasyMock.*;
+import static org.hamcrest.CoreMatchers.is;
 import static org.junit.Assert.*;
 
 import org.apache.rave.portal.model.Page;
 import org.apache.rave.portal.model.PageLayout;
 import org.apache.rave.portal.model.User;
-import org.apache.rave.portal.service.PageLayoutService;
 import org.apache.rave.portal.service.PageService;
 import org.apache.rave.portal.service.UserService;
 import org.apache.rave.portal.web.util.ModelKeys;
+import org.apache.rave.portal.web.util.ViewNames;
 import org.hamcrest.CoreMatchers;
 import org.junit.Before;
 import org.junit.Test;
@@ -36,21 +38,15 @@ import org.springframework.ui.ModelMap;
 import java.util.ArrayList;
 import java.util.List;
 
-import static org.easymock.EasyMock.createMock;
-import static org.easymock.EasyMock.expect;
-import static org.easymock.EasyMock.replay;
-import static org.easymock.EasyMock.verify;
-
 /**
  * Test class for {@link ProfileController}
  */
 public class ProfileControllerTest {
 
-private ProfileController userInfoController;
+    private ProfileController profileController;
 	
 	private UserService userService;
 	private PageService pageService;
-	private PageLayoutService pageLayoutService;
 
     private Page defaultPage, otherPage;
     private List<Page> allProfilePages;
@@ -66,8 +62,7 @@ private ProfileController userInfoContro
 	public void setup() {
 		userService = createMock(UserService.class);
 		pageService = createMock(PageService.class);
-		pageLayoutService = createMock(PageLayoutService.class);
-		userInfoController = new ProfileController(userService, pageService, pageLayoutService);
+		profileController = new ProfileController(userService, pageService);
 
         validPageLayout = new PageLayout();
         validPageLayout.setEntityId(33L);
@@ -87,11 +82,11 @@ private ProfileController userInfoContro
 	}
 	
 	@Test
-	public void viewPersonProfile_ShouldAddAttributeForUser() {
+	public void viewPerson_ShouldAddAttributeForUser() {
 		//creating a mock user
 		final User user = new User();
 		final ModelMap model = new ModelMap();
-		final int modelSize = 4;
+		final int modelSize = 3;
 		final String username="Canonical";
         user.setUsername(username);
         user.setEntityId(USER_ID);
@@ -100,13 +95,10 @@ private ProfileController userInfoContro
 		expect(userService.getUserByUsername(username)).andReturn(user).anyTimes();
         expect(pageService.getAllPersonProfilePages(user.getEntityId())).andReturn(allProfilePages);
         expect(pageService.getDefaultPageFromList(allProfilePages)).andReturn(defaultPage);
-        expect(pageLayoutService.getAll()).andReturn(allPageLayouts);
 
-		replay(userService);
-        replay(pageService);
-        replay(pageLayoutService);
+		replay(userService, pageService);
 
-		userInfoController.viewPersonProfile(username, model, null);
+		String view = profileController.viewProfile(username, model, null);
 		
 		//assert that the model is not null
 		assertThat(model, CoreMatchers.notNullValue());
@@ -119,49 +111,24 @@ private ProfileController userInfoContro
 		
 		//assert that the model does not contain authenticated user as null
 		assertThat(model.get(userProfile), CoreMatchers.notNullValue());
+
+        assertThat(view, is(ViewNames.PERSON_PROFILE + "." + VALID_PAGE_LAYOUT_CODE));
 		
-		verify(userService);
+		verify(userService, pageService);
 	}
 
-    @Test
-	public void setUpForm_ShouldAddAttributeForAuthenticatedUser() {
-		//creating a mock authenticated user
-		final User authUser = new User();
-		final ModelMap model = new ModelMap();
-		final int modelSize = 3;
-		final long referringPageId = 1L;
-		String userProfile = new String(ModelKeys.USER_PROFILE);
-
-		expect(userService.getAuthenticatedUser()).andReturn(authUser).anyTimes();
-		replay(userService);
-
-		userInfoController.setUpForm(model, referringPageId);
-
-		//assert that the model is not null
-		assertThat(model, CoreMatchers.notNullValue());
-
-		//assert that the model size is three
-		assertThat(model.size(), CoreMatchers.equalTo(modelSize));
-
-		//assert that the model does contain an attribute associated with the authenticated user
after setUpForm() is called
-		assertThat(model.containsAttribute(userProfile), CoreMatchers.equalTo(true));
-
-		//assert that the model does not contain authenticated user as null
-		assertThat(model.get(userProfile), CoreMatchers.notNullValue());
-
-		verify(userService);
-	}
-	
 	@Test
-	public void updateUserProfile_ShouldUpdateAuthenticatedUser() {
+	public void updateProfile_ShouldUpdateAuthenticatedUser() {
 		//This test will just show the successful updation of user status
 		final ModelMap model = new ModelMap();
-		final int modelSize = 3;
+		final int modelSize = 2;
 		final long referringPageId = 1L;
+        final String USERNAME = "canonical";
 		String userProfile = new String(ModelKeys.USER_PROFILE);
 		
 		//creating a mock authenticated user
 		final User authUser = new User();
+        authUser.setUsername(USERNAME);
 		//set existing status
 		authUser.setStatus("Single");
 		//set other paramters
@@ -183,7 +150,7 @@ private ProfileController userInfoContro
 		userService.updateUserProfile(authUser);
 		replay(userService);
 		
-		userInfoController.updateUserProfile(model, referringPageId, updatedUser);
+		String view = profileController.updateProfile(model, referringPageId, updatedUser);
 		
 		//assert that the model is not null
 		assertThat(model, CoreMatchers.notNullValue());
@@ -199,6 +166,8 @@ private ProfileController userInfoContro
 		
 		//assert that the status of user is updated
 		assertEquals(updatedUser.getStatus(), authUser.getStatus());
+        
+        assertThat(view, is("redirect:/app/person/" + USERNAME));
 		
 		verify(userService);
 		

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/page.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/page.jsp?rev=1293256&r1=1293255&r2=1293256&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/page.jsp
(original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/page.jsp
Fri Feb 24 13:59:16 2012
@@ -26,7 +26,8 @@
     <nav class="topnav">
         <ul class="horizontal-list">
         	<li>
-                <a href="<spring:url value="/app/userInfo?referringPageId=${page.entityId}"
/>">
+                <c:set var="profileUrl">/app/person/<sec:authentication property="principal.username"
/>?referringPageId=${page.entityId}</c:set>
+                <a href="<spring:url value="${profileUrl}" />">
                   <fmt:message key="page.profile.title">
                   	<fmt:param><c:out value="${page.owner.displayName}"/></fmt:param>
                   </fmt:message>

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp?rev=1293256&r1=1293255&r2=1293256&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp
(original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/WEB-INF/jsp/views/personProfile.jsp
Fri Feb 24 13:59:16 2012
@@ -73,39 +73,68 @@
 </header>
 <div id="person-profile-left">
     <div id="personProfileContent">
-        <!-- Display personal information of user-->
-        <h2><fmt:message key="page.personProfile.personal.info" /></h2>
-        <p>
-            <fmt:message key="page.personProfile.first.name"/>
-            <c:out value="${userProfile.givenName}"/>
-        </p>
-        <p>
-            <fmt:message key="page.personProfile.last.name"/> 
-            <c:out value="${userProfile.familyName}"/>
-        </p>
-        <p>
-            <fmt:message key="page.personProfile.display.name"/>
-            <c:out value="${userProfile.displayName}"/>
-        </p>
-            
-        <!-- Display basic information of user -->
-        <h2><fmt:message key="page.personProfile.basic.info" /></h2>
-        <p>
-            <fmt:message key="page.personProfile.about.me"/>
-            <c:out value=" ${userProfile.aboutMe}"/>
-        </p>
-        <p>
-            <fmt:message key="page.personProfile.status"/>
-            <c:out value=" ${userProfile.status}"/>    		
-        </p> 			
-        
-        <!-- Display contact information of user -->
-        <h2><fmt:message key="page.personProfile.contact.info" /></h2>
-        <p>
-            <fmt:message key="page.personProfile.email"/>
-            <c:out value=" ${userProfile.email}"/>    		
-        </p>
+        <form:form id="editAccountForm" commandName="userProfile" action="person?referringPageId=${referringPageId}"
method="POST">
+            <!-- Display personal information of user-->
+            <h2><fmt:message key="page.profile.personal.info" /></h2>
+            <fieldset>
+                <p>
+                    <label for="givenNameField"><fmt:message key="page.profile.first.name"/></label>
+                    <label id="givenName" class="profile-info-visible"><c:out value="${userProfile.givenName}"/></label>
+                    <form:input id="givenNameField" path="givenName" class="profile-info-hidden"
value="${userProfile.givenName}" />
+                </p>
+                <br>
+                <p>
+                    <label for="familyNameField"><fmt:message key="page.profile.last.name"/></label>
+                    <label id="familyName" class="profile-info-visible"><c:out value="${userProfile.familyName}"/></label>
+                    <form:input id="familyNameField" path="familyName" class="profile-info-hidden"
value="${userProfile.familyName}"/>
+                </p>
+                <p>
+                    <label for="displayNameField" class="profile-info-hidden"><fmt:message
key="page.profile.display.name"/></label>
+                    <form:input id="displayNameField" path="displayName" class="profile-info-hidden"
value="${userProfile.displayName}"/>
+                </p>
+            </fieldset>
+
+            <!-- Display basic information of user -->
+            <h2><fmt:message key="page.profile.basic.info" /></h2>
+            <fieldset>
+                <p>
+                    <label for="aboutMeField"><fmt:message key="page.profile.about.me"/></label>
+                    <label id="aboutMe" class="profile-info-visible"><c:out value="
${userProfile.aboutMe}"/></label>
+                    <form:textarea id="aboutMeField" path="aboutMe" class="profile-info-hidden"
value="${userProfile.aboutMe}" />
+                </p>
+                <br>
+                <p>
+                    <label for="statusField"><fmt:message key="page.profile.status"/></label>
+                    <label id="status" class="profile-info-visible"><c:out value="
${userProfile.status}"/></label>
+                    <form:input id="statusField" path="status" class="profile-info-hidden"
value="${userProfile.status}" />
+                </p>
+            </fieldset>
+
+            <!-- Display contact information of user -->
+            <h2><fmt:message key="page.profile.contact.info" /></h2>
+            <fieldset>
+                <p>
+                    <label for="emailField"><fmt:message key="page.profile.email"/></label>
+                    <label id="email" class="profile-info-visible"><c:out value="
${userProfile.email}"/></label>
+                    <form:input id="emailField" path="email" class="profile-info-hidden"
value="${userProfile.email}" />
+                </p>
+            </fieldset>
+            <%-- only display the edit profile button if the current logged in user matches
the profile being viewed --%>
+            <c:set var="currentUsername"><sec:authentication property="principal.username"
/></c:set>
+            <c:if test="${currentUsername == userProfile.username}">
+                <fieldset>
+                    <p>
+                        <input type="hidden" id="profileInfo" value="profile-info" />
+                        <button type="button" id="profileEdit" class="profile-info-visible"><fmt:message
key="page.profile.edit"/></button>
+                        <fmt:message key="page.profile.save" var="save"/>
+                        <input type="submit" class="profile-info-hidden" value="${save}"/>
+                        <button type="button" class="profile-info-hidden" id="cancelEdit"><fmt:message
key="page.profile.cancel"/></button>
+                    </p>
+                </fieldset>
+            </c:if>
+        </form:form>
     </div>
+
     <%--render the sub pages --%>
     <div id="pageContent" class="person-profile-page-content">
         <div class="regions">
@@ -154,4 +183,4 @@
         rave.layout.init();
         rave.personprofile.init();
     });
-</script>
+</script>
\ No newline at end of file

Modified: incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_person_profile.js
URL: http://svn.apache.org/viewvc/incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_person_profile.js?rev=1293256&r1=1293255&r2=1293256&view=diff
==============================================================================
--- incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_person_profile.js
(original)
+++ incubator/rave/trunk/rave-portal-resources/src/main/webapp/script/rave_person_profile.js
Fri Feb 24 13:59:16 2012
@@ -20,7 +20,24 @@
 var rave = rave || {};
 rave.personprofile = rave.personprofile || (function() {
 	function init() {
+        // setup the sub page tabs
         $("#personProfileSubPages").tabs();
+
+        // setup the edit button if it exists
+        var $editButton = $("#profileEdit");
+        if ($editButton) {
+            $editButton.click(function() {
+                rave.api.handler.userProfileEditHandler(true);
+            });
+        }
+
+        // setup the cancel button if it exists
+        var $cancelButton = $("#cancelEdit");
+        if ($cancelButton) {
+            $cancelButton.click(function() {
+                rave.api.handler.userProfileEditHandler(false);
+            });
+        }
     }
 	
 	return {



Mime
View raw message