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