fix: adopt search to NC 28 filters

Signed-off-by: Sean Molenaar <sean@seanmolenaar.eu>
This commit is contained in:
Sean Molenaar 2023-11-14 15:17:15 +01:00 committed by Sean Molenaar
parent afb3639316
commit 9f5da17e1d
4 changed files with 22 additions and 5 deletions

View File

@ -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

View File

@ -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) {

View File

@ -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) {

View File

@ -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);