Fix incorrect treatment of empty search results
This commit is contained in:
@@ -91,31 +91,35 @@ class AjaxSearchController extends ActionController
|
||||
{
|
||||
$dateSelected = false;
|
||||
$organic = true;
|
||||
$forcedConceptUid = (int) $this->settings['forcedConceptUid'];
|
||||
$excludedConceptUids = GeneralUtility::trimExplode(',', $this->settings['excludedConceptUids']);
|
||||
|
||||
if ($filterSettings === null) {
|
||||
$forcedConceptUid = (int) $this->settings['forcedConceptUid'];
|
||||
$filterSettings = $this->filterService->getDefaultFilterSettings($forcedConceptUid);
|
||||
} elseif ($filterSettings->getDateFrom() !== null || $filterSettings->getDateTo() !== null) {
|
||||
}
|
||||
|
||||
if ($filterSettings->getDateFrom() !== null || $filterSettings->getDateTo() !== null) {
|
||||
$dateSelected = true;
|
||||
}
|
||||
$excludedConceptUids = GeneralUtility::trimExplode(',', $this->settings['excludedConceptUids']);
|
||||
$filterOptions = $this->filterService->getFilterOptions($filterSettings, $excludedConceptUids);
|
||||
if ($filterOptions === null) {
|
||||
$filterSettings = $this->filterService->getDefaultFilterSettings();
|
||||
$filterOptions = $this->filterService->getFilterOptions($filterSettings, $excludedConceptUids);
|
||||
}
|
||||
|
||||
$searchResult = $this->searchResultService->getResult($filterSettings, $excludedConceptUids);
|
||||
|
||||
if ($searchResult->getTotal() === 0) {
|
||||
$filterSettings = $this->filterService->getDefaultFilterSettings();
|
||||
$filterSettings = $this->filterService->getDefaultFilterSettings($forcedConceptUid);
|
||||
$searchResult = $this->searchResultService->getResult($filterSettings, $excludedConceptUids);
|
||||
$organic = false;
|
||||
}
|
||||
|
||||
$filterOptions = $this->filterService->getFilterOptions($filterSettings, $excludedConceptUids);
|
||||
|
||||
$options = [
|
||||
'defaultDetailPageUid' => $this->settings['defaultDetailPageUid'],
|
||||
'referringPageUid' => $referringPageUid,
|
||||
'filterSettings' => $filterSettings,
|
||||
];
|
||||
|
||||
$this->searchResultUrlService->process($searchResult, $options);
|
||||
|
||||
return json_encode([
|
||||
'data' => $searchResult->getData(),
|
||||
'filterOptions' => $filterOptions,
|
||||
|
||||
@@ -91,7 +91,7 @@ class FilterService implements SingletonInterface
|
||||
}
|
||||
$filterOptionsData = static::$cache['filterOptions'][$key];
|
||||
if (count($filterOptionsData) === 0) {
|
||||
return null;
|
||||
return new FilterOptions();
|
||||
}
|
||||
$dateRange = $this->constrainDateRange($this->getDateRange());
|
||||
return $this->preprocessFilterOptions($filterOptionsData, $dateRange);
|
||||
|
||||
Reference in New Issue
Block a user