Update of
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms
In directory james.mmbase.org:/tmp/cvs-serv5991
Modified Files:
ContentSearchAction.java
Log Message:
CMSC-1089,change Assets display in two ways. list and thumbnails.contentSearch
to make title and keywords to combination
See also:
http://cvs.mmbase.org/viewcvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms
See also: http://www.mmbase.org/jira/browse/CMSC-1089
Index: ContentSearchAction.java
===================================================================
RCS file:
/var/cvs/contributions/CMSContainer/cmsc/contentrepository/src/java/com/finalist/cmsc/repository/forms/ContentSearchAction.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -b -r1.1 -r1.2
--- ContentSearchAction.java 13 Nov 2008 09:52:27 -0000 1.1
+++ ContentSearchAction.java 19 Nov 2008 06:06:06 -0000 1.2
@@ -46,9 +46,9 @@
*/
private static final Logger log =
Logging.getLoggerInstance(ContentSearchAction.class.getName());
-
@Override
- public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response, Cloud cloud) throws
Exception {
+ public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request,
+ HttpServletResponse response, Cloud cloud) throws Exception {
log.debug("Starting the search:");
@@ -58,10 +58,9 @@
String deleteContentRequest =
request.getParameter("deleteContentRequest");
if (StringUtils.isNotEmpty(deleteContentRequest)) {
- if(deleteContentRequest.startsWith("massDelete:")) {
+ if (deleteContentRequest.startsWith("massDelete:")) {
massDeleteContent(deleteContentRequest.substring(11));
- }
- else {
+ } else {
deleteContent(deleteContentRequest);
}
@@ -91,7 +90,7 @@
NodeManager nodeManager =
cloud.getNodeManager(searchForm.getContenttypes());
QueryStringComposer queryStringComposer = new QueryStringComposer();
- if(StringUtils.isNotEmpty(request.getParameter(MODE))) {
+ if (StringUtils.isNotEmpty(request.getParameter(MODE))) {
queryStringComposer.addParameter(MODE,
request.getParameter(MODE));
}
NodeQuery query = cloud.createNodeQuery();
@@ -107,8 +106,7 @@
theStep = query.addRelationStep(nodeManager,
RepositoryUtil.CONTENTREL, "DESTINATION").getNext();
query.setNodeStep(theStep);
queryStringComposer.addParameter(PARENTCHANNEL,
searchForm.getParentchannel());
- }
- else {
+ } else {
theStep = query.addStep(nodeManager);
query.setNodeStep(theStep);
}
@@ -174,29 +172,17 @@
SearchUtil.addConstraint(query, titleConstraint);
}
- // And some keyword searching
- if (StringUtils.isNotEmpty(searchForm.getKeywords())) {
- queryStringComposer.addParameter(ContentElementUtil.KEYWORD_FIELD,
searchForm.getKeywords());
- Field keywordField =
nodeManager.getField(ContentElementUtil.KEYWORD_FIELD);
- List<String> keywords =
KeywordUtil.getKeywords(searchForm.getKeywords());
- for (String keyword : keywords) {
- Constraint keywordConstraint =
SearchUtil.createLikeConstraint(query, keywordField, keyword);
- SearchUtil.addORConstraint(query, keywordConstraint);
- }
- }
-
+ searchKey(request, searchForm, nodeManager, queryStringComposer, query);
// Set the objectid constraint
if (StringUtils.isNotEmpty(searchForm.getObjectid())) {
String stringObjectId = searchForm.getObjectid().trim();
Integer objectId = null;
if (stringObjectId.matches("^\\d+$")) {
objectId = Integer.valueOf(stringObjectId);
- }
- else {
+ } else {
if (cloud.hasNode(stringObjectId)) {
objectId =
Integer.valueOf(cloud.getNode(stringObjectId).getNumber());
- }
- else {
+ } else {
objectId = Integer.valueOf(-1);
}
}
@@ -227,8 +213,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));
}
@@ -247,14 +232,39 @@
searchForm.setResultCount(resultCount);
searchForm.setResults(results);
request.setAttribute(GETURL, queryStringComposer.getQueryString());
-
return super.execute(mapping, form, request, response, cloud);
}
+ private void searchKey(HttpServletRequest request, SearchForm searchForm,
NodeManager nodeManager,
+ QueryStringComposer queryStringComposer, NodeQuery query) {
+ List<String> keywords = null;
+ String mode = request.getParameter(MODE);
+ if (StringUtils.isNotEmpty(mode) && ("basic").equals(mode)) {
+ keywords = KeywordUtil.getKeywords(searchForm.getTitle());
+ }
+ // And some keyword searching
+ if (StringUtils.isNotEmpty(searchForm.getKeywords())) {
+ keywords = KeywordUtil.getKeywords(searchForm.getKeywords());
+ }
+ if (null != keywords) {
+ addKeyConstraint(searchForm, nodeManager, queryStringComposer, query,
keywords);
+ }
+ }
+
+ private void addKeyConstraint(SearchForm searchForm, NodeManager
nodeManager,
+ QueryStringComposer queryStringComposer, NodeQuery query,
List<String> keywords) {
+ queryStringComposer.addParameter(ContentElementUtil.KEYWORD_FIELD,
searchForm.getKeywords());
+ Field keywordField =
nodeManager.getField(ContentElementUtil.KEYWORD_FIELD);
+ for (String keyword : keywords) {
+ Constraint keywordConstraint = SearchUtil.createLikeConstraint(query,
keywordField, keyword);
+ SearchUtil.addORConstraint(query, keywordConstraint);
+ }
+ }
+
private void massDeleteContent(String deleteContent) {
- if(StringUtils.isNotBlank(deleteContent)){
+ if (StringUtils.isNotBlank(deleteContent)) {
String[] deleteContents = deleteContent.split(",");
- for(String content : deleteContents) {
+ for (String content : deleteContents) {
deleteContent(content);
}
}
_______________________________________________
Cvs mailing list
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs