aboutsummaryrefslogtreecommitdiffstats
path: root/apps/comments
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2018-07-18 10:12:22 +0200
committerDaniel Calviño Sánchez <danxuliu@gmail.com>2018-07-25 10:26:06 +0200
commit80207d72fa5de7b88dd8fd180acc528a3d9fa8da (patch)
tree9d91191db42b48db4481b5ba73df182353bc6824 /apps/comments
parentfb77ff9da432f5cf304a67a538ed497ee437c155 (diff)
downloadnextcloud-server-80207d72fa5de7b88dd8fd180acc528a3d9fa8da.tar.gz
nextcloud-server-80207d72fa5de7b88dd8fd180acc528a3d9fa8da.zip
Correctly register everything via the Application class
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'apps/comments')
-rw-r--r--apps/comments/appinfo/app.php59
-rw-r--r--apps/comments/lib/AppInfo/Application.php51
2 files changed, 62 insertions, 48 deletions
diff --git a/apps/comments/appinfo/app.php b/apps/comments/appinfo/app.php
index 109063cd22e..6d6775dd152 100644
--- a/apps/comments/appinfo/app.php
+++ b/apps/comments/appinfo/app.php
@@ -1,62 +1,25 @@
<?php
/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
+ * @copyright Copyright (c) 2018, Joas Schilling <coding@schilljs.com>
*
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
* @author Joas Schilling <coding@schilljs.com>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author Vincent Petry <pvince81@owncloud.com>
*
- * @license AGPL-3.0
+ * @license GNU AGPL version 3 or any later version
*
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
+ * You should have received a copy of the GNU Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
-$eventDispatcher = \OC::$server->getEventDispatcher();
-$eventDispatcher->addListener(
- 'OCA\Files::loadAdditionalScripts',
- function() {
- \OCP\Util::addScript('oc-backbone-webdav');
- \OCP\Util::addScript('comments', 'merged');
- \OCP\Util::addStyle('comments', 'autocomplete');
- \OCP\Util::addStyle('comments', 'comments');
- }
-);
-
-$eventDispatcher->addListener(\OCP\Comments\CommentsEntityEvent::EVENT_ENTITY, function(\OCP\Comments\CommentsEntityEvent $event) {
- $event->addEntityCollection('files', function($name) {
- $nodes = \OC::$server->getUserFolder()->getById((int)$name);
- return !empty($nodes);
- });
-});
-
-$notificationManager = \OC::$server->getNotificationManager();
-$notificationManager->registerNotifier(
- function() {
- $application = new \OCP\AppFramework\App('comments');
- return $application->getContainer()->query(\OCA\Comments\Notification\Notifier::class);
- },
- function () {
- $l = \OC::$server->getL10N('comments');
- return ['id' => 'comments', 'name' => $l->t('Comments')];
- }
-);
-
-$commentsManager = \OC::$server->getCommentsManager();
-$commentsManager->registerEventHandler(function () {
- $application = new \OCP\AppFramework\App('comments');
- /** @var \OCA\Comments\EventHandler $handler */
- $handler = $application->getContainer()->query(\OCA\Comments\EventHandler::class);
- return $handler;
-});
+$application = new \OCA\Comments\AppInfo\Application();
+$application->register();
diff --git a/apps/comments/lib/AppInfo/Application.php b/apps/comments/lib/AppInfo/Application.php
index e60f0cbf36b..cbf2733cf3d 100644
--- a/apps/comments/lib/AppInfo/Application.php
+++ b/apps/comments/lib/AppInfo/Application.php
@@ -24,9 +24,13 @@
namespace OCA\Comments\AppInfo;
use OCA\Comments\Controller\Notifications;
+use OCA\Comments\EventHandler;
use OCA\Comments\JSSettingsHelper;
+use OCA\Comments\Notification\Notifier;
use OCP\AppFramework\App;
+use OCP\Comments\CommentsEntityEvent;
use OCP\Util;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
class Application extends App {
@@ -39,4 +43,51 @@ class Application extends App {
$jsSettingsHelper = new JSSettingsHelper($container->getServer());
Util::connectHook('\OCP\Config', 'js', $jsSettingsHelper, 'extend');
}
+
+ public function register() {
+ $dispatcher = $this->getContainer()->getServer()->getEventDispatcher();
+ $this->registerSidebarScripts($dispatcher);
+ $this->registerDavEntity($dispatcher);
+ $this->registerNotifier();
+ $this->registerCommentsEventHandler();
+ }
+
+ protected function registerSidebarScripts(EventDispatcherInterface $dispatcher) {
+ $dispatcher->addListener(
+ 'OCA\Files::loadAdditionalScripts',
+ function() {
+ Util::addScript('oc-backbone-webdav');
+ Util::addScript('comments', 'merged');
+ Util::addStyle('comments', 'autocomplete');
+ Util::addStyle('comments', 'comments');
+ }
+ );
+ }
+
+ protected function registerDavEntity(EventDispatcherInterface $dispatcher) {
+ $dispatcher->addListener(CommentsEntityEvent::EVENT_ENTITY, function(CommentsEntityEvent $event) {
+ $event->addEntityCollection('files', function($name) {
+ $nodes = \OC::$server->getUserFolder()->getById((int)$name);
+ return !empty($nodes);
+ });
+ });
+ }
+
+ protected function registerNotifier() {
+ $this->getContainer()->getServer()->getNotificationManager()->registerNotifier(
+ function() {
+ return $this->getContainer()->query(Notifier::class);
+ },
+ function () {
+ $l = $this->getContainer()->getServer()->getL10NFactory()->get('comments');
+ return ['id' => 'comments', 'name' => $l->t('Comments')];
+ }
+ );
+ }
+
+ protected function registerCommentsEventHandler() {
+ $this->getContainer()->getServer()->getCommentsManager()->registerEventHandler(function () {
+ return $this->getContainer()->query(EventHandler::class);
+ });
+ }
}