]> source.dussan.org Git - nextcloud-server.git/commitdiff
Css cache folder name fix, route fix and various fixes
authorJohn Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Thu, 10 Nov 2016 15:36:58 +0000 (16:36 +0100)
committerRoeland Jago Douma <roeland@famdouma.nl>
Fri, 6 Jan 2017 08:42:13 +0000 (09:42 +0100)
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
core/Controller/CssController.php
core/routes.php
lib/private/CssManager.php
lib/private/Server.php
lib/private/Template/CSSResourceLocator.php
lib/private/Template/ResourceLocator.php
lib/private/Template/SCSSCacher.php
lib/public/ICssManager.php

index 31ec801d21ce51728fc318ac00d8e4635dee404b..323dd21496b3409f1b25ef066f75d4aa0fdfd132 100644 (file)
@@ -58,11 +58,12 @@ class CssController extends Controller {
         * @NoCSRFRequired
         *
         * @param string $fileName css filename with extension
+        * @param string $appName css folder name
         * @return text/css
         */
-       public function getCss($fileName) {
+       public function getCss($fileName, $appName) {
                try {
-                       $cssFile = $this->cssManager->getCss($fileName);
+                       $cssFile = $this->cssManager->getCss($fileName, $appName);
                } catch(NotFoundException $e) {
                        return new NotFoundResponse();
                }
index dec979c8ce24b2856abda98dbe580c6eb0df5d95..6f1892d19acdfcb143c3a38bba58bcd6a434f4cd 100644 (file)
@@ -55,7 +55,7 @@ $application->registerRoutes($this, [
                ['name' => 'OCJS#getConfig', 'url' => '/core/js/oc.js', 'verb' => 'GET'],
                ['name' => 'Preview#getPreview', 'url' => '/core/preview', 'verb' => 'GET'],
                ['name' => 'Preview#getPreview', 'url' => '/core/preview.png', 'verb' => 'GET'],
-               ['name' => 'Css#getCss', 'url' => '/css/{fileName}', 'verb' => 'GET'],
+               ['name' => 'Css#getCss', 'url' => '/css/{appName}/{fileName}', 'verb' => 'GET'],
        ],
        'ocs' => [
                ['root' => '/cloud', 'name' => 'OCS#getCapabilities', 'url' => '/capabilities', 'verb' => 'GET'],
index 77e1e421eae49510377dd775d909993481efc7ef..e22cb069306e840a5fd0b799cad24d6101823149 100644 (file)
@@ -48,11 +48,12 @@ class CssManager implements ICssManager {
         * Get the css file and return ISimpleFile
         *
         * @param string $fileName css filename with extension
+        * @param string $appName css app name
         * @return ISimpleFile
         */
-       public function getCss($fileName) {
+       public function getCss($fileName, $appName) {
                try {
-                       $folder = $this->appData->getFolder('css');
+                       $folder = $this->appData->getFolder($appName);
                } catch(NotFoundException $e) {
                        throw new NotFoundException();
                }
index 2dbf827844d77cd5ec3f20f88ce5019e21a33710..a8825f9ff246c20676ee8a0f85ff20db360618d4 100644 (file)
@@ -419,7 +419,7 @@ class Server extends ServerContainer implements IServerContainer {
                });
                $this->registerService('CssManager', function (Server $c) {
                        return new CssManager(
-                               $c->getAppDataDir('server')
+                               $c->getAppDataDir('css')
                        );
                });
                $this->registerService('Logger', function (Server $c) {
index 8e1cb3a761a07b3300793e064cd1959afeda7e79..b592dd63ae1c1140633c5074cebf2f16a5a643cd 100755 (executable)
@@ -27,11 +27,11 @@ namespace OC\Template;
 
 class CSSResourceLocator extends ResourceLocator {
 
-       /** @var IAppData */
+       /** @var \OCP\Files\IAppData */
        protected $appData;
        /** @var \OCP\IURLGenerator */
        protected $urlGenerator;
-       /** @var \OCP\Files\IConfig */
+       /** @var \OC\SystemConfig */
        protected $systemConfig;
 
        /**
@@ -39,9 +39,11 @@ class CSSResourceLocator extends ResourceLocator {
         * @param string $theme
         * @param array $core_map
         * @param array $party_map
-        * @param IAppData $appData
+        * @param \OCP\Files\IAppData $appData
+        * @param \OCP\IURLGenerator $urlGenerator
+        * @param \OC\SystemConfig $systemConfig
         */
-       public function __construct(\OCP\ILogger $logger, $theme, $core_map, $party_map, \OCP\Files\IAppData $appData, \OCP\IURLGenerator $urlGenerator, $systemConfig) {
+       public function __construct(\OCP\ILogger $logger, $theme, $core_map, $party_map, \OCP\Files\IAppData $appData, \OCP\IURLGenerator $urlGenerator, \OC\SystemConfig $systemConfig) {
                $this->appData = $appData;
                $this->urlGenerator = $urlGenerator;
                $this->systemConfig = $systemConfig;
index d5187ef071086b71566e9a97adcc81044e5e0739..07a4387df8a2b203974a44d8e58b7b3618e28493 100755 (executable)
@@ -111,7 +111,9 @@ abstract class ResourceLocator {
         *
         * @param string $root path to check
         * @param string $file the filename
-        * @param IAppData $appData the appData folder
+        * @param \OCP\Files\IAppData $appData
+        * @param \OCP\IURLGenerator $urlGenerator
+        * @param \OC\SystemConfig $systemConfig
         * @param string|null $webRoot base for path, default map $root to $webRoot
         * @return bool True if the resource was found and cached, false otherwise
         */
@@ -126,7 +128,7 @@ abstract class ResourceLocator {
                                $systemConfig);
 
                        if($scssCache->process()) {
-                               $this->append($root, $scssCache->getCachedSCSS(), $webRoot, false);
+                               $this->append($root, $scssCache->getCachedSCSS('core'), $webRoot, false);
                                return true;
                        } else {
                                $this->logger->error('Failed to compile and/or save '.$root.'/'.$file, ['app' => 'core']);
index 800b6b18bacfb8a1f8dd3ea8226cb86547587879..e72e122155c55ffbf539e6717843ec5b247625a5 100755 (executable)
@@ -42,7 +42,7 @@ class SCSSCacher {
        protected $appData;
        /** @var \OCP\IURLGenerator */
        protected $urlGenerator;
-       /** @var \OCP\Files\IConfig */
+       /** @var \OC\SystemConfig */
        protected $systemConfig;
 
        /**
@@ -50,8 +50,10 @@ class SCSSCacher {
         * @param string $root
         * @param string $file
         * @param \OCP\Files\IAppData $appData
+        * @param \OCP\IURLGenerator $urlGenerator
+        * @param \OC\SystemConfig $systemConfig
         */
-       public function __construct(\OCP\ILogger $logger, $root, $file, \OCP\Files\IAppData $appData, \OCP\IURLGenerator $urlGenerator, $systemConfig) {
+       public function __construct(\OCP\ILogger $logger, $root, $file, \OCP\Files\IAppData $appData, \OCP\IURLGenerator $urlGenerator, \OC\SystemConfig $systemConfig) {
                $this->logger = $logger;
                $this->appData = $appData;
                $this->urlGenerator = $urlGenerator;
@@ -90,7 +92,6 @@ class SCSSCacher {
                } else {
                        return $this->cache();
                }
-               return false;
        }
 
        /**
@@ -107,7 +108,7 @@ class SCSSCacher {
                } catch(NotFoundException $e) {
                        return false;
                }
-        return false;
+               return false;
        }
 
        /**
@@ -163,9 +164,10 @@ class SCSSCacher {
 
        /**
         * Return the cached css file uri
+        * @param string $appName the app name
         * @return string
         */
-       public function getCachedSCSS() {
-               return substr($this->urlGenerator->linkToRoute('core.Css.getCss', array('fileName' => $this->fileNameCSS)), 1);
+       public function getCachedSCSS($appName) {
+               return substr($this->urlGenerator->linkToRoute('core.Css.getCss', array('fileName' => $this->fileNameCSS, 'appName' => $appName)), 1);
        }
 }
index 0af1472b5c4a75a2bae433fbe59791073b51db46..776ffefd82367f5967760e5fa5c2a876806d35f3 100644 (file)
@@ -32,7 +32,8 @@ interface ICssManager {
         * Get the css file and return ISimpleFile
         *
         * @param string $fileName css filename with extension
+        * @param string $appName css app name
         * @return ISimpleFile
         */
-       public function getCss($fileName);
+       public function getCss($fileName, $appName);
 }