Add debug mode

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
pull/3988/head
Roeland Jago Douma 7 years ago
parent 242f8964cf
commit 90910290d1
No known key found for this signature in database
GPG Key ID: F941078878347C0C

@ -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;
}
}

@ -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);
}
}
}

@ -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);

Loading…
Cancel
Save