diff options
author | Robin Appelman <robin@icewind.nl> | 2023-08-14 17:45:53 +0200 |
---|---|---|
committer | Robin Appelman <robin@icewind.nl> | 2023-08-17 10:57:56 +0200 |
commit | 222ed1f8498ecc232708db002f1c0c886961a3e8 (patch) | |
tree | b64b10d70793319d26272817cc1ecc7c9ebfc4ea | |
parent | daf3b29572921562abcb700052c1de19fdd2fe4e (diff) | |
download | nextcloud-server-222ed1f8498ecc232708db002f1c0c886961a3e8.tar.gz nextcloud-server-222ed1f8498ecc232708db002f1c0c886961a3e8.zip |
move core script loading from static template to event listener
Signed-off-by: Robin Appelman <robin@icewind.nl>
-rw-r--r-- | core/Listener/BeforeTemplateRenderedListener.php | 30 | ||||
-rw-r--r-- | lib/private/legacy/OC_Template.php | 39 |
2 files changed, 29 insertions, 40 deletions
diff --git a/core/Listener/BeforeTemplateRenderedListener.php b/core/Listener/BeforeTemplateRenderedListener.php index 4b658cb550a..b3ab7c429e8 100644 --- a/core/Listener/BeforeTemplateRenderedListener.php +++ b/core/Listener/BeforeTemplateRenderedListener.php @@ -25,12 +25,18 @@ declare(strict_types=1); */ namespace OC\Core\Listener; +use OCP\AppFramework\Http\Events\BeforeLoginTemplateRenderedEvent; use OCP\AppFramework\Http\Events\BeforeTemplateRenderedEvent; use OCP\AppFramework\Http\TemplateResponse; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; +use OCP\IConfig; +use OCP\Util; class BeforeTemplateRenderedListener implements IEventListener { + public function __construct(private IConfig $config) { + } + public function handle(Event $event): void { if (!($event instanceof BeforeTemplateRenderedEvent)) { return; @@ -38,7 +44,29 @@ class BeforeTemplateRenderedListener implements IEventListener { if ($event->getResponse()->getRenderAs() === TemplateResponse::RENDER_AS_USER) { // Making sure to inject just after core - \OCP\Util::addScript('core', 'unsupported-browser-redirect'); + Util::addScript('core', 'unsupported-browser-redirect'); + } + + \OC_Util::addStyle('server', null, true); + + if ($event instanceof BeforeTemplateRenderedEvent) { + + // include common nextcloud webpack bundle + Util::addScript('core', 'common'); + Util::addScript('core', 'main'); + Util::addTranslations('core'); + + if ($event->getResponse()->getRenderAs() !== TemplateResponse::RENDER_AS_ERROR) { + Util::addScript('core', 'files_fileinfo'); + Util::addScript('core', 'files_client'); + Util::addScript('core', 'merged-template-prepend'); + + + // If installed and background job is set to ajax, add dedicated script + if ($this->config->getAppValue('core', 'backgroundjobs_mode', 'ajax') == 'ajax') { + Util::addScript('core', 'backgroundjobs'); + } + } } } } diff --git a/lib/private/legacy/OC_Template.php b/lib/private/legacy/OC_Template.php index 70477ea6a06..3d27475590f 100644 --- a/lib/private/legacy/OC_Template.php +++ b/lib/private/legacy/OC_Template.php @@ -59,8 +59,6 @@ class OC_Template extends \OC\Template\Base { /** @var string */ protected $app; // app id - protected static $initTemplateEngineFirstRun = true; - /** * Constructor * @@ -73,9 +71,6 @@ class OC_Template extends \OC\Template\Base { * @param bool $registerCall = true */ public function __construct($app, $name, $renderAs = TemplateResponse::RENDER_AS_BLANK, $registerCall = true) { - // Read the selected theme from the config file - self::initTemplateEngine($renderAs); - $theme = OC_Util::getTheme(); $requestToken = (OC::$server->getSession() && $registerCall) ? \OCP\Util::callRegister() : ''; @@ -95,40 +90,6 @@ class OC_Template extends \OC\Template\Base { parent::__construct($template, $requestToken, $l10n, $themeDefaults); } - /** - * @param string $renderAs - */ - public static function initTemplateEngine($renderAs) { - if (self::$initTemplateEngineFirstRun) { - // apps that started before the template initialization can load their own scripts/styles - // so to make sure this scripts/styles here are loaded first we put all core scripts first - // check lib/public/Util.php - OC_Util::addStyle('server', null, true); - - // include common nextcloud webpack bundle - Util::addScript('core', 'common'); - Util::addScript('core', 'main'); - Util::addTranslations('core'); - - if (\OC::$server->getSystemConfig()->getValue('installed', false) && !\OCP\Util::needUpgrade()) { - Util::addScript('core', 'files_fileinfo'); - Util::addScript('core', 'files_client'); - Util::addScript('core', 'merged-template-prepend'); - } - - // If installed and background job is set to ajax, add dedicated script - if (\OC::$server->getSystemConfig()->getValue('installed', false) - && $renderAs !== TemplateResponse::RENDER_AS_ERROR - && !\OCP\Util::needUpgrade()) { - if (\OC::$server->getConfig()->getAppValue('core', 'backgroundjobs_mode', 'ajax') == 'ajax') { - Util::addScript('core', 'backgroundjobs'); - } - } - - self::$initTemplateEngineFirstRun = false; - } - } - /** * find the template with the given name |