/** * Copyright 2008 The University of North Carolina at Chapel Hill * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package edu.unc.lib.dl.admin.controller; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import edu.unc.lib.dl.search.solr.model.SearchRequest; import edu.unc.lib.dl.search.solr.model.SearchResultResponse; import edu.unc.lib.dl.search.solr.util.SearchStateUtil; @Controller public class GetFacetsController extends AbstractSearchController { private static final Logger LOG = LoggerFactory.getLogger(GetFacetsController.class); @RequestMapping("/facets/{pid}") public String getFacets(@PathVariable("pid") String pid, Model model, HttpServletRequest request) { SearchRequest searchRequest = generateSearchRequest(request); searchRequest.setRootPid(pid); return getFacets(searchRequest, model); } @RequestMapping("/facets") public String getFacets(Model model, HttpServletRequest request) { SearchRequest searchRequest = generateSearchRequest(request); return getFacets(searchRequest, model); } protected String getFacets(SearchRequest searchRequest, Model model) { if (searchRequest.getSearchState().getFacetsToRetrieve() == null) searchRequest.getSearchState().setFacetsToRetrieve(searchSettings.getFacetNames()); searchRequest.setApplyCutoffs(false); searchRequest.setRetrieveFacets(true); LOG.debug("Retrieving facet list"); // Retrieve the facet result set SearchResultResponse resultResponse = queryLayer.getFacetList(searchRequest); model.addAttribute("facetFields", resultResponse.getFacetFields()); String searchStateUrl = SearchStateUtil.generateSearchParameterString(searchRequest.getSearchState()); model.addAttribute("searchStateUrl", searchStateUrl); model.addAttribute("template", "ajax"); model.addAttribute("searchState", searchRequest.getSearchState()); model.addAttribute("queryMethod", "search"); model.addAttribute("selectedContainer", resultResponse.getSelectedContainer()); return "/jsp/util/facetList"; } }