aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lib/private/appframework/dependencyinjection/dicontainer.php4
-rw-r--r--lib/private/assetic/separatorfilter.php57
-rw-r--r--lib/private/templatelayout.php8
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);