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 2013/10/11 14:17:01 UTC

svn commit: r1531267 - in /rave/trunk/rave-components: rave-core-api/src/main/java/org/apache/rave/rest/ rave-core-api/src/main/java/org/apache/rave/rest/model/ rave-core/src/main/java/org/apache/rave/portal/service/ rave-core/src/main/java/org/apache/...

Author: mfranklin
Date: Fri Oct 11 12:17:00 2013
New Revision: 1531267

URL: http://svn.apache.org/r1531267
Log:
Updated page service to create instances of pages by page template id RAVE-1066

Modified:
    rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java
    rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/PageTemplate.java
    rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
    rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
    rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java

Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java?rev=1531267&r1=1531266&r2=1531267&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java Fri Oct 11 12:17:00 2013
@@ -53,7 +53,7 @@ public interface PagesResource {
     @Path("/")
     @Produces(MediaType.APPLICATION_JSON)
     @Consumes(MediaType.APPLICATION_JSON)
-    Page createPage(Page page);
+    Page createPage(@DefaultValue("") @QueryParam("templateId") String pageTemplateId, Page page);
 
     /**
      * Deletes the given page

Modified: rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/PageTemplate.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/PageTemplate.java?rev=1531267&r1=1531266&r2=1531267&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/PageTemplate.java (original)
+++ rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/PageTemplate.java Fri Oct 11 12:17:00 2013
@@ -39,6 +39,7 @@ public class PageTemplate implements Res
         this.description = source.getDescription();
         this.pageType = source.getPageType();
         this.pageLayoutCode = source.getPageLayout().getCode();
+        this.defaultTemplate = source.isDefaultTemplate();
     }
 
     public String getId() {

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java?rev=1531267&r1=1531266&r2=1531267&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/PageService.java Fri Oct 11 12:17:00 2013
@@ -19,7 +19,6 @@
 package org.apache.rave.portal.service;
 
 import org.apache.rave.model.Page;
-import org.apache.rave.model.PageType;
 import org.apache.rave.model.Region;
 import org.apache.rave.model.RegionWidget;
 import org.apache.rave.rest.model.SearchResult;
@@ -121,6 +120,17 @@ public interface PageService {
     /**
      * Creates a new user page with the supplied pageName and pageLayoutCode
      *
+     *
+     * @param pageName       the name of the new page
+     * @param contextId      the ID to set for the context of the page
+     * @param pageTemplateId the ID of the PageTemplate to create from  @return the new Page object
+     */
+    @PostAuthorize("hasPermission(returnObject, 'create')")
+    Page addNewPage(String pageName, String contextId, String pageTemplateId);
+
+    /**
+     * Creates a new user page with the supplied pageName and pageLayoutCode
+     *
      * @param pageName       the name of the new page
      * @param pageLayoutCode the page layout code
      * @return the new Page object

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java?rev=1531267&r1=1531266&r2=1531267&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java Fri Oct 11 12:17:00 2013
@@ -19,6 +19,7 @@
 
 package org.apache.rave.portal.service.impl;
 
+import org.apache.rave.portal.util.PageUtil;
 import org.apache.rave.rest.model.SearchResult;
 import org.apache.rave.repository.Repository;
 import org.apache.rave.model.*;
@@ -137,6 +138,17 @@ public class DefaultPageService implemen
 
     @Override
     @Transactional
+    public Page addNewPage(String pageName, String contextId, String pageTemplateId) {
+        PageTemplate template = pageTemplateRepository.get(pageTemplateId);
+        if(template == null) {
+            throw new IllegalArgumentException("No page template found for the specified id " + pageTemplateId);
+        }
+        Page newInstance = PageUtil.convert(template, userService.getAuthenticatedUser(), false);
+        return pageRepository.save(newInstance);
+    }
+
+    @Override
+    @Transactional
     public Page addNewUserPage(String pageName, String pageLayoutCode) {
         return addNewUserPage(userService.getAuthenticatedUser(), pageName, pageLayoutCode);
     }

Modified: rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java
URL: http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java?rev=1531267&r1=1531266&r2=1531267&view=diff
==============================================================================
--- rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java (original)
+++ rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java Fri Oct 11 12:17:00 2013
@@ -20,9 +20,9 @@
 package org.apache.rave.rest.impl;
 
 
+import org.apache.commons.lang3.StringUtils;
 import org.apache.rave.rest.PageUsersResource;
 import org.apache.rave.rest.exception.ResourceNotFoundException;
-import org.apache.rave.model.PageType;
 import org.apache.rave.portal.service.PageService;
 import org.apache.rave.rest.PagesResource;
 import org.apache.rave.rest.RegionsResource;
@@ -32,7 +32,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.inject.Inject;
-import javax.ws.rs.PathParam;
 import javax.ws.rs.core.Response;
 import java.util.ArrayList;
 import java.util.List;
@@ -73,23 +72,25 @@ public class DefaultPageResource impleme
 
 
     @Override
-    public Page createPage(Page page) {
+    public Page createPage(String pageTemplateId, Page page) {
+        if (page.getName() == null) {
+            throw new BadRequestException("Page name property must be defined.");
+        }
+        org.apache.rave.model.Page fromDb;
+        if(StringUtils.isNotBlank(pageTemplateId)) {
+            fromDb = pageService.addNewPage(page.getName(), null, pageTemplateId);
         //TODO: RAVE-977 - when Page type enum is deprecated escape from this logic
-        if (page.getPageType().equals("user")) {
-            if (page.getName() == null) {
-                throw new BadRequestException("Page name property must be defined.");
-            }
+        } else if (page.getPageType().equals("user")) {
             if (page.getPageLayoutCode() == null) {
                 throw new BadRequestException("Page pageLayoutCode property must be defined.");
             }
-            org.apache.rave.model.Page fromDb = pageService.addNewUserPage(page.getName(), page.getPageLayoutCode());
-            Page responsePage = new Page(fromDb);
-
-            return responsePage;
+            fromDb = pageService.addNewUserPage(page.getName(), page.getPageLayoutCode());
         } else {
             //TODO: RAVE-977 this will change
             throw new BadRequestException("Page pageType property must equal 'user'.");
         }
+
+        return new Page(fromDb);
     }
 
     @Override