Fix incorrect treatment of empty search results

This commit is contained in:
Björn Fromme
2018-09-13 21:00:35 +02:00
parent 63361dd524
commit c68232de86
2 changed files with 14 additions and 10 deletions
@@ -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);