diff --git a/appinfo/app.php b/appinfo/app.php
index 73ee9a086..e6e543850 100644
--- a/appinfo/app.php
+++ b/appinfo/app.php
@@ -29,6 +29,7 @@ $app = new \OCA\Deck\AppInfo\Application();
$app->registerNavigationEntry();
$app->registerNotifications();
$app->registerCommentsEntity();
+$app->registerFullTextSearch();
/** Load activity style global so it is availabile in the activity app as well */
\OC_Util::addStyle('deck', 'activity');
diff --git a/appinfo/info.xml b/appinfo/info.xml
index edaf07514..04ed6f0da 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -63,4 +63,9 @@
OCA\Deck\Activity\DeckProvider
+
+
+ OCA\Deck\Provider\DeckProvider
+
+
diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php
index de06ffabf..037e664b6 100644
--- a/lib/AppInfo/Application.php
+++ b/lib/AppInfo/Application.php
@@ -23,6 +23,7 @@
namespace OCA\Deck\AppInfo;
+use Exception;
use OCA\Deck\Activity\CommentEventHandler;
use OCA\Deck\Db\Acl;
use OCA\Deck\Db\AclMapper;
@@ -30,6 +31,7 @@ use OCA\Deck\Db\AssignedUsersMapper;
use OCA\Deck\Db\CardMapper;
use OCA\Deck\Middleware\ExceptionMiddleware;
use OCA\Deck\Notification\Notifier;
+use OCA\Deck\Service\FullTextSearchService;
use OCP\AppFramework\App;
use OCA\Deck\Middleware\SharingMiddleware;
use OCP\Collaboration\Resources\IManager;
@@ -39,13 +41,20 @@ use OCP\IUser;
use OCP\IUserManager;
use OCP\IURLGenerator;
use OCP\INavigationManager;
+use Symfony\Component\EventDispatcher\GenericEvent;
class Application extends App {
+
+ /** @var FullTextSearchService */
+ private $fullTextSearchService;
+
+
/**
* Application constructor.
*
* @param array $urlParams
+ *
* @throws \OCP\AppFramework\QueryException
*/
public function __construct(array $urlParams = array()) {
@@ -179,4 +188,47 @@ class Application extends App {
\OCP\Util::addScript('deck', 'build/collections');
});
}
+
+ public function registerFullTextSearch() {
+
+ $c = $this->getContainer();
+ try {
+ $this->fullTextSearchService = $c->query(FullTextSearchService::class);
+ } catch (Exception $e) {
+ return;
+ }
+
+ $eventDispatcher = \OC::$server->getEventDispatcher();
+ $eventDispatcher->addListener(
+ '\OCA\Deck\Card::onCreate', function(GenericEvent $e) {
+ $this->fullTextSearchService->onCardCreated($e);
+ }
+ );
+ $eventDispatcher->addListener(
+ '\OCA\Deck\Card::onUpdate', function(GenericEvent $e) {
+ $this->fullTextSearchService->onCardUpdated($e);
+ }
+ );
+ $eventDispatcher->addListener(
+ '\OCA\Deck\Card::onDelete', function(GenericEvent $e) {
+ $this->fullTextSearchService->onCardDeleted($e);
+ }
+ );
+ $eventDispatcher->addListener(
+ '\OCA\Deck\Board::onShareNew', function(GenericEvent $e) {
+ $this->fullTextSearchService->onBoardShares($e);
+ }
+ );
+ $eventDispatcher->addListener(
+ '\OCA\Deck\Board::onShareEdit', function(GenericEvent $e) {
+ $this->fullTextSearchService->onBoardShares($e);
+ }
+ );
+ $eventDispatcher->addListener(
+ '\OCA\Deck\Board::onShareDelete', function(GenericEvent $e) {
+ $this->fullTextSearchService->onBoardShares($e);
+ }
+ );
+ }
+
}