X-Git-Url: https://git.cweiske.de/grauphel.git/blobdiff_plain/9150b1d1f25a5f278ed44e4d3afe32de5ef8ccc3..cd37bde4ef0747a11c1221e937027fe17f2894fe:/controller/guicontroller.php?ds=sidebyside diff --git a/controller/guicontroller.php b/controller/guicontroller.php index e3753d7..b92d374 100644 --- a/controller/guicontroller.php +++ b/controller/guicontroller.php @@ -29,13 +29,13 @@ use \OCP\AppFramework\Http\TemplateResponse; */ class GuiController extends Controller { - /** - * constructor of the controller + /** + * constructor of the controller * - * @param string $appName Name of the app - * @param IRequest $request Instance of the request - */ - public function __construct($appName, \OCP\IRequest $request, $user, $urlGen) + * @param string $appName Name of the app + * @param IRequest $request Instance of the request + */ + public function __construct($appName, \OCP\IRequest $request, $user, $urlGen) { parent::__construct($appName, $request); $this->user = $user; @@ -56,18 +56,67 @@ class GuiController extends Controller */ public function index() { + $this->checkDeps(); + $res = new TemplateResponse('grauphel', 'index'); $res->setParams( array( - 'apiurl' => $this->urlGen->getAbsoluteURL( - $this->urlGen->linkToRoute( - 'grauphel.gui.index' - ) - ), + 'apiroot' => $this->getApiRootUrl(), + 'apiurl' => $this->urlGen->linkToRoute('grauphel.api.index') ) ); + $this->addNavigation($res); + $this->addStats($res); return $res; + } + + protected function addNavigation(TemplateResponse $res) + { + $nav = new \OCP\Template('grauphel', 'appnavigation', ''); + $nav->assign('apiroot', $this->getApiRootUrl()); + + $params = $res->getParams(); + $params['appNavigation'] = $nav; + $res->setParams($params); + } + + protected function addStats(TemplateResponse $res) + { + if ($this->user === null) { + return; + } + $username = $this->user->getUid(); + $notes = new \OCA\Grauphel\Lib\NoteStorage($this->urlGen); + $notes->setUsername($username); + $tokens = new \OCA\Grauphel\Lib\TokenStorage(); + + $nav = new \OCP\Template('grauphel', 'indexStats', ''); + $nav->assign('notes', count($notes->loadNotesOverview())); + $nav->assign('syncrev', $notes->loadSyncData()->latestSyncRevision); + $nav->assign('tokens', count($tokens->loadForUser($username, 'access'))); + + $params = $res->getParams(); + $params['stats'] = $nav; + $res->setParams($params); + } + + protected function checkDeps() + { + if (!class_exists('OAuthProvider')) { + throw new \Exception('PHP extension "oauth" is required'); + } + } + + protected function getApiRootUrl() + { + //we need to remove the trailing / for tomdroid and conboy + return rtrim( + $this->urlGen->getAbsoluteURL( + $this->urlGen->linkToRoute('grauphel.gui.index') + ), + '/' + ); } } ?>