Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ONLYOFFICE/onlyoffice-nextcloud.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/listeners/viewerlistener.php')
-rw-r--r--lib/listeners/viewerlistener.php34
1 files changed, 31 insertions, 3 deletions
diff --git a/lib/listeners/viewerlistener.php b/lib/listeners/viewerlistener.php
index e61a49b..8268533 100644
--- a/lib/listeners/viewerlistener.php
+++ b/lib/listeners/viewerlistener.php
@@ -23,10 +23,13 @@ use OCP\EventDispatcher\Event;
use OCP\EventDispatcher\IEventListener;
use OCP\Util;
use OCP\AppFramework\Http\ContentSecurityPolicy;
+use OCP\AppFramework\Services\IInitialState;
+use OCP\IServerContainer;
use OCA\Viewer\Event\LoadViewer;
use OCA\Onlyoffice\AppConfig;
+use OCA\Onlyoffice\SettingsData;
/**
* Viewer listener
@@ -41,10 +44,30 @@ class ViewerListener implements IEventListener {
private $appConfig;
/**
+ * Initial state
+ *
+ * @var IInitialState
+ */
+ private $initialState;
+
+ /**
+ * Server container
+ *
+ * @var IServerContainer
+ */
+ private $serverContainer;
+
+ /**
* @param AppConfig $config - application configuration
+ * @param IInitialState $initialState - initial state
+ * @param IServerContainer $serverContainer - server container
*/
- public function __construct(AppConfig $appConfig) {
+ public function __construct(AppConfig $appConfig,
+ IInitialState $initialState,
+ IServerContainer $serverContainer) {
$this->appConfig = $appConfig;
+ $this->initialState = $initialState;
+ $this->serverContainer = $serverContainer;
}
public function handle(Event $event): void {
@@ -55,11 +78,16 @@ class ViewerListener implements IEventListener {
if (!empty($this->appConfig->GetDocumentServerUrl())
&& $this->appConfig->SettingsAreSuccessful()
&& $this->appConfig->isUserAllowedToUse()) {
- Util::addScript("onlyoffice", "viewer");
- Util::addScript("onlyoffice", "listener");
+ Util::addScript("onlyoffice", "viewer", "viewer");
+ Util::addScript("onlyoffice", "listener", "viewer");
Util::addStyle("onlyoffice", "viewer");
+ $container = $this->serverContainer;
+ $this->initialState->provideLazyInitialState("settings", function () use ($container) {
+ return $container->query(SettingsData::class);
+ });
+
$csp = new ContentSecurityPolicy();
$csp->addAllowedFrameDomain("'self'");
$cspManager = \OC::$server->getContentSecurityPolicyManager();