diff options
author | Vincent Petry <pvince81@owncloud.com> | 2014-05-08 16:24:24 +0200 |
---|---|---|
committer | Vincent Petry <pvince81@owncloud.com> | 2014-05-15 17:51:04 +0200 |
commit | 88ebb15f1d91b82022e02903ab73338065e223b9 (patch) | |
tree | fab7c807dc21209aa00980701107e26d695dba74 /apps/files | |
parent | 9ccb3279dd09b7042ab07c936a4c04127282476f (diff) | |
download | nextcloud-server-88ebb15f1d91b82022e02903ab73338065e223b9.tar.gz nextcloud-server-88ebb15f1d91b82022e02903ab73338065e223b9.zip |
Added navigation manager in files app for the sidebar
Apps can now register navigation items into the sidebar of the files app.
For every sidebar item there is a container.
The container's content is rendered based on the script name given at
registration time.
Diffstat (limited to 'apps/files')
-rw-r--r-- | apps/files/index.php | 40 | ||||
-rw-r--r-- | apps/files/lib/app.php | 17 | ||||
-rw-r--r-- | apps/files/templates/appnavigation.php | 8 | ||||
-rw-r--r-- | apps/files/templates/index.php | 8 |
4 files changed, 58 insertions, 15 deletions
diff --git a/apps/files/index.php b/apps/files/index.php index df207582dd6..ea57a548a22 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -83,16 +83,37 @@ if (OC_App::isEnabled('files_encryption')) { $encryptionInitStatus = $session->getInitialized(); } -$trashEnabled = \OCP\App::isEnabled('files_trashbin'); -$trashEmpty = true; -if ($trashEnabled) { - $trashEmpty = \OCA\Files_Trashbin\Trashbin::isEmpty($user); -} - $nav = new OCP\Template('files', 'appnavigation', ''); -$nav->assign('trash', $trashEnabled); -$nav->assign('trashEmpty', $trashEmpty); +$navItems = \OCA\Files\App::getNavigationManager()->getAll(); +$nav->assign('navigationItems', $navItems); + +$contentItems = array(); + +function renderScript($appName, $scriptName) { + $content = ''; + $appPath = OC_App::getAppPath($appName); + $scriptPath = $appPath . '/' . $scriptName; + if (file_exists($scriptPath)) { + // TODO: sanitize path / script name ? + ob_start(); + include $scriptPath; + $content = ob_get_contents(); + @ob_end_clean(); + } + return $content; +} + +foreach ($navItems as $item) { + $content = ''; + if (isset($item['script'])) { + $content = renderScript($item['appname'], $item['script']); + } + $contentItem = array(); + $contentItem['appname'] = $item['appname']; + $contentItem['content'] = $content; + $contentItems[] = $contentItem; +} OCP\Util::addscript('files', 'fileactions'); OCP\Util::addscript('files', 'files'); @@ -100,8 +121,6 @@ OCP\Util::addscript('files', 'keyboardshortcuts'); $tmpl = new OCP\Template('files', 'index', 'user'); $tmpl->assign('dir', $dir); $tmpl->assign('permissions', $permissions); -$tmpl->assign('trash', $trashEnabled); -$tmpl->assign('trashEmpty', $trashEmpty); $tmpl->assign('uploadMaxFilesize', $maxUploadFilesize); // minimium of freeSpace and uploadLimit $tmpl->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize)); $tmpl->assign('freeSpace', $freeSpace); @@ -116,5 +135,6 @@ $tmpl->assign("allowShareWithLink", $config->getAppValue('core', 'shareapi_allow $tmpl->assign("encryptionInitStatus", $encryptionInitStatus); $tmpl->assign('disableSharing', false); $tmpl->assign('appNavigation', $nav); +$tmpl->assign('appContents', $contentItems); $tmpl->printPage(); diff --git a/apps/files/lib/app.php b/apps/files/lib/app.php index ed4aa32c662..e32225d0680 100644 --- a/apps/files/lib/app.php +++ b/apps/files/lib/app.php @@ -31,6 +31,11 @@ class App { private $l10n; /** + * @var \OCP\INavigationManager + */ + private static $navigationManager; + + /** * @var \OC\Files\View */ private $view; @@ -41,6 +46,18 @@ class App { } /** + * Returns the app's navigation manager + * + * @return \OCP\INavigationManager + */ + public static function getNavigationManager() { + if (self::$navigationManager === null) { + self::$navigationManager = new \OC\NavigationManager(); + } + return self::$navigationManager; + } + + /** * rename a file * * @param string $dir diff --git a/apps/files/templates/appnavigation.php b/apps/files/templates/appnavigation.php index 22987ec637c..a2fffd4c4b2 100644 --- a/apps/files/templates/appnavigation.php +++ b/apps/files/templates/appnavigation.php @@ -1,10 +1,10 @@ <div id="app-navigation"> <ul> - <li class="allfiles"><a href="<?php p(OC_Helper::linkTo('files', '')) ?>"><?php p($l->t('All Files'));?></a></li> + <li class="nav-allfiles"><a href="<?php p(OC_Helper::linkTo('files', '')) ?>"><?php p($l->t('All Files'));?></a></li> <li class="sep"></li> - <?php if ($_['trash'] ): ?> - <li class="trash"><a href="<?php p(OC_Helper::linkTo('files_trashbin', 'index.php')) ?>"><?php p($l->t('Deleted files'));?></a></li> - <?php endif; ?> + <?php foreach ($_['navigationItems'] as $item) { ?> + <li class="nav-<?php p($item['appname']) ?>"><a href="<?php p(isset($item['href']) ? $item['href'] : '#') ?>"><?php p($item['name']);?></a></li> + <?php } ?> </ul> <div id="app-settings"> <div id="app-settings-header"> diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 9ed294e6b6f..335e2b2acd7 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -1,6 +1,7 @@ <?php /** @var $l OC_L10N */ ?> <?php $_['appNavigation']->printPage(); ?> <div id="app-content"> +<div id="app-content-files"> <div id="controls"> <div class="actions creatable hidden"> <?php if(!isset($_['dirToken'])):?> @@ -110,7 +111,12 @@ <?php p($l->t('Current scanning'));?> <span id='scan-current'></span> </p> </div> - +</div><!-- closing app-content-files --> + <?php foreach ($_['appContents'] as $content) { ?> + <div id="app-content-<?php p($content['appname']) ?>" class="hidden"> + <?php print_unescaped($content['content']) ?> + </div> + <?php } ?> </div><!-- closing app-content --> <!-- config hints for javascript --> |