diff options
-rw-r--r-- | lib/private/appframework/dependencyinjection/dicontainer.php | 4 | ||||
-rw-r--r-- | lib/private/assetic/separatorfilter.php | 57 | ||||
-rw-r--r-- | lib/private/templatelayout.php | 8 |
3 files changed, 65 insertions, 4 deletions
diff --git a/lib/private/appframework/dependencyinjection/dicontainer.php b/lib/private/appframework/dependencyinjection/dicontainer.php index 8d44d5fda87..f6a0c0c4974 100644 --- a/lib/private/appframework/dependencyinjection/dicontainer.php +++ b/lib/private/appframework/dependencyinjection/dicontainer.php @@ -201,7 +201,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { }); $this->registerService('ServerContainer', function ($c) { - $c->query('OCP\\ILogger')->info( + $c->query('OCP\\ILogger')->debug( 'Accessing the server container is deprecated. Use type ' . 'annotations to inject core services instead!' ); @@ -222,7 +222,7 @@ class DIContainer extends SimpleContainer implements IAppContainer { * App Framework APIs */ $this->registerService('API', function($c){ - $c->query('OCP\\ILogger')->info( + $c->query('OCP\\ILogger')->debug( 'Accessing the API class is deprecated! Use the appropriate ' . 'services instead!' ); diff --git a/lib/private/assetic/separatorfilter.php b/lib/private/assetic/separatorfilter.php new file mode 100644 index 00000000000..fb1a4e7f00c --- /dev/null +++ b/lib/private/assetic/separatorfilter.php @@ -0,0 +1,57 @@ +<?php + +/** + * ownCloud + * + * Copyright (C) 2014 Robin McCorkell <rmccorkell@karoshi.org.uk> + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE + * License as published by the Free Software Foundation; either + * version 3 of the License, or any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * + * You should have received a copy of the GNU Affero General Public + * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OC\Assetic; + +use Assetic\Filter\FilterInterface; +use Assetic\Asset\AssetInterface; + +/** + * Inserts a separator between assets to prevent merge failures + * e.g. missing semicolon at the end of a JS file + */ +class SeparatorFilter implements FilterInterface +{ + /** + * @var string + */ + private $separator; + + /** + * Constructor. + * + * @param string $separator Separator to use between assets + */ + public function __construct($separator = ';') + { + $this->separator = $separator; + } + + public function filterLoad(AssetInterface $asset) + { + } + + public function filterDump(AssetInterface $asset) + { + $asset->setContent($asset->getContent() . $this->separator); + } +} diff --git a/lib/private/templatelayout.php b/lib/private/templatelayout.php index fa025721e53..44c997c321e 100644 --- a/lib/private/templatelayout.php +++ b/lib/private/templatelayout.php @@ -6,6 +6,7 @@ use Assetic\Filter\CssImportFilter; use Assetic\Filter\CssMinFilter; use Assetic\Filter\CssRewriteFilter; use Assetic\Filter\JSMinFilter; +use OC\Assetic\SeparatorFilter; // waiting on upstream /** * Copyright (c) 2012 Bart Visscher <bartv@thisnet.nl> @@ -163,10 +164,13 @@ class OC_TemplateLayout extends OC_Template { $file = $item[2]; // no need to minifiy minified files if (substr($file, -strlen('.min.js')) === '.min.js') { - return new FileAsset($root . '/' . $file, array(), $root, $file); + return new FileAsset($root . '/' . $file, array( + new SeparatorFilter(';') + ), $root, $file); } return new FileAsset($root . '/' . $file, array( - new JSMinFilter() + new JSMinFilter(), + new SeparatorFilter(';') ), $root, $file); }, $jsFiles); $jsCollection = new AssetCollection($jsFiles); |