Skip to content

Commit 2e5cc2a

Browse files
authored
Merge pull request #273 from esmero/ISSUE-271
ISSUE-271: Deal with Empty Queries on Advanced and Facet Summary for Queries
2 parents eab97ad + 76bdb7f commit 2e5cc2a

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

modules/format_strawberryfield_facets/src/Plugin/facets_summary/processor/LastActiveFacetsProcessor.php

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public function build(FacetsSummaryInterface $facets_summary, array $build, arra
4747
);
4848
}
4949

50-
if ($results_count == 0) {
50+
if ($results_count == 0 && $results_query) {
5151
$results = [];
5252
foreach ($facets as $facet) {
5353
$build_stage_processors = $facet->getProcessorsByStage(ProcessorInterface::STAGE_BUILD);
@@ -125,7 +125,7 @@ public function build(FacetsSummaryInterface $facets_summary, array $build, arra
125125
}
126126
}
127127

128-
if ($config['settings']['enable_query'] ?? FALSE) {
128+
if ($config['settings']['enable_query'] ?? FALSE && $results_query) {
129129
// The original View
130130
/** @var \Drupal\views\ViewExecutable $view */
131131
$view = $results_query->getQuery()->getOptions()['search_api_view'];
@@ -231,20 +231,24 @@ public function build(FacetsSummaryInterface $facets_summary, array $build, arra
231231
if (in_array($key, $keys_to_filter)) {
232232
$search_term = NULL;
233233
if (in_array($key, $key_with_search_value)) {
234-
$search_term = $exposed_input[$key] ?? NULL;
235-
$search_terms[] = $search_term !== NULL ? '"'.$search_term.'"' : NULL;
234+
$search_terms[] = $exposed_input[$key] ?? NULL;
236235
}
237236
unset($params[$key]);
238237
}
239238
}
240239

241-
$search_terms = array_filter($search_terms);
240+
$search_terms = array_filter($search_terms, function ($element) {
241+
return ((is_string($element) && '' !== trim($element)) || is_numeric($element));
242+
});
243+
242244

243245
if (count($search_terms)) {
244246
$url_active->setOption('query', $params);
245247
$item = [
246248
'#theme' => 'facets_result_item__summary',
247-
'#value' => implode(" ", $search_terms),
249+
'#value' => implode(" ", array_map(function($string) {
250+
return '"' . $string . '"';
251+
}, $search_terms)),
248252
'#show_count' => FALSE,
249253
'#count' => 0,
250254
'#is_active' => TRUE,

modules/format_strawberryfield_views/src/Plugin/views/filter/AdvancedSearchApiFulltext.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@ public function query() {
211211

212212
foreach ($this->value as $exposed_value_id => $exposed_value) {
213213
// Catch empty strings entered by the user, but not "0".
214-
if ($exposed_value === '') {
214+
if (trim($exposed_value) === '') {
215215
unset($this->value[$exposed_value_id]);
216216
unset($this->searchedFields[$exposed_value_id]);
217217
}

0 commit comments

Comments
 (0)