Skip to content
Snippets Groups Projects
Unverified Commit 32ded877 authored by Christoph Wurst's avatar Christoph Wurst Committed by GitHub
Browse files

Merge pull request #24474 from nextcloud/enhancement/unified-search-result-attributes

Allow unified search results to have attributes
parents 3f88dbd2 885dabb7
No related branches found
No related tags found
No related merge requests found
......@@ -110,13 +110,16 @@ class FilesSearchProvider implements IProvider {
? $this->urlGenerator->linkToRouteAbsolute('core.Preview.getPreviewByFileId', ['x' => 32, 'y' => 32, 'fileId' => $result->id])
: '';
return new SearchResultEntry(
$searchResultEntry = new SearchResultEntry(
$thumbnailUrl,
$result->name,
$this->formatSubline($result),
$this->urlGenerator->getAbsoluteURL($result->link),
$result->type === 'folder' ? 'icon-folder' : $this->mimeTypeDetector->mimeTypeIcon($result->mime_type)
);
$searchResultEntry->addAttribute('fileId', (string)$result->id);
$searchResultEntry->addAttribute('path', $result->path);
return $searchResultEntry;
}, $this->fileSearch->search($query->getTerm()))
);
}
......
......@@ -82,6 +82,13 @@ class SearchResultEntry implements JsonSerializable {
*/
protected $rounded;
/**
* @var string[]
* @psalm-var array<string, string>
* @since 20.0.0
*/
protected $attributes = [];
/**
* @param string $thumbnailUrl a relative or absolute URL to the thumbnail or icon of the entry
* @param string $title a main title of the entry
......@@ -106,6 +113,19 @@ class SearchResultEntry implements JsonSerializable {
$this->rounded = $rounded;
}
/**
* Add optional attributes to the result entry, e.g. an ID or some other
* context information that can be read by the client application
*
* @param string $key
* @param string $value
*
* @since 20.0.0
*/
public function addAttribute(string $key, string $value): void {
$this->attributes[$key] = $value;
}
/**
* @return array
*
......@@ -119,6 +139,7 @@ class SearchResultEntry implements JsonSerializable {
'resourceUrl' => $this->resourceUrl,
'icon' => $this->icon,
'rounded' => $this->rounded,
'attributes' => $this->attributes,
];
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment