fix: adopt search to NC 28 filters
Signed-off-by: Sean Molenaar <sean@seanmolenaar.eu>
This commit is contained in:
parent
afb3639316
commit
9f5da17e1d
|
@ -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
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue