From 264be93a74215d3baf19e7a66305a8be2db8cd71 Mon Sep 17 00:00:00 2001 From: Julien Veyssier Date: Wed, 1 Feb 2023 00:20:12 +0100 Subject: [PATCH] fix search provider names/ids, set results thumbnail urls, use them in ref provider Signed-off-by: Julien Veyssier --- img/card.svg | 3 +++ lib/Reference/CardReferenceProvider.php | 7 +++++-- lib/Search/BoardSearchResultEntry.php | 5 ++++- lib/Search/CardCommentProvider.php | 4 ++-- lib/Search/CardSearchResultEntry.php | 11 ++++++++++- lib/Search/CommentSearchResultEntry.php | 5 ++++- lib/Search/DeckProvider.php | 25 +++++++++++-------------- 7 files changed, 39 insertions(+), 21 deletions(-) create mode 100644 img/card.svg diff --git a/img/card.svg b/img/card.svg new file mode 100644 index 000000000..73a4df017 --- /dev/null +++ b/img/card.svg @@ -0,0 +1,3 @@ + + + diff --git a/lib/Reference/CardReferenceProvider.php b/lib/Reference/CardReferenceProvider.php index ec8a62dfe..f0bea2cc0 100644 --- a/lib/Reference/CardReferenceProvider.php +++ b/lib/Reference/CardReferenceProvider.php @@ -70,7 +70,7 @@ class CardReferenceProvider extends ADiscoverableReferenceProvider implements IS * @inheritDoc */ public function getTitle(): string { - return $this->l10n->t('Deck cards'); + return $this->l10n->t('Deck boards, cards and comments'); } /** @@ -93,7 +93,10 @@ class CardReferenceProvider extends ADiscoverableReferenceProvider implements IS * @inheritDoc */ public function getSupportedSearchProviderIds(): array { - return ['deck']; + return [ + 'search-deck-card-board', + 'search-deck-comment', + ]; } /** diff --git a/lib/Search/BoardSearchResultEntry.php b/lib/Search/BoardSearchResultEntry.php index c68fccb86..360cfb474 100644 --- a/lib/Search/BoardSearchResultEntry.php +++ b/lib/Search/BoardSearchResultEntry.php @@ -26,13 +26,16 @@ declare(strict_types=1); namespace OCA\Deck\Search; +use OCA\Deck\AppInfo\Application; use OCA\Deck\Db\Board; use OCP\Search\SearchResultEntry; class BoardSearchResultEntry extends SearchResultEntry { public function __construct(Board $board, $urlGenerator) { parent::__construct( - '', + $urlGenerator->getAbsoluteURL( + $urlGenerator->imagePath(Application::APP_ID, 'deck-dark.svg') + ), $board->getTitle(), '', $urlGenerator->linkToRouteAbsolute('deck.page.index') . '#/board/' . $board->getId(), diff --git a/lib/Search/CardCommentProvider.php b/lib/Search/CardCommentProvider.php index 802cc22c1..4a637a626 100644 --- a/lib/Search/CardCommentProvider.php +++ b/lib/Search/CardCommentProvider.php @@ -49,7 +49,7 @@ class CardCommentProvider implements IProvider { } public function getId(): string { - return 'deck-comment'; + return 'search-deck-comment'; } public function getName(): string { @@ -65,7 +65,7 @@ class CardCommentProvider implements IProvider { $results ); } - + return SearchResult::paginated( $this->l10n->t('Card comments'), $results, diff --git a/lib/Search/CardSearchResultEntry.php b/lib/Search/CardSearchResultEntry.php index a7369b56c..8ce2313b0 100644 --- a/lib/Search/CardSearchResultEntry.php +++ b/lib/Search/CardSearchResultEntry.php @@ -26,6 +26,7 @@ declare(strict_types=1); namespace OCA\Deck\Search; +use OCA\Deck\AppInfo\Application; use OCA\Deck\Db\Board; use OCA\Deck\Db\Card; use OCA\Deck\Db\Stack; @@ -33,6 +34,14 @@ use OCP\Search\SearchResultEntry; class CardSearchResultEntry extends SearchResultEntry { public function __construct(Board $board, Stack $stack, Card $card, $urlGenerator) { - parent::__construct('', $card->getTitle(), $board->getTitle() . ' » ' . $stack->getTitle(), $urlGenerator->linkToRouteAbsolute('deck.page.index') . '#/board/' . $board->getId() . '/card/' . $card->getId(), 'icon-deck'); + parent::__construct( + $urlGenerator->getAbsoluteURL( + $urlGenerator->imagePath(Application::APP_ID, 'card.svg') + ), + $card->getTitle(), + $board->getTitle() . ' » ' . $stack->getTitle(), + $urlGenerator->linkToRouteAbsolute('deck.page.index') . '#/board/' . $board->getId() . '/card/' . $card->getId(), + 'icon-deck' + ); } } diff --git a/lib/Search/CommentSearchResultEntry.php b/lib/Search/CommentSearchResultEntry.php index d8a541413..86f5a004c 100644 --- a/lib/Search/CommentSearchResultEntry.php +++ b/lib/Search/CommentSearchResultEntry.php @@ -26,6 +26,7 @@ declare(strict_types=1); namespace OCA\Deck\Search; +use OCA\Deck\AppInfo\Application; use OCA\Deck\Db\Card; use OCP\IL10N; use OCP\IURLGenerator; @@ -36,7 +37,9 @@ class CommentSearchResultEntry extends SearchResultEntry { public function __construct(string $commentId, string $commentMessage, string $commentAuthor, Card $card, IURLGenerator $urlGenerator, IL10N $l10n) { parent::__construct( - '', + $urlGenerator->getAbsoluteURL( + $urlGenerator->imagePath('core', 'actions/comment.svg') + ), // TRANSLATORS This is describing the author and card title related to a comment e.g. "Jane on MyTask" $l10n->t('%s on %s', [$commentAuthor, $card->getTitle()]), $commentMessage, diff --git a/lib/Search/DeckProvider.php b/lib/Search/DeckProvider.php index 34c47df9f..77794fb16 100644 --- a/lib/Search/DeckProvider.php +++ b/lib/Search/DeckProvider.php @@ -29,6 +29,7 @@ namespace OCA\Deck\Search; use OCA\Deck\Db\Board; use OCA\Deck\Db\Card; use OCA\Deck\Service\SearchService; +use OCP\IL10N; use OCP\IURLGenerator; use OCP\IUser; use OCP\Search\IProvider; @@ -36,30 +37,26 @@ use OCP\Search\ISearchQuery; use OCP\Search\SearchResult; class DeckProvider implements IProvider { - - /** - * @var SearchService - */ - private $searchService; - /** - * @var IURLGenerator - */ - private $urlGenerator; + private IL10N $l10n; + private SearchService $searchService; + private IURLGenerator $urlGenerator; public function __construct( SearchService $searchService, - IURLGenerator $urlGenerator + IURLGenerator $urlGenerator, + IL10N $l10n ) { + $this->l10n = $l10n; $this->searchService = $searchService; $this->urlGenerator = $urlGenerator; } public function getId(): string { - return 'deck'; + return 'search-deck-card-board'; } public function getName(): string { - return 'Deck'; + return $this->l10n->t('Deck boards and cards'); } public function search(IUser $user, ISearchQuery $query): SearchResult { @@ -99,14 +96,14 @@ class DeckProvider implements IProvider { // if both cards and boards results are less then the limit, we know we won't get more if (count($resultEntries) < $query->getLimit()) { return SearchResult::complete( - 'Deck', + $this->getName(), $resultEntries ); } $newCursor = $this->getNewCursor($boardObjects, $cardObjects); return SearchResult::paginated( - 'Deck', + $this->getName(), $resultEntries, $newCursor );