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 Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs