diff --git a/app/Entity.php b/app/Entity.php index 8a15b5aa4..186059f00 100644 --- a/app/Entity.php +++ b/app/Entity.php @@ -175,7 +175,8 @@ class Entity extends Ownable } } - $isFuzzy = count($exactTerms) === 0 || count($fuzzyTerms) > 0; + $isFuzzy = count($exactTerms) === 0 && count($fuzzyTerms) > 0; + // Perform fulltext search if relevant terms exist. if ($isFuzzy) { diff --git a/resources/assets/sass/_pages.scss b/resources/assets/sass/_pages.scss index c7d3e0377..880a9fdcc 100755 --- a/resources/assets/sass/_pages.scss +++ b/resources/assets/sass/_pages.scss @@ -238,6 +238,9 @@ flex-direction: column; overflow-y: scroll; } + table td, table th { + overflow: visible; + } } [toolbox-tab-content] { diff --git a/tests/Entity/EntitySearchTest.php b/tests/Entity/EntitySearchTest.php index cfdabdb0a..60b5ceebd 100644 --- a/tests/Entity/EntitySearchTest.php +++ b/tests/Entity/EntitySearchTest.php @@ -97,6 +97,39 @@ class EntitySearchTest extends TestCase ->seeStatusCode(200); } + public function test_tag_search() + { + $newTags = [ + new \BookStack\Tag([ + 'name' => 'animal', + 'value' => 'cat' + ]), + new \BookStack\Tag([ + 'name' => 'color', + 'value' => 'red' + ]) + ]; + + $pageA = \BookStack\Page::first(); + $pageA->tags()->saveMany($newTags); + + $pageB = \BookStack\Page::all()->last(); + $pageB->tags()->create(['name' => 'animal', 'value' => 'dog']); + + $this->asAdmin()->visit('/search/all?term=%5Banimal%5D') + ->seeLink($pageA->name) + ->seeLink($pageB->name); + + $this->visit('/search/all?term=%5Bcolor%5D') + ->seeLink($pageA->name) + ->dontSeeLink($pageB->name); + + $this->visit('/search/all?term=%5Banimal%3Dcat%5D') + ->seeLink($pageA->name) + ->dontSeeLink($pageB->name); + + } + public function test_ajax_entity_search() { $page = \BookStack\Page::all()->last();