tdraier 2005/10/06 16:27:22 CEST
Modified files:
core/src/java/org/jahia/engines/importexport
ManageContentPicker.java
Log:
added special page search
Revision Changes Path
1.30 +58 -38
jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java.diff?r1=1.29&r2=1.30&f=h
Index: ManageContentPicker.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/engines/importexport/ManageContentPicker.java,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- ManageContentPicker.java 5 Oct 2005 08:36:08 -0000 1.29
+++ ManageContentPicker.java 6 Oct 2005 14:27:22 -0000 1.30
@@ -16,6 +16,7 @@
import org.jahia.registries.ServicesRegistry;
import org.jahia.services.containers.ContentContainer;
import org.jahia.services.containers.ContentContainerList;
+import org.jahia.services.containers.JahiaContainersService;
import org.jahia.services.fields.ContentField;
import org.jahia.services.fields.ContentPageField;
import org.jahia.services.fields.ContentSmallTextField;
@@ -36,7 +37,7 @@
*
* @author Thomas Draier, joe Pillot
* @author ${User}
- * @version $Id: ManageContentPicker.java,v 1.29 2005/10/05 08:36:08 dpillot
Exp $
+ * @version $Id: ManageContentPicker.java,v 1.30 2005/10/06 14:27:22 tdraier
Exp $
*/
public class ManageContentPicker {
private static org.apache.log4j.Logger logger =
@@ -217,47 +218,62 @@
// we search only if we have smtg to search
if (!"".equals(searchString)) {
+ JahiaSearchResultBuilder resultBuilder = new
ContainerSearchResultBuilderImpl();
-
- ArrayList languageCodes = new ArrayList();
- String[] languageCodesVal =
processingContext.getParameterValues("searchlang");
- if (languageCodesVal != null) {
- if (!JahiaTools.inValues(Search_Engine.SEARCH_ALL_LANG,
languageCodesVal)) {
- for (int i = 0; i < languageCodesVal.length; i++) {
- languageCodes.add(languageCodesVal[i]);
+ if (searchString.startsWith("page:")) {
+ int pageId = Integer.parseInt(searchString.substring(5));
+ searchResults = new JahiaSearchResult(resultBuilder);
+ ContentPage cp =
ServicesRegistry.getInstance().getJahiaPageService().lookupContentPage(pageId,
false);
+ JahiaContainersService jahiaContainersService =
ServicesRegistry.getInstance().getJahiaContainersService();
+ List ids =
jahiaContainersService.getContainerListIDsInPage(cp, EntryLoadRequest.STAGED);
+ for (Iterator iterator = ids.iterator();
iterator.hasNext();) {
+ Integer listId = (Integer) iterator.next();
+ Vector v =
jahiaContainersService.getctnidsInList(listId.intValue(),
EntryLoadRequest.STAGED);
+ for (Iterator iterator1 = v.iterator();
iterator1.hasNext();) {
+ Integer ctnId = (Integer) iterator1.next();
+ JahiaSearchHit hit = new JahiaSearchHit(new
ParsedObjectImpl(100,null));
+ hit.setId(ctnId.toString());
+ hit.setScore(100);
+ searchResults.addHit(hit);
}
}
} else {
- languageCodes.add(processingContext.getLocale().toString());
- }
- logger.debug("searching in what languages:" + languageCodes);
- engineMap.put("searchLanguageCodes", languageCodes);
-
- //String theScreen = (String)engineMap.get("screen");
+ ArrayList languageCodes = new ArrayList();
+ String[] languageCodesVal =
processingContext.getParameterValues("searchlang");
+ if (languageCodesVal != null) {
+ if (!JahiaTools.inValues(Search_Engine.SEARCH_ALL_LANG,
languageCodesVal)) {
+ for (int i = 0; i < languageCodesVal.length; i++) {
+ languageCodes.add(languageCodesVal[i]);
+ }
+ }
+ } else {
+
languageCodes.add(processingContext.getLocale().toString());
+ }
+ logger.debug("searching in what languages:" + languageCodes);
+ engineMap.put("searchLanguageCodes", languageCodes);
+ //String theScreen = (String)engineMap.get("screen");
- JahiaSearchResultBuilder resultBuilder = new
ContainerSearchResultBuilderImpl();
-
+ if (scope.equalsIgnoreCase("all")) {
+ //multidomain search
+ List handlers = new ArrayList(50);
+
+ while (sites.hasMoreElements()) {
+ SearchHandler h =
searchService.getSearchHandler(((JahiaSite) sites.nextElement()).getID());
+ handlers.add(h.getName());
+ }
+ String[] strings = (String[]) handlers.toArray(new
String[handlers.size()]);
+ logger.debug(strings);
- if (scope.equalsIgnoreCase("all")) {
- //multidomain search
- List handlers = new ArrayList(50);
-
- while (sites.hasMoreElements()) {
- SearchHandler h =
searchService.getSearchHandler(((JahiaSite) sites.nextElement()).getID());
- handlers.add(h.getName());
+ //recreate enum
+ sites = siteService.getSites();
+ engineMap.put("sites", sites);
+ searchResults = searchService.search(strings,
searchString, processingContext, languageCodes, resultBuilder);
+ } else {
+ //just one domain search
+ searchResults =
searchService.search(Integer.parseInt(processingContext.getParameter("searchSite")),
+ searchString, processingContext, languageCodes,
resultBuilder);
}
- String[] strings = (String[]) handlers.toArray(new
String[handlers.size()]);
- logger.debug(strings);
-
- //recreate enum
- sites = siteService.getSites();
- engineMap.put("sites", sites);
- searchResults = searchService.search(strings, searchString,
processingContext, languageCodes, resultBuilder);
- } else {
- //just one domain search
- searchResults =
searchService.search(Integer.parseInt(processingContext.getParameter("searchSite")),
- searchString, processingContext, languageCodes,
resultBuilder);
}
logger.debug("# of hits in raw searchresults:" +
searchResults.getHitCount() + " " + searchResults);
@@ -270,14 +286,14 @@
JahiaContainerDefinition thisJcd = (JahiaContainerDefinition)
ContentObject.getInstance(cdk);
logger.debug("destination cdk:" + cdk + " cdfn:" + thisJcd);
- EntryLoadRequest lr = new
EntryLoadRequest(EntryLoadRequest.ACTIVE_WORKFLOW_STATE, 0,
processingContext.getLocaleList());
+ EntryLoadRequest lr = new
EntryLoadRequest(EntryLoadRequest.STAGING_WORKFLOW_STATE, 0,
processingContext.getLocaleList());
// big loop to test the compatibility of container type
for (Iterator iterator = searchResults.results().iterator();
iterator.hasNext();) {
JahiaSearchHit jahiaSearchHit = (JahiaSearchHit)
iterator.next();
ContentObject current =
ContentContainer.getContainer(Integer.parseInt(jahiaSearchHit.getId()));
int score = jahiaSearchHit.getScore();
- while (current != null && current.hasActiveEntries()) {
+ while (current != null) {
if (current.getPickedObject() != null) {
// this object is already a copy, we ignore it
break;
@@ -321,8 +337,9 @@
break;
}
}
- logger.debug("fields of searchhit" +
jahiaSearchHit.getParsedObject().getFields());
-
+ if (jahiaSearchHit.getParsedObject()!= null) {
+ logger.debug("fields of searchhit" +
jahiaSearchHit.getParsedObject().getFields());
+ }
if (results.containsKey(key)) {
JahiaContainerSearchHit hit =
(JahiaContainerSearchHit) results.get(key);
@@ -478,6 +495,9 @@
}
/**
* $Log: ManageContentPicker.java,v $
+ * Revision 1.30 2005/10/06 14:27:22 tdraier
+ * added special page search
+ *
* Revision 1.29 2005/10/05 08:36:08 dpillot
* bug fix (npe on orderby)
*