UPSTREAM BASELINE: nextcloud/spreed v22.0.12 (без изменений)
Type checking / changes (push) Has been cancelled
Type checking / test (push) Has been cancelled
Type checking / typescript-summary (push) Has been cancelled
Node tests / changes (push) Has been cancelled
Node tests / test (push) Has been cancelled
Node tests / test-summary (push) Has been cancelled

Источник: https://github.com/nextcloud/spreed/archive/refs/tags/v22.0.12.tar.gz
С этого коммита ветка официального Nextcloud Talk отрезана (решение владельца 2026-07-06).
Все дальнейшие изменения — только наши; версии релизов: 22.0.12-f7.N.
This commit is contained in:
2026-07-06 14:07:50 +00:00
commit 01acfa3b40
1716 changed files with 613013 additions and 0 deletions
+95
View File
@@ -0,0 +1,95 @@
<?php
declare(strict_types=1);
/**
* SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
namespace OCA\Talk\Search;
use OCA\Talk\Exceptions\ParticipantNotFoundException;
use OCA\Talk\Exceptions\RoomNotFoundException;
use OCP\IUser;
use OCP\Search\ISearchQuery;
use OCP\Search\SearchResult;
class CurrentMessageSearch extends MessageSearch {
/**
* @inheritDoc
*/
#[\Override]
public function getId(): string {
return 'talk-message-current';
}
/**
* @inheritDoc
*/
#[\Override]
public function getName(): string {
return $this->l->t('Messages in current conversation');
}
/**
* @inheritDoc
*/
#[\Override]
public function getOrder(string $route, array $routeParameters): ?int {
$currentUser = $this->userSession->getUser();
if ($currentUser && $this->talkConfig->isDisabledForUser($currentUser)) {
return null;
}
if ($route === 'spreed.Page.showCall') {
// In conversation, prefer this search results
return -3;
}
// We are not returning something anyway.
return null;
}
#[\Override]
protected function getSublineTemplate(): string {
return $this->l->t('{user}');
}
/**
* @inheritDoc
*/
#[\Override]
public function search(IUser $user, ISearchQuery $query): SearchResult {
$title = $this->l->t('Messages');
$currentToken = $this->getCurrentConversationToken($query);
if ($currentToken === '') {
return SearchResult::complete($title, []);
}
$filter = $query->getFilter(self::CONVERSATION_FILTER);
if ($filter && $filter->get() !== $currentToken) {
return SearchResult::complete($title, []);
}
try {
$room = $this->roomManager->getRoomForUserByToken(
$currentToken,
$user->getUID()
);
} catch (RoomNotFoundException) {
return SearchResult::complete($title, []);
}
try {
$this->participantService->getParticipant($room, $user->getUID(), false);
} catch (ParticipantNotFoundException) {
return SearchResult::complete($title, []);
}
if ($room->isFederatedConversation()) {
return SearchResult::complete($title, []);
}
return $this->performSearch($user, $query, $this->l->t('Messages'), [$room], true);
}
}