diff options
author | Roeland Jago Douma <roeland@famdouma.nl> | 2017-03-22 14:47:07 +0100 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2017-03-24 10:58:10 +0100 |
commit | 8e89ad21a2dfa8f4f147225ae35cab83db4de2f9 (patch) | |
tree | 5c991eec18452d8da40ddedd6c8e372b77428223 /lib/private/Template/JSResourceLocator.php | |
parent | 35d3a082f2a7256c104894faf6820a1410a0a38e (diff) | |
download | nextcloud-server-8e89ad21a2dfa8f4f147225ae35cab83db4de2f9.tar.gz nextcloud-server-8e89ad21a2dfa8f4f147225ae35cab83db4de2f9.zip |
[PoC] JS Combiner
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Diffstat (limited to 'lib/private/Template/JSResourceLocator.php')
-rw-r--r-- | lib/private/Template/JSResourceLocator.php | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/lib/private/Template/JSResourceLocator.php b/lib/private/Template/JSResourceLocator.php index 724f49965b3..6f863e859d9 100644 --- a/lib/private/Template/JSResourceLocator.php +++ b/lib/private/Template/JSResourceLocator.php @@ -26,6 +26,16 @@ namespace OC\Template; class JSResourceLocator extends ResourceLocator { + + /** @var JSCombiner */ + protected $jsCombiner; + + public function __construct(\OCP\ILogger $logger, $theme, array $core_map, array $party_map, JSCombiner $JSCombiner) { + parent::__construct($logger, $theme, $core_map, $party_map); + + $this->jsCombiner = $JSCombiner; + } + /** * @param string $script */ @@ -52,8 +62,10 @@ class JSResourceLocator extends ResourceLocator { } else if ($this->appendIfExist($this->serverroot, $theme_dir.'apps/'.$script.'.js') || $this->appendIfExist($this->serverroot, $theme_dir.$script.'.js') || $this->appendIfExist($this->serverroot, $script.'.js') + || $this->cacheAndAppendCombineJsonIfExist($this->serverroot, $script.'.json') || $this->appendIfExist($this->serverroot, $theme_dir.'core/'.$script.'.js') || $this->appendIfExist($this->serverroot, 'core/'.$script.'.js') + || $this->cacheAndAppendCombineJsonIfExist($this->serverroot, 'core/'.$script.'.json') ) { return; } @@ -68,7 +80,9 @@ class JSResourceLocator extends ResourceLocator { $this->appendIfExist($app_path, $script . '.js', $app_url); return; } - $this->append($app_path, $script . '.js', $app_url); + if (!$this->cacheAndAppendCombineJsonIfExist($app_path, $script.'.json', $app)) { + $this->append($app_path, $script . '.js', $app_url); + } } /** @@ -76,4 +90,15 @@ class JSResourceLocator extends ResourceLocator { */ public function doFindTheme($script) { } + + protected function cacheAndAppendCombineJsonIfExist($root, $file, $app = 'core') { + if (is_file($root.'/'.$file)) { + if ($this->jsCombiner->process($root, $file, $app)) { + $this->append($this->serverroot, $this->jsCombiner->getCachedJS($app, $file), false, false); + return true; + } + } + + return false; + } } |