You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rave.apache.org by mf...@apache.org on 2014/08/12 22:56:52 UTC
[1/2] git commit: RAVE-1092 | Page clone API should return the cloned
page
Repository: rave
Updated Branches:
refs/heads/master eaec64307 -> ae28a21df
RAVE-1092 | Page clone API should return the cloned page
Project: http://git-wip-us.apache.org/repos/asf/rave/repo
Commit: http://git-wip-us.apache.org/repos/asf/rave/commit/8a1a54ba
Tree: http://git-wip-us.apache.org/repos/asf/rave/tree/8a1a54ba
Diff: http://git-wip-us.apache.org/repos/asf/rave/diff/8a1a54ba
Branch: refs/heads/master
Commit: 8a1a54ba9ce9751bc96a58f2d4bad29412d8e225
Parents: aab1719
Author: Stanton Sievers <ss...@w2odigital.com>
Authored: Mon Aug 11 11:10:31 2014 -0400
Committer: Stanton Sievers <ss...@w2odigital.com>
Committed: Mon Aug 11 11:10:31 2014 -0400
----------------------------------------------------------------------
.../apache/rave/portal/model/impl/PageImpl.java | 6 ++-
.../apache/rave/portal/service/PageService.java | 4 +-
.../portal/service/impl/DefaultPageService.java | 13 ++++---
.../service/impl/DefaultPageServiceTest.java | 41 ++++++++++++++++++++
.../apache/rave/portal/web/api/rpc/PageApi.java | 6 +--
5 files changed, 57 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/rave/blob/8a1a54ba/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PageImpl.java
----------------------------------------------------------------------
diff --git a/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PageImpl.java b/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PageImpl.java
index c14790e..9e0b524 100644
--- a/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PageImpl.java
+++ b/rave-components/rave-core/src/main/java/org/apache/rave/portal/model/impl/PageImpl.java
@@ -18,6 +18,8 @@
*/
package org.apache.rave.portal.model.impl;
+import com.fasterxml.jackson.annotation.JsonBackReference;
+import com.fasterxml.jackson.annotation.JsonManagedReference;
import org.apache.rave.model.*;
import java.util.List;
@@ -28,8 +30,8 @@ public class PageImpl implements Page {
private String name;
private String ownerId;
private String contextId;
- private Page parentPage;
- private List<Page> subPages;
+ @JsonBackReference private Page parentPage;
+ @JsonManagedReference private List<Page> subPages;
private PageLayout pageLayout;
private List<Region> regions;
private String pageType;
http://git-wip-us.apache.org/repos/asf/rave/blob/8a1a54ba/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
----------------------------------------------------------------------
diff --git a/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java b/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
index fadb17b..3ae4fe6 100644
--- a/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
+++ b/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
@@ -297,10 +297,10 @@ public interface PageService {
* @param pageId - the id of the page in question
* @param userId - the userid to add
* @param pageName = name of the page
- * @return true or false whether the user was added
+ * @return the newly cloned page
*/
@PreAuthorize("hasPermission(#pageId, 'org.apache.rave.model.Page', 'update')")
- Boolean clonePageForUser(String pageId, String userId, String pageName);
+ Page clonePageForUser(String pageId, String userId, String pageName);
/**
* Add another user to share this page with
http://git-wip-us.apache.org/repos/asf/rave/blob/8a1a54ba/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
----------------------------------------------------------------------
diff --git a/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java b/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
index 9ee4f60..810074d 100644
--- a/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
+++ b/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
@@ -328,8 +328,9 @@ public class DefaultPageService implements PageService {
return pageRepository.save(page);
}
+ @Override
@Transactional
- public Boolean clonePageForUser(String pageId, String userId, String pageName) {
+ public Page clonePageForUser(String pageId, String userId, String pageName) {
Page page = getPage(pageId);
if(pageName == null || pageName.equals("null")){
// try to use the original page name if none supplied
@@ -363,16 +364,16 @@ public class DefaultPageService implements PageService {
}
}
clonedPage = getFromRepository(clonedPage.getId(), pageRepository);
+ if (clonedPage.getSubPages() == null) {
+ // Subpages should always be a list (even an empty one)
+ clonedPage.setSubPages(new ArrayList<Page>());
+ }
clonedPage.setProperties(page.getProperties());
// newly created page - so only one pageUser
PageUser pageUser = clonedPage.getMembers().get(0);
// update status to pending
pageUser.setPageStatus(PageInvitationStatus.PENDING);
- if(pageRepository.save(clonedPage) != null){
- return Boolean.TRUE;
- }else{
- return Boolean.FALSE;
- }
+ return pageRepository.save(clonedPage);
}
@Transactional
http://git-wip-us.apache.org/repos/asf/rave/blob/8a1a54ba/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
----------------------------------------------------------------------
diff --git a/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java b/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
index 1646fc6..66b180d 100644
--- a/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
+++ b/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
@@ -46,6 +46,7 @@ import org.apache.rave.portal.repository.RegionWidgetRepository;
import org.apache.rave.portal.repository.WidgetRepository;
import org.apache.rave.portal.service.PageService;
import org.apache.rave.portal.service.UserService;
+import org.easymock.Capture;
import org.easymock.EasyMock;
import org.easymock.IAnswer;
import org.junit.Before;
@@ -1453,4 +1454,44 @@ public class DefaultPageServiceTest {
pageService.moveRegionWidgetToPage(VALID_REGION_WIDGET_ID, TO_PAGE_ID);
}
+
+ @Test
+ public void clonePage_noRegions() {
+ PageLayout layout = new PageLayoutImpl("foobar");
+ layout.setNumberOfRegions(0L);
+ layout.setRenderSequence(1L);
+ page.setPageLayout(layout);
+ page.setRegions(new ArrayList<Region>());
+ page.setSubPages(new ArrayList<Page>());
+
+ expect(userService.getAuthenticatedUser()).andReturn(user);
+ expect(pageRepository.get(PAGE_ID)).andReturn(page);
+ List<Page> pages = Lists.newLinkedList();
+ pages.add(page);
+ expect(pageRepository.getAllPagesForUserType(user.getId(), "user")).andReturn(pages);
+ final Capture<Page> pageCapture = new Capture<Page>();
+ expect(pageRepository.save(capture(pageCapture))).andAnswer(new IAnswer<Page>() {
+ @Override
+ public Page answer() throws Throwable {
+ Page savedPage = (Page) EasyMock.getCurrentArguments()[0];
+ savedPage.setId("42");
+ return savedPage;
+ }
+ }).anyTimes();
+ expect(pageRepository.get("42")).andAnswer(new IAnswer<Page>() {
+ @Override
+ public Page answer() throws Throwable {
+ return pageCapture.getValue();
+ }
+ });
+
+ expect(pageLayoutRepository.getByPageLayoutCode("foobar")).andReturn(layout);
+ expect(userService.getUserById(user.getId())).andReturn(user);
+ replay(pageLayoutRepository, pageRepository, userService);
+
+ Page clonedPage = pageService.clonePageForUser(PAGE_ID, user.getId(), null);
+ assertEquals("ID matches", "42", clonedPage.getId());
+ assertEquals("Owner ID is set", user.getId(), clonedPage.getOwnerId());
+ assertEquals("Layout is set", "foobar", clonedPage.getPageLayout().getCode());
+ }
}
http://git-wip-us.apache.org/repos/asf/rave/blob/8a1a54ba/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java
----------------------------------------------------------------------
diff --git a/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java b/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java
index 712456c..8fcd4fa 100644
--- a/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java
+++ b/rave-components/rave-web/src/main/java/org/apache/rave/portal/web/api/rpc/PageApi.java
@@ -264,10 +264,10 @@ public class PageApi {
@ResponseBody
@RequestMapping(value = "{pageId}/clone", method = RequestMethod.POST)
- public RpcResult<Boolean> clonePageForUser(@PathVariable final String pageId, @RequestParam final String userId, @RequestParam final String pageName) {
- return new RpcOperation<Boolean>() {
+ public RpcResult<Page> clonePageForUser(@PathVariable final String pageId, @RequestParam final String userId, @RequestParam final String pageName) {
+ return new RpcOperation<Page>() {
@Override
- public Boolean execute() {
+ public Page execute() {
return pageService.clonePageForUser(pageId, userId, pageName);
}
}.getResult();
[2/2] git commit: Merge branch 'master' into RAVE-1092
Posted by mf...@apache.org.
Merge branch 'master' into RAVE-1092
Conflicts:
rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
Project: http://git-wip-us.apache.org/repos/asf/rave/repo
Commit: http://git-wip-us.apache.org/repos/asf/rave/commit/ae28a21d
Tree: http://git-wip-us.apache.org/repos/asf/rave/tree/ae28a21d
Diff: http://git-wip-us.apache.org/repos/asf/rave/diff/ae28a21d
Branch: refs/heads/master
Commit: ae28a21df8cf45db1ff3c1d174d0a4358b2d6cc9
Parents: 8a1a54b eaec643
Author: Stanton Sievers <ss...@w2odigital.com>
Authored: Tue Aug 12 10:19:29 2014 -0400
Committer: Stanton Sievers <ss...@w2odigital.com>
Committed: Tue Aug 12 10:19:29 2014 -0400
----------------------------------------------------------------------
.../apache/rave/portal/service/impl/DefaultPageService.java | 7 ++++++-
.../src/main/webapp/static/script/portal/rave_ui.js | 2 +-
2 files changed, 7 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/rave/blob/ae28a21d/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
----------------------------------------------------------------------
diff --cc rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
index 810074d,a6055a0..9d6dff5
--- a/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
+++ b/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
@@@ -372,8 -367,17 +372,13 @@@ public class DefaultPageService impleme
// newly created page - so only one pageUser
PageUser pageUser = clonedPage.getMembers().get(0);
// update status to pending
- pageUser.setPageStatus(PageInvitationStatus.PENDING);
+ User currentUser = userService.getAuthenticatedUser();
+ if (currentUser.getId().equals(user.getId())) {
+ pageUser.setPageStatus(PageInvitationStatus.OWNER);
+ } else {
+ pageUser.setPageStatus(PageInvitationStatus.PENDING);
+ }
- if(pageRepository.save(clonedPage) != null){
- return Boolean.TRUE;
- }else{
- return Boolean.FALSE;
- }
+ return pageRepository.save(clonedPage);
}
@Transactional