aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files_sharing/lib/AppInfo
diff options
context:
space:
mode:
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2019-11-05 15:10:54 +0100
committerJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>2019-12-02 08:58:50 +0100
commitf8af02768696ab750e6830048259cd12ba79263e (patch)
tree9eaa93facfd7c9c3eeccfe43a6209b4e21a28c0c /apps/files_sharing/lib/AppInfo
parente98ae45b8311d8d10aba2ec46830de02694f7f88 (diff)
downloadnextcloud-server-f8af02768696ab750e6830048259cd12ba79263e.tar.gz
nextcloud-server-f8af02768696ab750e6830048259cd12ba79263e.zip
Fix files_sharing app LoadSidebar event
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'apps/files_sharing/lib/AppInfo')
-rw-r--r--apps/files_sharing/lib/AppInfo/Application.php105
1 files changed, 94 insertions, 11 deletions
diff --git a/apps/files_sharing/lib/AppInfo/Application.php b/apps/files_sharing/lib/AppInfo/Application.php
index a9060763a2b..1e1a2ca1c8b 100644
--- a/apps/files_sharing/lib/AppInfo/Application.php
+++ b/apps/files_sharing/lib/AppInfo/Application.php
@@ -34,29 +34,44 @@ use OCA\Files_Sharing\Capabilities;
use OCA\Files_Sharing\Controller\ExternalSharesController;
use OCA\Files_Sharing\Controller\ShareController;
use OCA\Files_Sharing\External\Manager;
+use OCA\Files_Sharing\Listener\LoadAdditionalListener;
+use OCA\Files_Sharing\Listener\LoadSidebarListener;
use OCA\Files_Sharing\Middleware\OCSShareAPIMiddleware;
use OCA\Files_Sharing\Middleware\ShareInfoMiddleware;
use OCA\Files_Sharing\Middleware\SharingCheckMiddleware;
use OCA\Files_Sharing\MountProvider;
use OCA\Files_Sharing\Notification\Listener;
use OCA\Files_Sharing\Notification\Notifier;
+use OCA\Files\Event\LoadAdditionalScriptsEvent;
+use OCA\Files\Event\LoadSidebar;
use OCP\AppFramework\App;
use OCP\AppFramework\Utility\IControllerMethodReflector;
use OCP\Defaults;
+use OCP\EventDispatcher\IEventDispatcher;
use OCP\Federation\ICloudIdManager;
use OCP\IContainer;
+use OCP\Files\Config\IMountProviderCollection;
use OCP\IGroup;
use OCP\IServerContainer;
use Symfony\Component\EventDispatcher\GenericEvent;
class Application extends App {
- public function __construct(array $urlParams = array()) {
- parent::__construct('files_sharing', $urlParams);
+
+ const APP_ID = 'files_sharing';
+
+ public function __construct(array $urlParams = []) {
+ parent::__construct(self::APP_ID, $urlParams);
$container = $this->getContainer();
+
/** @var IServerContainer $server */
$server = $container->getServer();
+ /** @var IEventDispatcher $dispatcher */
+ $dispatcher = $container->query(IEventDispatcher::class);
+ $mountProviderCollection = $server->getMountProviderCollection();
+ $notifications = $server->getNotificationManager();
+
/**
* Controllers
*/
@@ -164,26 +179,32 @@ class Application extends App {
);
});
- /*
+ /**
* Register capabilities
*/
$container->registerCapability(Capabilities::class);
- /** @var \OCP\Notification\IManager $notifications */
- $notifications = $container->query(\OCP\Notification\IManager::class);
$notifications->registerNotifierService(Notifier::class);
+
+ $this->registerMountProviders($mountProviderCollection);
+ $this->registerEventsScripts($dispatcher);
+ $this->setupSharingMenus();
}
- public function registerMountProviders() {
- /** @var \OCP\IServerContainer $server */
- $server = $this->getContainer()->query('ServerContainer');
- $mountProviderCollection = $server->getMountProviderCollection();
+ protected function registerMountProviders(IMountProviderCollection $mountProviderCollection) {
$mountProviderCollection->registerProvider($this->getContainer()->query('MountProvider'));
$mountProviderCollection->registerProvider($this->getContainer()->query('ExternalMountProvider'));
}
- public function register(): void {
- $dispatcher = $this->getContainer()->getServer()->getEventDispatcher();
+ protected function registerEventsScripts(IEventDispatcher $dispatcher) {
+ // sidebar and files scripts
+ $dispatcher->addServiceListener(LoadAdditionalScriptsEvent::class, LoadAdditionalListener::class);
+ $dispatcher->addServiceListener(LoadSidebar::class, LoadSidebarListener::class);
+ $dispatcher->addListener('\OCP\Collaboration\Resources::loadAdditionalScripts', function() {
+ \OCP\Util::addScript('files_sharing', 'dist/collaboration');
+ });
+
+ // notifications api to accept incoming user shares
$dispatcher->addListener('OCP\Share::postShare', function(GenericEvent $event) {
/** @var Listener $listener */
$listener = $this->getContainer()->query(Listener::class);
@@ -195,4 +216,66 @@ class Application extends App {
$listener->userAddedToGroup($event);
});
}
+
+ protected function setupSharingMenus() {
+ $config = \OC::$server->getConfig();
+ $l = \OC::$server->getL10N('files_sharing');
+
+ if ($config->getAppValue('core', 'shareapi_enabled', 'yes') !== 'yes') {
+ return;
+ }
+
+ $sharingSublistArray = [];
+
+ if (\OCP\Util::isSharingDisabledForUser() === false) {
+ array_push($sharingSublistArray, [
+ 'id' => 'sharingout',
+ 'appname' => 'files_sharing',
+ 'script' => 'list.php',
+ 'order' => 16,
+ 'name' => $l->t('Shared with others'),
+ ]);
+ }
+
+ array_push($sharingSublistArray, [
+ 'id' => 'sharingin',
+ 'appname' => 'files_sharing',
+ 'script' => 'list.php',
+ 'order' => 15,
+ 'name' => $l->t('Shared with you'),
+ ]);
+
+ if (\OCP\Util::isSharingDisabledForUser() === false) {
+ // Check if sharing by link is enabled
+ if ($config->getAppValue('core', 'shareapi_allow_links', 'yes') === 'yes') {
+ array_push($sharingSublistArray, [
+ 'id' => 'sharinglinks',
+ 'appname' => 'files_sharing',
+ 'script' => 'list.php',
+ 'order' => 17,
+ 'name' => $l->t('Shared by link'),
+ ]);
+ }
+ }
+
+ array_push($sharingSublistArray, [
+ 'id' => 'deletedshares',
+ 'appname' => 'files_sharing',
+ 'script' => 'list.php',
+ 'order' => 19,
+ 'name' => $l->t('Deleted shares'),
+ ]);
+
+ // show_Quick_Access stored as string
+ \OCA\Files\App::getNavigationManager()->add([
+ 'id' => 'shareoverview',
+ 'appname' => 'files_sharing',
+ 'script' => 'list.php',
+ 'order' => 18,
+ 'name' => $l->t('Shares'),
+ 'classes' => 'collapsible',
+ 'sublist' => $sharingSublistArray,
+ 'expandedState' => 'show_sharing_menu'
+ ]);
+ }
}