diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java index 20c7b4438..e220944e5 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/search/controller/AutocompleteController.java @@ -63,11 +63,12 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea private static final long serialVersionUID = 1L; private static final Log log = LogFactory.getLog(AutocompleteController.class.getName()); + + private static String QUERY_PARAMETER_NAME = "term"; + private static String EXCLUDE_URI_PARAMETER_NAME = "excludeUri"; private IndexSearcher searcher = null; String NORESULT_MSG = ""; - private String QUERY_PARAMETER_NAME = "term"; - private int defaultHitsPerPage = 25; private int defaultMaxSearchSize= 1000; public void init(ServletConfig config) throws ServletException { @@ -116,16 +117,17 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea String qtxt = vreq.getParameter(QUERY_PARAMETER_NAME); Analyzer analyzer = getAnalyzer(getServletContext()); - Query query = getQuery(vreq, portalFlag, analyzer, indexDir, qtxt); - log.debug("query for '" + qtxt +"' is " + query.toString()); - // Get the list of uris that should be excluded from the results - String filters[] = vreq.getParameterValues("filter"); - List urisToExclude = new ArrayList(); + // Get the list of individual uris that should be excluded from the search + String filters[] = vreq.getParameterValues(EXCLUDE_URI_PARAMETER_NAME); + List urisToExclude = null; if (filters != null) { - urisToExclude = Arrays.asList(vreq.getParameterValues("filter")); + urisToExclude = Arrays.asList(filters); } + Query query = getQuery(vreq, portalFlag, analyzer, indexDir, qtxt, urisToExclude); + log.debug("query for '" + qtxt +"' is " + query.toString()); + if (query == null ) { doNoQuery(templateName, map, config, response); return; @@ -167,9 +169,6 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea try{ Document doc = searcherForRequest.doc(topDocs.scoreDocs[i].doc); String uri = doc.get(Entity2LuceneDoc.term.URI); - if (urisToExclude.contains(uri)) { - continue; - } Individual ind = iDao.getIndividualByURI(uri); if (ind != null) { String name = ind.getName(); @@ -210,7 +209,7 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea } private Query getQuery(VitroRequest request, PortalFlag portalState, - Analyzer analyzer, String indexDir, String querystr ) throws SearchException{ + Analyzer analyzer, String indexDir, String querystr, List urisToExclude ) throws SearchException{ Query query = null; try{ if( querystr == null){ @@ -240,6 +239,17 @@ public class AutocompleteController extends FreeMarkerHttpServlet implements Sea query = boolQuery; } + if (urisToExclude != null) { + for (String uri : urisToExclude) { + BooleanQuery boolQuery = new BooleanQuery(); + boolQuery.add( query, BooleanClause.Occur.MUST); + boolQuery.add( new TermQuery( + new Term(Entity2LuceneDoc.term.URI, uri)), + BooleanClause.Occur.MUST_NOT); + query = boolQuery; + } + } + //check if this is classgroup filtered // Object param = request.getParameter("classgroup"); // if( param != null && !"".equals(param)){ diff --git a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/filelist/FileList.java b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/filelist/FileList.java index 60df6a19c..2c3b37611 100644 --- a/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/filelist/FileList.java +++ b/webapp/src/edu/cornell/mannlib/vitro/webapp/web/templatemodels/filelist/FileList.java @@ -38,10 +38,13 @@ public abstract class FileList extends BaseTemplateModel { public String getTags() { String tags = ""; - Iterator i = list.iterator(); - while (i.hasNext()) { - tags += getTag(i.next()); + for (String file : list) { + tags += getTag(file); } +// Iterator i = list.iterator(); +// while (i.hasNext()) { +// tags += getTag(i.next()); +// } return tags; } diff --git a/webapp/web/templates/freemarker/body/test.ftl b/webapp/web/templates/freemarker/body/test.ftl index 9fb934231..89bd4e992 100644 --- a/webapp/web/templates/freemarker/body/test.ftl +++ b/webapp/web/templates/freemarker/body/test.ftl @@ -51,3 +51,5 @@ <@dump var="fruit" /> <@dumpDataModel /> +${stylesheets.addFromTheme("/sstest.css")} +${scripts.addFromTheme("/jstest.js")} \ No newline at end of file