Loading CHANGELOG.txt +2 −0 Original line number Diff line number Diff line Search API 1.x, dev (xxxx-xx-xx): --------------------------------- - #3354906 by ericchew, drunken monkey, miedward: Fixed regression in Views argument plugins (date and All Terms). - #3332036 by drunken monkey, Chris64: Fixed too narrow Drush version constraint in composer.json. - #3217772 by seutje, vector_ray, drunken monkey, Marios Anagnostopoulos: Added Loading src/Plugin/views/argument/SearchApiAllTerms.php +2 −2 Original line number Diff line number Diff line Loading @@ -123,7 +123,7 @@ class SearchApiAllTerms extends SearchApiTerm { // present (to simplify the code below a bit). $vocabulary_fields += ['' => []]; $values = $multi_field_values = []; $term_conditions = $this->query->createConditionGroup($conjunction, [], TRUE); $term_conditions = $this->query->createAndAddConditionGroup($conjunction); foreach ($terms as $term) { // Set filters for all term reference fields which don't specify a // vocabulary, as well as for all fields specifying the term's vocabulary. Loading Loading @@ -181,7 +181,7 @@ class SearchApiAllTerms extends SearchApiTerm { } foreach ($multi_field_values as $value => $fields) { $flipped_conjunction = $conjunction === 'AND' ? 'OR' : 'AND'; $group = $this->query->createConditionGroup($flipped_conjunction, [], FALSE); $group = $this->query->createConditionGroup($flipped_conjunction); $term_conditions->addConditionGroup($group); foreach ($fields as $field) { $group->addCondition($field, $value, $not_negated ? '=' : '<>'); Loading src/Plugin/views/argument/SearchApiDate.php +2 −2 Original line number Diff line number Diff line Loading @@ -79,12 +79,12 @@ class SearchApiDate extends SearchApiStandard { } if (!empty($this->value)) { $outer_conditions = $this->query->createConditionGroup($outer_conjunction, [], TRUE); $outer_conditions = $this->query->createAndAddConditionGroup($outer_conjunction); // @todo Refactor to use only a single nested filter, and only if // necessary. $value_conditions will currently only ever contain a // single child – a condition or a nested filter with two conditions. foreach ($this->value as $value) { $value_conditions = $this->query->createConditionGroup($inner_conjunction, [], FALSE); $value_conditions = $this->query->createConditionGroup($inner_conjunction); $outer_conditions->addConditionGroup($value_conditions); $values = explode(';', $value); $values = array_map([$this, 'getTimestamp'], $values); Loading tests/src/Unit/Views/AllTermsArgumentTest.php +8 −8 Original line number Diff line number Diff line Loading @@ -7,7 +7,6 @@ use Drupal\search_api\Plugin\views\argument\SearchApiAllTerms; use Drupal\search_api\Plugin\views\query\SearchApiQuery; use Drupal\search_api\Query\Condition; use Drupal\search_api\Query\ConditionGroup; use Drupal\search_api\Query\ConditionGroupInterface; use Drupal\taxonomy\TermInterface; use Drupal\Tests\UnitTestCase; use PHPUnit\Framework\Assert; Loading Loading @@ -108,18 +107,19 @@ class AllTermsArgumentTest extends UnitTestCase { */ public function testConditionalFilter() { $query = $this->createMock(SearchApiQuery::class); $query->method('createConditionGroup') $query->method('createAndAddConditionGroup') ->willReturnCallback(function (string $conjunction, array $tags) { Assert::assertEmpty($tags); if (isset($this->conditionGroup)) { return new ConditionGroup($conjunction); } Assert::assertEmpty($this->conditionGroup); return $this->conditionGroup = new ConditionGroup($conjunction); }); $query->method('addConditionGroup') ->willReturnCallback(function (ConditionGroupInterface $added_condition_group, $group = NULL) { Assert::assertEquals(0, $group); Assert::assertSame($this->conditionGroup, $added_condition_group); ->willThrowException(new \Exception('Unexpected call to addConditionGroup().')); $query->method('createConditionGroup') ->willReturnCallback(function (string $conjunction, array $tags) { Assert::assertEmpty($tags); Assert::assertLessThan(3, func_num_args()); return new ConditionGroup($conjunction); }); $query->method('abort') ->willReturnCallback(function ($message = NULL) { Loading Loading
CHANGELOG.txt +2 −0 Original line number Diff line number Diff line Search API 1.x, dev (xxxx-xx-xx): --------------------------------- - #3354906 by ericchew, drunken monkey, miedward: Fixed regression in Views argument plugins (date and All Terms). - #3332036 by drunken monkey, Chris64: Fixed too narrow Drush version constraint in composer.json. - #3217772 by seutje, vector_ray, drunken monkey, Marios Anagnostopoulos: Added Loading
src/Plugin/views/argument/SearchApiAllTerms.php +2 −2 Original line number Diff line number Diff line Loading @@ -123,7 +123,7 @@ class SearchApiAllTerms extends SearchApiTerm { // present (to simplify the code below a bit). $vocabulary_fields += ['' => []]; $values = $multi_field_values = []; $term_conditions = $this->query->createConditionGroup($conjunction, [], TRUE); $term_conditions = $this->query->createAndAddConditionGroup($conjunction); foreach ($terms as $term) { // Set filters for all term reference fields which don't specify a // vocabulary, as well as for all fields specifying the term's vocabulary. Loading Loading @@ -181,7 +181,7 @@ class SearchApiAllTerms extends SearchApiTerm { } foreach ($multi_field_values as $value => $fields) { $flipped_conjunction = $conjunction === 'AND' ? 'OR' : 'AND'; $group = $this->query->createConditionGroup($flipped_conjunction, [], FALSE); $group = $this->query->createConditionGroup($flipped_conjunction); $term_conditions->addConditionGroup($group); foreach ($fields as $field) { $group->addCondition($field, $value, $not_negated ? '=' : '<>'); Loading
src/Plugin/views/argument/SearchApiDate.php +2 −2 Original line number Diff line number Diff line Loading @@ -79,12 +79,12 @@ class SearchApiDate extends SearchApiStandard { } if (!empty($this->value)) { $outer_conditions = $this->query->createConditionGroup($outer_conjunction, [], TRUE); $outer_conditions = $this->query->createAndAddConditionGroup($outer_conjunction); // @todo Refactor to use only a single nested filter, and only if // necessary. $value_conditions will currently only ever contain a // single child – a condition or a nested filter with two conditions. foreach ($this->value as $value) { $value_conditions = $this->query->createConditionGroup($inner_conjunction, [], FALSE); $value_conditions = $this->query->createConditionGroup($inner_conjunction); $outer_conditions->addConditionGroup($value_conditions); $values = explode(';', $value); $values = array_map([$this, 'getTimestamp'], $values); Loading
tests/src/Unit/Views/AllTermsArgumentTest.php +8 −8 Original line number Diff line number Diff line Loading @@ -7,7 +7,6 @@ use Drupal\search_api\Plugin\views\argument\SearchApiAllTerms; use Drupal\search_api\Plugin\views\query\SearchApiQuery; use Drupal\search_api\Query\Condition; use Drupal\search_api\Query\ConditionGroup; use Drupal\search_api\Query\ConditionGroupInterface; use Drupal\taxonomy\TermInterface; use Drupal\Tests\UnitTestCase; use PHPUnit\Framework\Assert; Loading Loading @@ -108,18 +107,19 @@ class AllTermsArgumentTest extends UnitTestCase { */ public function testConditionalFilter() { $query = $this->createMock(SearchApiQuery::class); $query->method('createConditionGroup') $query->method('createAndAddConditionGroup') ->willReturnCallback(function (string $conjunction, array $tags) { Assert::assertEmpty($tags); if (isset($this->conditionGroup)) { return new ConditionGroup($conjunction); } Assert::assertEmpty($this->conditionGroup); return $this->conditionGroup = new ConditionGroup($conjunction); }); $query->method('addConditionGroup') ->willReturnCallback(function (ConditionGroupInterface $added_condition_group, $group = NULL) { Assert::assertEquals(0, $group); Assert::assertSame($this->conditionGroup, $added_condition_group); ->willThrowException(new \Exception('Unexpected call to addConditionGroup().')); $query->method('createConditionGroup') ->willReturnCallback(function (string $conjunction, array $tags) { Assert::assertEmpty($tags); Assert::assertLessThan(3, func_num_args()); return new ConditionGroup($conjunction); }); $query->method('abort') ->willReturnCallback(function ($message = NULL) { Loading