Update of
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/resources/forms
In directory james.mmbase.org:/tmp/cvs-serv25173
Modified Files:
Tag: b1_6
SearchAction.java
Log Message:
CMSC-1260 Content search also finds elements in Recycle bin
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/resources/forms
See also: http://www.mmbase.org/jira/browse/CMSC-1260
Index: SearchAction.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/resources/forms/SearchAction.java,v
retrieving revision 1.15
retrieving revision 1.15.2.1
diff -u -b -r1.15 -r1.15.2.1
--- SearchAction.java 19 Feb 2009 06:36:05 -0000 1.15
+++ SearchAction.java 12 Mar 2009 07:03:00 -0000 1.15.2.1
@@ -1,11 +1,9 @@
/*
-
-This software is OSI Certified Open Source Software.
-OSI Certified is a certification mark of the Open Source Initiative.
-
-The license (Mozilla version 1.0) can be read at the MMBase site.
-See http://www.MMBase.org/license
-
+ *
+ * This software is OSI Certified Open Source Software. OSI Certified is a
certification mark of the Open Source
+ * Initiative.
+ *
+ * The license (Mozilla version 1.0) can be read at the MMBase site. See
http://www.MMBase.org/license
*/
package com.finalist.cmsc.resources.forms;
@@ -23,11 +21,15 @@
import org.mmbase.bridge.NodeQuery;
import org.mmbase.bridge.util.Queries;
import org.mmbase.bridge.util.SearchUtil;
+import org.mmbase.storage.search.FieldCompareConstraint;
+import org.mmbase.storage.search.FieldValueConstraint;
import org.mmbase.storage.search.Step;
+import org.mmbase.storage.search.StepField;
import org.mmbase.util.logging.Logger;
import org.mmbase.util.logging.Logging;
import com.finalist.cmsc.mmbase.PropertiesUtil;
+import com.finalist.cmsc.repository.RepositoryUtil;
import com.finalist.cmsc.struts.PagerAction;
public abstract class SearchAction extends PagerAction {
@@ -47,7 +49,6 @@
*/
private static final Logger log =
Logging.getLoggerInstance(SearchAction.class.getName());
-
@Override
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
HttpServletResponse response, Cloud cloud) throws Exception {
@@ -62,7 +63,17 @@
queryStringComposer.addParameter(CONTENTTYPES,
searchForm.getContenttypes());
// First add the proper step to the query.
- Step theStep = query.addStep(nodeManager);
+ // CMSC-1260 Content search also finds elements in Recycle bin
+ NodeManager channelNodeManager =
cloud.getNodeManager(RepositoryUtil.CONTENTCHANNEL);
+ Step channelStep = query.addStep(channelNodeManager);
+ Step theStep = query.addRelationStep(nodeManager,
RepositoryUtil.CREATIONREL, "SOURCE").getNext();
+ query.setNodeStep(theStep);
+
+ Integer trashNumber = Integer.parseInt(RepositoryUtil.getTrash(cloud));
+ StepField stepField = query.createStepField(channelStep,
channelNodeManager.getField("number"));
+ FieldValueConstraint channelConstraint =
query.createConstraint(stepField, FieldCompareConstraint.NOT_EQUAL,
+ trashNumber);
+ SearchUtil.addConstraint(query, channelConstraint);
query.setNodeStep(theStep);
// Order the result by:
@@ -93,12 +104,10 @@
Integer objectId = null;
if (searchForm.getObjectid().matches("^\\d+$")) {
objectId = Integer.valueOf(searchForm.getObjectid());
- }
- else {
+ } else {
if (cloud.hasNode(searchForm.getObjectid())) {
objectId =
Integer.valueOf(cloud.getNode(searchForm.getObjectid()).getNumber());
- }
- else {
+ } else {
objectId = Integer.valueOf(-1);
}
}
@@ -110,8 +119,7 @@
String resultsPerPage =
PropertiesUtil.getProperty(REPOSITORY_SEARCH_RESULTS_PER_PAGE);
if (resultsPerPage == null || !resultsPerPage.matches("\\d+")) {
query.setMaxNumber(25);
- }
- else {
+ } else {
query.setMaxNumber(Integer.parseInt(resultsPerPage));
}
@@ -130,16 +138,15 @@
searchForm.setResultCount(resultCount);
searchForm.setResults(results);
String show = searchForm.getShow();
- if(StringUtils.isEmpty(show)){
- show="list";
+ if (StringUtils.isEmpty(show)) {
+ show = "list";
}
- request.setAttribute(GETURL,
queryStringComposer.getQueryString()+"&show="+show);
+ request.setAttribute(GETURL, queryStringComposer.getQueryString() +
"&show=" + show);
request.setAttribute(STRICT, searchForm.getStrict());
return super.execute(mapping, form, request, response, cloud);
}
-
protected abstract void addConstraints(SearchForm searchForm, NodeManager
nodeManager,
QueryStringComposer queryStringComposer, NodeQuery query);
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs