From: Roeland Jago Douma Date: Wed, 22 Mar 2017 14:42:17 +0000 (+0100) Subject: Add debug mode X-Git-Tag: v12.0.0beta1~311^2~3 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=90910290d17390889b5f8ffe97de9105f23d094b;p=nextcloud-server.git Add debug mode Signed-off-by: Roeland Jago Douma --- diff --git a/lib/private/Template/JSCombiner.php b/lib/private/Template/JSCombiner.php index f470ee330c7..a7bbf129e01 100644 --- a/lib/private/Template/JSCombiner.php +++ b/lib/private/Template/JSCombiner.php @@ -22,6 +22,7 @@ */ namespace OC\Template; +use OC\SystemConfig; use OCP\ICache; use OCP\Files\IAppData; use OCP\Files\NotFoundException; @@ -40,6 +41,9 @@ class JSCombiner { /** @var ICache */ protected $depsCache; + /** @var SystemConfig */ + protected $config; + /** * JSCombiner constructor. * @@ -49,10 +53,12 @@ class JSCombiner { */ public function __construct(IAppData $appData, IURLGenerator $urlGenerator, - ICache $depsCache) { + ICache $depsCache, + SystemConfig $config) { $this->appData = $appData; $this->urlGenerator = $urlGenerator; $this->depsCache = $depsCache; + $this->config = $config; } /** @@ -62,6 +68,10 @@ class JSCombiner { * @return bool */ public function process($root, $file, $app) { + if ($this->config->getValue('debug')) { + return false; + } + $path = explode('/', $root . '/' . $file); $fileName = array_pop($path); @@ -166,4 +176,24 @@ class JSCombiner { return substr($this->urlGenerator->linkToRoute('core.Js.getJs', array('fileName' => $fileName, 'appName' => $appName)), strlen(\OC::$WEBROOT) + 1); } + + /** + * @param string $root + * @param string $file + * @return string[] + */ + public function getContent($root, $file) { + $data = json_decode(file_get_contents($root . '/' . $file)); + + $path = explode('/', $file); + array_pop($path); + $path = implode('/', $path); + + $result = []; + foreach ($data as $f) { + $result[] = $path . '/' . $f; + } + + return $result; + } } diff --git a/lib/private/Template/JSResourceLocator.php b/lib/private/Template/JSResourceLocator.php index 6f863e859d9..41b44c143ef 100644 --- a/lib/private/Template/JSResourceLocator.php +++ b/lib/private/Template/JSResourceLocator.php @@ -96,6 +96,14 @@ class JSResourceLocator extends ResourceLocator { if ($this->jsCombiner->process($root, $file, $app)) { $this->append($this->serverroot, $this->jsCombiner->getCachedJS($app, $file), false, false); return true; + } else { + // Add all the files from the json + $files = $this->jsCombiner->getContent($root, $file); + $app_url = \OC_App::getAppWebPath($app); + + foreach ($files as $jsFile) { + $this->append($root, $jsFile, $app_url); + } } } diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index d172da1184b..956cba40086 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -254,7 +254,8 @@ class TemplateLayout extends \OC_Template { new JSCombiner( \OC::$server->getAppDataDir('js'), \OC::$server->getURLGenerator(), - \OC::$server->getMemCacheFactory()->create('JS') + \OC::$server->getMemCacheFactory()->create('JS'), + \OC::$server->getSystemConfig() ) ); $locator->find($scripts);