memories/lib/Controller/PageController.php

73 lines
1.7 KiB
PHP
Raw Normal View History

2022-08-13 01:58:37 +00:00
<?php
namespace OCA\Memories\Controller;
2022-08-13 01:58:37 +00:00
use OCP\IRequest;
2022-08-20 00:18:04 +00:00
use OCP\AppFramework\Services\IInitialState;
2022-08-13 01:58:37 +00:00
use OCP\AppFramework\Http\TemplateResponse;
2022-08-15 21:41:05 +00:00
use OCA\Viewer\Event\LoadViewer;
2022-08-20 00:18:04 +00:00
use OCA\Files\Event\LoadSidebar;
2022-08-13 01:58:37 +00:00
use OCP\AppFramework\Controller;
2022-08-15 21:41:05 +00:00
use OCP\EventDispatcher\IEventDispatcher;
2022-08-20 00:18:04 +00:00
use OCP\IConfig;
use OCP\IUserSession;
2022-08-14 20:54:18 +00:00
use OCP\Util;
2022-08-13 01:58:37 +00:00
class PageController extends Controller {
2022-08-15 21:41:05 +00:00
protected string $userId;
2022-08-14 20:54:18 +00:00
protected $appName;
2022-08-15 21:41:05 +00:00
protected IEventDispatcher $eventDispatcher;
2022-08-20 00:18:04 +00:00
private IInitialState $initialState;
private IUserSession $userSession;
private IConfig $config;
2022-08-13 01:58:37 +00:00
2022-08-15 21:41:05 +00:00
public function __construct(
string $AppName,
IRequest $request,
string $UserId,
IEventDispatcher $eventDispatcher,
2022-08-20 00:18:04 +00:00
IInitialState $initialState,
IUserSession $userSession,
2022-08-22 18:48:35 +00:00
IConfig $config) {
2022-08-13 01:58:37 +00:00
parent::__construct($AppName, $request);
$this->userId = $UserId;
2022-08-14 20:54:18 +00:00
$this->appName = $AppName;
2022-08-15 21:41:05 +00:00
$this->eventDispatcher = $eventDispatcher;
2022-08-20 00:18:04 +00:00
$this->initialState = $initialState;
$this->userSession = $userSession;
$this->config = $config;
2022-08-13 01:58:37 +00:00
}
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
2022-08-17 20:59:26 +00:00
public function main() {
2022-08-20 00:18:04 +00:00
$user = $this->userSession->getUser();
if (is_null($user)) {
return null;
}
Util::addScript($this->appName, 'memories-main');
2022-08-18 18:49:53 +00:00
Util::addStyle($this->appName, 'custom-icons');
2022-08-14 20:54:18 +00:00
2022-08-20 00:18:04 +00:00
$this->eventDispatcher->dispatchTyped(new LoadSidebar());
2022-08-15 21:41:05 +00:00
$this->eventDispatcher->dispatchTyped(new LoadViewer());
2022-08-20 00:18:04 +00:00
2022-08-20 02:53:21 +00:00
$timelinePath = \OCA\Memories\Util::getPhotosPath($this->config, $user->getUid());
2022-08-20 00:18:04 +00:00
$this->initialState->provideInitialState('timelinePath', $timelinePath);
2022-08-14 20:54:18 +00:00
$response = new TemplateResponse($this->appName, 'main');
return $response;
2022-08-13 01:58:37 +00:00
}
2022-08-17 20:59:26 +00:00
/**
* @NoAdminRequired
* @NoCSRFRequired
*/
2022-09-08 23:57:50 +00:00
public function folder() {
2022-08-17 20:59:26 +00:00
return $this->main();
}
2022-08-13 01:58:37 +00:00
}