summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Molenaar <sean@seanmolenaar.eu>2023-11-14 15:17:15 +0100
committerSean Molenaar <SMillerDev@users.noreply.github.com>2023-11-15 09:27:41 +0100
commit9f5da17e1d9406d87e0f0b2dd82532377def401f (patch)
treead3b11797d5778648fcc6169035f35fee8ffb3d0
parentafb363931655823956b4e492cb0e410d4a910067 (diff)
fix: adopt search to NC 28 filters
Signed-off-by: Sean Molenaar <sean@seanmolenaar.eu>
-rw-r--r--CHANGELOG.md1
-rw-r--r--lib/Search/FeedSearchProvider.php7
-rw-r--r--lib/Search/FolderSearchProvider.php7
-rw-r--r--lib/Search/ItemSearchProvider.php12
4 files changed, 22 insertions, 5 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 09a91903d..6765f1779 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -7,6 +7,7 @@ The format is mostly based on [Keep a Changelog](https://keepachangelog.com/en/1
### Changed
### Fixed
+- Fix search support for Nextcloud 28
# Releases
## [25.0.0-alpha2] - 2023-11-08
diff --git a/lib/Search/FeedSearchProvider.php b/lib/Search/FeedSearchProvider.php
index 890692efc..65b2059c5 100644
--- a/lib/Search/FeedSearchProvider.php
+++ b/lib/Search/FeedSearchProvider.php
@@ -59,7 +59,12 @@ class FeedSearchProvider implements IProvider
public function search(IUser $user, ISearchQuery $query): SearchResult
{
$list = [];
- $term = strtolower($query->getTerm());
+ if (method_exists($query, 'getFilter')) {
+ $term = $query->getFilter('term')?->get() ?? '';
+ } else {
+ $term = $query->getTerm();
+ }
+ $term = strtolower($term);
foreach ($this->service->findAllForUser($user->getUID()) as $feed) {
if (strpos(strtolower($feed->getTitle()), $term) === false) {
diff --git a/lib/Search/FolderSearchProvider.php b/lib/Search/FolderSearchProvider.php
index 315ac016f..3997eba36 100644
--- a/lib/Search/FolderSearchProvider.php
+++ b/lib/Search/FolderSearchProvider.php
@@ -60,7 +60,12 @@ class FolderSearchProvider implements IProvider
public function search(IUser $user, ISearchQuery $query): SearchResult
{
$list = [];
- $term = strtolower($query->getTerm());
+ if (method_exists($query, 'getFilter')) {
+ $term = $query->getFilter('term')?->get() ?? '';
+ } else {
+ $term = $query->getTerm();
+ }
+ $term = strtolower($term);
foreach ($this->service->findAllForUser($user->getUID()) as $folder) {
if (strpos(strtolower($folder->getName()), $term) === false) {
diff --git a/lib/Search/ItemSearchProvider.php b/lib/Search/ItemSearchProvider.php
index 1c0cb4a06..acc0bcbad 100644
--- a/lib/Search/ItemSearchProvider.php
+++ b/lib/Search/ItemSearchProvider.php
@@ -60,13 +60,13 @@ class ItemSearchProvider implements IProvider
private function stripTruncate(string $string, int $length = 50): string
{
$string = strip_tags(trim($string));
-
+
if (strlen($string) > $length) {
$string = wordwrap($string, $length);
$string = explode("\n", $string, 2);
$string = $string[0];
}
-
+
return $string;
}
@@ -76,13 +76,19 @@ class ItemSearchProvider implements IProvider
$offset = (int) ($query->getCursor() ?? 0);
$limit = $query->getLimit();
+ if (method_exists($query, 'getFilter')) {
+ $term = $query->getFilter('term')?->get() ?? '';
+ } else {
+ $term = $query->getTerm();
+ }
+
$search_result = $this->service->findAllWithFilters(
$user->getUID(),
ListType::ALL_ITEMS,
$limit,
$offset,
false,
- [$query->getTerm()]
+ [$term]
);
$last = end($search_result);