From 57be594f1fa67ae02209a68330ecf711d0b2e9a2 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 9 Mar 2017 20:29:50 +0100 Subject: [PATCH 1/3] Allow using import in sass files This allows us to combine multiple sass files that we have to always load together anyway. Fixes #3389 Signed-off-by: Roeland Jago Douma --- lib/private/Template/SCSSCacher.php | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php index d6f5a2c6fd3..744ea80761e 100644 --- a/lib/private/Template/SCSSCacher.php +++ b/lib/private/Template/SCSSCacher.php @@ -103,10 +103,17 @@ class SCSSCacher { private function isCached($fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $path) { try{ $cachedFile = $folder->getFile($fileNameCSS); - if( $cachedFile->getMTime() > filemtime($path.'/'.$fileNameSCSS) - && $cachedFile->getSize() > 0 ) { - return true; + if ($cachedFile->getSize() > 0) { + $depFile = $folder->getFile($fileNameCSS . '.deps'); + $deps = json_decode($depFile->getContent(), true); + + foreach ($deps as $file=>$mtime) { + if (!file_exists($file) || filemtime($file) > $mtime) { + return false; + } + } } + return true; } catch(NotFoundException $e) { return false; } @@ -140,6 +147,13 @@ class SCSSCacher { $cachedfile = $folder->newFile($fileNameCSS); } + $depFileName = $fileNameCSS . '.deps'; + try { + $depFile = $folder->getFile($depFileName); + } catch (NotFoundException $e) { + $depFile = $folder->newFile($depFileName); + } + // Compile try { $compiledScss = $scss->compile('@import "'.$fileNameSCSS.'";'); @@ -150,6 +164,7 @@ class SCSSCacher { try { $cachedfile->putContent($this->rebaseUrls($compiledScss, $webDir)); + $depFile->putContent(json_encode($scss->getParsedFiles())); $this->logger->debug($webDir.'/'.$fileNameSCSS.' compiled and successfully cached', ['app' => 'core']); return true; } catch(NotFoundException $e) { From f2cf85fad2f25caf293126ca1058fe3e9109c75f Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 9 Mar 2017 20:38:20 +0100 Subject: [PATCH 2/3] [PoC] combine 2 scss files! Signed-off-by: Roeland Jago Douma --- core/css/server.scss | 2 ++ lib/private/legacy/template.php | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 core/css/server.scss diff --git a/core/css/server.scss b/core/css/server.scss new file mode 100644 index 00000000000..04f54c82d49 --- /dev/null +++ b/core/css/server.scss @@ -0,0 +1,2 @@ +@import 'styles.scss'; +@import 'inputs.scss'; diff --git a/lib/private/legacy/template.php b/lib/private/legacy/template.php index 09e3d130f49..41f481e74d9 100644 --- a/lib/private/legacy/template.php +++ b/lib/private/legacy/template.php @@ -117,8 +117,7 @@ class OC_Template extends \OC\Template\Base { OC_Util::addStyle("fonts",null,true); OC_Util::addStyle("icons",null,true); OC_Util::addStyle("header",null,true); - OC_Util::addStyle("inputs"); - OC_Util::addStyle("styles",null,true); + OC_Util::addStyle('server', null, true); // avatars \OC_Util::addScript('jquery.avatar', null, true); From 0c22a6696703225baabd6a4afaad5759745da8c5 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Thu, 9 Mar 2017 15:36:03 -0600 Subject: [PATCH 3/3] Add more styles to the server.scss Signed-off-by: Morris Jobke --- core/css/{fixes.css => fixes.scss} | 0 core/css/{fonts.css => fonts.scss} | 0 core/css/{global.css => global.scss} | 0 core/css/{mobile.css => mobile.scss} | 0 core/css/server.scss | 9 +++++++++ lib/private/legacy/template.php | 9 --------- 6 files changed, 9 insertions(+), 9 deletions(-) rename core/css/{fixes.css => fixes.scss} (100%) rename core/css/{fonts.css => fonts.scss} (100%) rename core/css/{global.css => global.scss} (100%) rename core/css/{mobile.css => mobile.scss} (100%) diff --git a/core/css/fixes.css b/core/css/fixes.scss similarity index 100% rename from core/css/fixes.css rename to core/css/fixes.scss diff --git a/core/css/fonts.css b/core/css/fonts.scss similarity index 100% rename from core/css/fonts.css rename to core/css/fonts.scss diff --git a/core/css/global.css b/core/css/global.scss similarity index 100% rename from core/css/global.css rename to core/css/global.scss diff --git a/core/css/mobile.css b/core/css/mobile.scss similarity index 100% rename from core/css/mobile.css rename to core/css/mobile.scss diff --git a/core/css/server.scss b/core/css/server.scss index 04f54c82d49..516220f2ad5 100644 --- a/core/css/server.scss +++ b/core/css/server.scss @@ -1,2 +1,11 @@ @import 'styles.scss'; @import 'inputs.scss'; +@import 'header.scss'; +@import 'icons.scss'; +@import 'fonts.scss'; +@import 'apps.scss'; +@import 'global.scss'; +@import 'fixes.scss'; +@import 'multiselect.scss'; +@import 'mobile.scss'; +@import 'tooltip.scss'; diff --git a/lib/private/legacy/template.php b/lib/private/legacy/template.php index 41f481e74d9..8535e018879 100644 --- a/lib/private/legacy/template.php +++ b/lib/private/legacy/template.php @@ -106,17 +106,8 @@ class OC_Template extends \OC\Template\Base { } } - OC_Util::addStyle("tooltip",null,true); OC_Util::addStyle('jquery-ui-fixes',null,true); OC_Util::addVendorStyle('jquery-ui/themes/base/jquery-ui',null,true); - OC_Util::addStyle("mobile",null,true); - OC_Util::addStyle("multiselect",null,true); - OC_Util::addStyle("fixes",null,true); - OC_Util::addStyle("global",null,true); - OC_Util::addStyle("apps",null,true); - OC_Util::addStyle("fonts",null,true); - OC_Util::addStyle("icons",null,true); - OC_Util::addStyle("header",null,true); OC_Util::addStyle('server', null, true); // avatars