Skip to content
Snippets Groups Projects
Commit 6d5db0da authored by Demian Katz's avatar Demian Katz
Browse files

Pre-apply default filters to advanced screen for better user control.

parent 7ad548de
No related merge requests found
...@@ -112,6 +112,17 @@ class AbstractSearch extends AbstractBase ...@@ -112,6 +112,17 @@ class AbstractSearch extends AbstractBase
$view->saved = $this->restoreAdvancedSearch($searchId); $view->saved = $this->restoreAdvancedSearch($searchId);
} }
// If we have default filters, set them up as a fake "saved" search
// to properly populate special controls on the advanced screen.
if (!$view->saved && count($view->options->getDefaultFilters()) > 0) {
$view->saved = $this->getServiceLocator()
->get('VuFind\SearchResultsPluginManager')
->get($this->searchClassId);
$view->saved->getParams()->initFromRequest(
new \Zend\StdLib\Parameters(array())
);
}
return $view; return $view;
} }
......
...@@ -11,7 +11,12 @@ ...@@ -11,7 +11,12 @@
// Set up saved search details: // Set up saved search details:
if (isset($this->saved) && is_object($this->saved)) { if (isset($this->saved) && is_object($this->saved)) {
$searchDetails = $this->saved->getParams()->getQuery(); $searchDetails = $this->saved->getParams()->getQuery();
$groups = $searchDetails->getQueries(); if ($searchDetails instanceof \VuFindSearch\Query\Query) {
// Not an advanced query -- ignore it.
$searchDetails = $groups = false;
} else {
$groups = $searchDetails->getQueries();
}
$hasDefaultsApplied = $this->saved->getParams()->hasDefaultsApplied(); $hasDefaultsApplied = $this->saved->getParams()->hasDefaultsApplied();
$searchFilters = $this->saved->getParams()->getFilterList(); $searchFilters = $this->saved->getParams()->getFilterList();
} else { } else {
......
...@@ -12,7 +12,12 @@ ...@@ -12,7 +12,12 @@
// Set up saved search details: // Set up saved search details:
if (isset($this->saved) && is_object($this->saved)) { if (isset($this->saved) && is_object($this->saved)) {
$searchDetails = $this->saved->getParams()->getQuery(); $searchDetails = $this->saved->getParams()->getQuery();
$groups = $searchDetails->getQueries(); if ($searchDetails instanceof \VuFindSearch\Query\Query) {
// Not an advanced query -- ignore it.
$searchDetails = $groups = false;
} else {
$groups = $searchDetails->getQueries();
}
$hasDefaultsApplied = $this->saved->getParams()->hasDefaultsApplied(); $hasDefaultsApplied = $this->saved->getParams()->hasDefaultsApplied();
$searchFilters = $this->saved->getParams()->getFilterList(); $searchFilters = $this->saved->getParams()->getFilterList();
} else { } else {
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment