From 26b160cc439d0d3396fe54ee7222a0642bfbd022 Mon Sep 17 00:00:00 2001 From: Julius Härtl Date: Mon, 12 Nov 2018 11:00:56 +0100 Subject: Make sure to always load the latest icons-vars.css file MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julius Härtl --- lib/private/Template/IconsCacher.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'lib/private/Template') diff --git a/lib/private/Template/IconsCacher.php b/lib/private/Template/IconsCacher.php index c91bf13ad53..1020cd24dcd 100644 --- a/lib/private/Template/IconsCacher.php +++ b/lib/private/Template/IconsCacher.php @@ -24,6 +24,7 @@ declare (strict_types = 1); namespace OC\Template; +use OCP\AppFramework\Utility\ITimeFactory; use OCP\Files\IAppData; use OCP\Files\NotFoundException; use OCP\Files\SimpleFS\ISimpleFolder; @@ -46,6 +47,9 @@ class IconsCacher { /** @var IURLGenerator */ protected $urlGenerator; + /** @var ITimeFactory */ + protected $timeFactory; + /** @var string */ private $iconVarRE = '/--(icon-[a-zA-Z0-9-]+):\s?url\(["\']?([a-zA-Z0-9-_\~\/\.\?\&\=\:\;\+\,]+)[^;]+;/m'; @@ -58,14 +62,17 @@ class IconsCacher { * @param ILogger $logger * @param Factory $appDataFactory * @param IURLGenerator $urlGenerator + * @param ITimeFactory $timeFactory * @throws \OCP\Files\NotPermittedException */ public function __construct(ILogger $logger, Factory $appDataFactory, - IURLGenerator $urlGenerator) { + IURLGenerator $urlGenerator, + ITimeFactory $timeFactory) { $this->logger = $logger; $this->appData = $appDataFactory->get('css'); $this->urlGenerator = $urlGenerator; + $this->timeFactory = $timeFactory; try { $this->folder = $this->appData->getFolder('icons'); @@ -216,6 +223,11 @@ class IconsCacher { } public function injectCss() { + $mtime = $this->timeFactory->getTime(); + $file = $this->getCachedList(); + if ($file) { + $mtime = $file->getMTime(); + } // Only inject once foreach (\OC_Util::$headers as $header) { if ( @@ -225,8 +237,8 @@ class IconsCacher { return; } } - $linkToCSS = $this->urlGenerator->linkToRoute('core.Css.getCss', ['appName' => 'icons', 'fileName' => $this->fileName]); + $linkToCSS = $this->urlGenerator->linkToRoute('core.Css.getCss', ['appName' => 'icons', 'fileName' => $this->fileName, 'v' => $mtime]); \OC_Util::addHeader('link', ['rel' => 'stylesheet', 'href' => $linkToCSS], null, true); } -} \ No newline at end of file +} -- cgit v1.2.3