Update of
/var/cvs/contributions/CMSContainer_Modules/subsite/src/java/com/finalist/cmsc/subsite/forms
In directory
james.mmbase.org:/tmp/cvs-serv25296/subsite/src/java/com/finalist/cmsc/subsite/forms
Modified Files:
PPContentAction.java SubSiteAction.java
Log Message:
CMSC-635 - big updates on subsite-module, also enhanced PagePublisher.java
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer_Modules/subsite/src/java/com/finalist/cmsc/subsite/forms
See also: http://www.mmbase.org/jira/browse/CMSC-635
Index: PPContentAction.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/subsite/src/java/com/finalist/cmsc/subsite/forms/PPContentAction.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- PPContentAction.java 5 Feb 2008 17:42:06 -0000 1.1
+++ PPContentAction.java 18 Feb 2008 10:55:44 -0000 1.2
@@ -17,11 +17,14 @@
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
+import org.mmbase.bridge.BridgeException;
import org.mmbase.bridge.Cloud;
import org.mmbase.bridge.Node;
import org.mmbase.bridge.NodeList;
+import org.mmbase.remotepublishing.CloudManager;
import com.finalist.cmsc.repository.RepositoryUtil;
+import com.finalist.cmsc.services.publish.Publish;
import com.finalist.cmsc.struts.MMBaseAction;
import com.finalist.cmsc.subsite.util.SubSiteUtil;
@@ -45,6 +48,22 @@
if (StringUtil.isEmpty(direction)) {
direction = null;
}
+
+ Cloud remoteCloud = null;
+
+ //Retrieve live-cloud (if exists) and continue to search Live for
content Elements
+ try {
+ remoteCloud = CloudManager.getCloud(cloud, "live.server");
+
+ //Retrieve Node & live-channel
+ int liveNumber = Publish.getLiveNumber(ppChannel);
+ ppChannel = remoteCloud.getNode(liveNumber);
+
+ cloud = remoteCloud; //Use the remoteCloud from now on.
+ } catch (BridgeException e) {
+ //When the remoteCloud could not be found, use the
normal cloud and we're fine.
+ }
+
NodeList elements = RepositoryUtil.getLinkedElements(ppChannel, null,
orderby, direction, false, -1, -1, -1, -1, -1);
addToRequest(request, "elements", elements);
Index: SubSiteAction.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer_Modules/subsite/src/java/com/finalist/cmsc/subsite/forms/SubSiteAction.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- SubSiteAction.java 5 Feb 2008 17:42:06 -0000 1.2
+++ SubSiteAction.java 18 Feb 2008 10:55:44 -0000 1.3
@@ -10,7 +10,6 @@
package com.finalist.cmsc.subsite.forms;
import java.util.Calendar;
-import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -26,11 +25,11 @@
import org.mmbase.bridge.NodeList;
import org.mmbase.bridge.NodeManager;
import org.mmbase.bridge.NodeQuery;
+import org.mmbase.bridge.NotFoundException;
import org.mmbase.bridge.util.Queries;
import org.mmbase.bridge.util.SearchUtil;
import org.mmbase.storage.search.Constraint;
import org.mmbase.storage.search.FieldValueDateConstraint;
-import org.mmbase.storage.search.Step;
import org.mmbase.storage.search.StepField;
import org.mmbase.storage.search.implementation.BasicFieldValueDateConstraint;
import org.mmbase.util.logging.Logger;
@@ -39,18 +38,15 @@
import com.finalist.cmsc.mmbase.PropertiesUtil;
import com.finalist.cmsc.navigation.NavigationUtil;
import com.finalist.cmsc.navigation.PagesUtil;
-import com.finalist.cmsc.repository.ContentElementUtil;
-import com.finalist.cmsc.repository.RepositoryUtil;
import com.finalist.cmsc.repository.forms.SearchAction;
import com.finalist.cmsc.repository.forms.SearchForm;
-import com.finalist.cmsc.resources.forms.QueryStringComposer;
import com.finalist.cmsc.struts.PagerAction;
import com.finalist.cmsc.subsite.util.SubSiteUtil;
public class SubSiteAction extends PagerAction {
/**
- * MMbase logging system
+ * MMBase logging system
*/
private static Logger log =
Logging.getLoggerInstance(SearchAction.class.getName());
@@ -59,13 +55,11 @@
HttpServletRequest request, HttpServletResponse response, Cloud cloud)
throws Exception {
- /*System.out.println(request.getParameterNames().toString());
- System.out.println(request.getParameterMap().toString());*/
-
// Initialize
SearchForm searchForm = (SearchForm) form;
String subsite = request.getParameter("subsite");
+ request.setAttribute("subsite", subsite);
/* Purpose of this file
* - retrieve List of all subsites
@@ -93,10 +87,34 @@
addToRequest(request, "subsiteElements", subsiteElements);
}*/
- Node subsiteNode = null;
+
//Retrieve list of pages of subsite
- if (!StringUtil.isEmpty(subsite)) {
+ Node subsiteNode = null;
+ try {
subsiteNode = cloud.getNode(subsite);
+ }
+ catch (NotFoundException e) {
+ //If the subsiteNode does not exist or is not valid, get the
first found subsite
+ NodeManager nm = cloud.getNodeManager(SubSiteUtil.SUBSITE);
+ NodeList results = nm.createQuery().getList();
+ if (results.size() > 0) {
+ subsiteNode = (Node) results.get(0);
+ }
+ }
+
+ if (subsiteNode == null){ //If there are no subsites at all, return
empty list
+ searchForm.setResultCount(0);
+ NodeList results = cloud.createNodeList();
+ searchForm.setResults(results);
+ return mapping.findForward(SUCCESS);
+ }
+
+// searchForm.setResultCount(results.size());
+//
+// searchForm.setResults(results);
+// return mapping.findForward(SUCCESS);
+
+
/*if (subsiteNode != null) {
NodeList elements = NavigationUtil.getChildren(subsiteNode);
// NodeList elements =
RepositoryUtil.getLinkedElements(subsiteNode, null, null, null, false, -1, -1,
-1, -1, -1);
@@ -104,17 +122,13 @@
//addToRequest(request, "subsite", subsite);
// request.setAttribute("pageNodes", pageNodes);
}*/
- } else {
-
- return mapping.findForward(CANCEL);
- }
NodeManager nodeManager = subsiteNode.getNodeManager();
// Order the result by:
String order = searchForm.getOrder();
// set default order field
- if (StringUtil.isEmpty(order)) {
+ if (order != null && StringUtil.isEmpty(order)) {
if (nodeManager.hasField("title")) {
order = "title";
}
@@ -123,62 +137,47 @@
}
}
-
- //QueryStringComposer queryStringComposer = new QueryStringComposer();
- //NodeQuery query = cloud.createNodeQuery();
- //createLinkedElementsQuery(channel, orderby, direction, offset,
maxNumber, year, month, day)
- NodeQuery query = createLinkedElementsQuery(subsiteNode, order, null, 0,
25, -1, -1, -1);
-
-
- // Add the title constraint:
- if (!StringUtil.isEmpty(searchForm.getTitle())) {
- Field field = nodeManager.getField(PagesUtil.TITLE_FIELD);
- Constraint titleConstraint = SearchUtil.createLikeConstraint(query,
field, searchForm.getTitle());
- SearchUtil.addConstraint(query, titleConstraint);
+ // Set the offset (used for paging).
+ int offset = 0;
+ if (searchForm.getOffset() != null &&
searchForm.getOffset().matches("\\d+")) {
+ offset = Integer.parseInt(searchForm.getOffset());
+ searchForm.setOffset(Integer.toString(offset));
}
- /*
- NodeManager nodeManager = subsiteNode.getNodeManager();
-
- // First add the proper step to the query.
- Step theStep = null;
- theStep = query.addStep(nodeManager);
- query.setNodeStep(theStep);
+ // Set the maximum result size.
+ String resultsPerPage =
PropertiesUtil.getProperty(SearchAction.REPOSITORY_SEARCH_RESULTS_PER_PAGE);
+ int maxNumber = 25;
+ if (resultsPerPage != null && resultsPerPage.matches("\\d+")) {
+ maxNumber = Integer.parseInt(resultsPerPage);
+ }
+ searchForm.setKeywords(resultsPerPage);
+ String direction = null;
- query.setDistinct(true);
+ //QueryStringComposer queryStringComposer = new QueryStringComposer();
+ //NodeQuery query = cloud.createNodeQuery();
+ //createLinkedElementsQuery(channel, orderby, direction, offset,
maxNumber, year, month, day)
+ NodeQuery query = createLinkedElementsQuery(subsiteNode, order,
direction, offset*maxNumber, maxNumber, -1, -1, -1);
+ //NodeList SearchUtil.findRelatedNodeList(parent, managerName, role,
fieldname, value, sortName, sortDirection, searchdir)
+ //NodeQuery query = SearchUtil.createRelatedNodeListQuery(parent,
managerName, role, fieldname, value, sortName, sortDirection, searchdir)
// Add the title constraint:
if (!StringUtil.isEmpty(searchForm.getTitle())) {
-
- queryStringComposer.addParameter(PagesUtil.TITLE_FIELD,
searchForm.getTitle());
Field field = nodeManager.getField(PagesUtil.TITLE_FIELD);
Constraint titleConstraint = SearchUtil.createLikeConstraint(query,
field, searchForm.getTitle());
SearchUtil.addConstraint(query, titleConstraint);
}
- // Set the maximum result size.
- String resultsPerPage =
PropertiesUtil.getProperty(SearchAction.REPOSITORY_SEARCH_RESULTS_PER_PAGE);
- if (resultsPerPage == null || !resultsPerPage.matches("\\d+")) {
- query.setMaxNumber(25);
- }
- else {
- query.setMaxNumber(Integer.parseInt(resultsPerPage));
- }
- // Set the offset (used for paging).
- if (searchForm.getOffset() != null &&
searchForm.getOffset().matches("\\d+")) {
- query.setOffset(query.getMaxNumber() *
Integer.parseInt(searchForm.getOffset()));
- queryStringComposer.addParameter(OFFSET, searchForm.getOffset());
- }*/
+
log.debug("QUERY: " + query);
int resultCount = Queries.count(query);
NodeList results = cloud.getList(query);
- System.out.println("Count = " + resultCount);
- //System.out.println("Query = " + query);
+// System.out.println("Count = " + resultCount);
+// System.out.println("Query = " + query);
// Set everything on the request.
searchForm.setResultCount(resultCount);
searchForm.setResults(results);
@@ -203,7 +202,7 @@
}*/
// return mapping.findForward(SUCCESS);
- return super.execute(mapping, form, request, response, cloud);
+ return super.execute(mapping, searchForm, request, response, cloud);
}
public static NodeQuery createLinkedElementsQuery(Node channel, String
orderby, String direction, int offset, int maxNumber, int year, int month, int
day) {
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs