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