Skip to content
Merged
Prev Previous commit
Next Next commit
Introduce initial state for document loading and handle logo
Signed-off-by: Julius Härtl <[email protected]>
  • Loading branch information
juliusknorr committed Nov 10, 2021
commit f2fe65a84e5770a3549d0a1555a827f604a3d964
28 changes: 26 additions & 2 deletions lib/Controller/DocumentController.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,13 +11,15 @@

namespace OCA\Richdocuments\Controller;

use OCA\Richdocuments\Db\Wopi;
use OCA\Richdocuments\Events\BeforeFederationRedirectEvent;
use OCA\Richdocuments\Service\FederationService;
use OCA\Richdocuments\TokenManager;
use \OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse;
use OCP\AppFramework\Http\RedirectResponse;
use OCP\AppFramework\Services\IInitialState;
use OCP\Constants;
use OCP\Files\File;
use OCP\Files\Folder;
Expand Down Expand Up @@ -95,7 +97,8 @@ public function __construct(
ILogger $logger,
\OCA\Richdocuments\TemplateManager $templateManager,
FederationService $federationService,
Helper $helper
Helper $helper,
IInitialState $initialState
) {
parent::__construct($appName, $request);
$this->uid = $UserId;
Expand All @@ -110,6 +113,7 @@ public function __construct(
$this->templateManager = $templateManager;
$this->federationService = $federationService;
$this->helper = $helper;
$this->initialState = $initialState;
}

/**
Expand Down Expand Up @@ -187,6 +191,22 @@ private function setupPolicy($response) {
$response->setFeaturePolicy($featurePolicy);
}

private function provideDocumentInitialState(Wopi $wopi) {
$this->initialState->provideInitialState('wopi', $wopi);
$this->initialState->provideInitialState('uiDefaults', [
'UIMode' => 'classic'
]);

$config = \OC::$server->getConfig();
$logoSet = $config->getAppValue('theming', 'logoheaderMime', '') !== '';
if (!$logoSet) {
$logoSet = $config->getAppValue('theming', 'logoMime', '') !== '';
}
$this->initialState->provideInitialState('theming-customLogo', ($logoSet ?
\OC::$server->getURLGenerator()->getAbsoluteURL(\OC::$server->getThemingDefaults()->getLogo())
: false));
}

/**
* @NoAdminRequired
*
Expand Down Expand Up @@ -243,6 +263,7 @@ public function index($fileId, $path = null) {
$encryptionManager->getEncryptionModule()->update($absPath, $owner, $accessList);
}

$this->provideDocumentInitialState($wopi);
$response = new TemplateResponse('richdocuments', 'documents', $params, 'base');
$this->setupPolicy($response);
return $response;
Expand Down Expand Up @@ -300,6 +321,7 @@ public function createFromTemplate($templateId, $fileName, $dir) {
'userId' => $this->uid
];

$this->provideDocumentInitialState($wopi);
$response = new TemplateResponse('richdocuments', 'documents', $params, 'base');
$this->setupPolicy($response);
return $response;
Expand Down Expand Up @@ -353,10 +375,11 @@ public function publicPage($shareToken, $fileName, $fileId) {
'userId' => $this->uid,
];

list($urlSrc, $token) = $this->tokenManager->getToken($item->getId(), $shareToken, $this->uid);
list($urlSrc, $token, $wopi) = $this->tokenManager->getToken($item->getId(), $shareToken, $this->uid);
$params['token'] = $token;
$params['urlsrc'] = $urlSrc;

$this->provideDocumentInitialState($wopi);
$response = new TemplateResponse('richdocuments', 'documents', $params, 'base');
$this->setupPolicy($response);
return $response;
Expand Down Expand Up @@ -475,6 +498,7 @@ public function remote($shareToken, $remoteServer, $remoteServerToken, $filePath
'userId' => $remoteWopi->getEditorUid() ? ($remoteWopi->getEditorUid() . '@' . $remoteServer) : null,
];

$this->provideDocumentInitialState($wopi);
$response = new TemplateResponse('richdocuments', 'documents', $params, 'base');
$remoteWopi = $this->domainOnly($this->appConfig->getAppValue('wopi_url'));
$policy = new ContentSecurityPolicy();
Expand Down
Loading