Skip to content

Commit

Permalink
fixes #10173 to not compile css files as less
Browse files Browse the repository at this point in the history
  • Loading branch information
tsteur committed Jun 1, 2016
1 parent 451f6f7 commit 0054586
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 12 deletions.
4 changes: 2 additions & 2 deletions core/AssetManager/UIAssetMerger.php
Expand Up @@ -24,7 +24,7 @@ abstract class UIAssetMerger
/** /**
* @var string * @var string
*/ */
private $mergedContent; protected $mergedContent;


/** /**
* @var UIAssetCacheBuster * @var UIAssetCacheBuster
Expand Down Expand Up @@ -100,7 +100,7 @@ protected function getConcatenatedAssets()
return $this->mergedContent; return $this->mergedContent;
} }


private function concatenateAssets() protected function concatenateAssets()
{ {
$mergedContent = ''; $mergedContent = '';


Expand Down
49 changes: 48 additions & 1 deletion core/AssetManager/UIAssetMerger/StylesheetUIAssetMerger.php
Expand Up @@ -12,6 +12,7 @@
use lessc; use lessc;
use Piwik\AssetManager\UIAsset; use Piwik\AssetManager\UIAsset;
use Piwik\AssetManager\UIAssetMerger; use Piwik\AssetManager\UIAssetMerger;
use Piwik\Common;
use Piwik\Piwik; use Piwik\Piwik;


class StylesheetUIAssetMerger extends UIAssetMerger class StylesheetUIAssetMerger extends UIAssetMerger
Expand All @@ -21,6 +22,11 @@ class StylesheetUIAssetMerger extends UIAssetMerger
*/ */
private $lessCompiler; private $lessCompiler;


/**
* @var UIAsset[]
*/
private $cssAssetsToReplace = array();

public function __construct($mergedAsset, $assetFetcher, $cacheBuster) public function __construct($mergedAsset, $assetFetcher, $cacheBuster)
{ {
parent::__construct($mergedAsset, $assetFetcher, $cacheBuster); parent::__construct($mergedAsset, $assetFetcher, $cacheBuster);
Expand All @@ -33,9 +39,50 @@ protected function getMergedAssets()
// note: we're using setImportDir on purpose (not addImportDir) // note: we're using setImportDir on purpose (not addImportDir)
$this->lessCompiler->setImportDir(PIWIK_USER_PATH); $this->lessCompiler->setImportDir(PIWIK_USER_PATH);
$concatenatedAssets = $this->getConcatenatedAssets(); $concatenatedAssets = $this->getConcatenatedAssets();
return $this->lessCompiler->compile($concatenatedAssets); $compiled = $this->lessCompiler->compile($concatenatedAssets);

foreach ($this->cssAssetsToReplace as $asset) {
$cssPath = $asset->getAbsoluteLocation();
$cssContent = $this->processFileContent($asset);
$compiled = str_replace($this->getImportStatementForReplacement($cssPath), $cssContent, $compiled);
}

$this->mergedContent = $compiled;
$this->cssAssetsToReplace = array();

return $compiled;
}

private function getImportStatementForReplacement($path)
{
return '@import url("replace'. $path .'");';
} }


protected function concatenateAssets()
{
$mergedContent = '';

foreach ($this->getAssetCatalog()->getAssets() as $uiAsset) {
$uiAsset->validateFile();

try {
$path = $uiAsset->getAbsoluteLocation();
} catch (Exception $e) {
$path = null;
}

if (!empty($path) && Common::stringEndsWith($path, '.css')) {
$mergedContent .= "\n" . $this->getImportStatementForReplacement($path) . "\n";
$this->cssAssetsToReplace[] = $uiAsset;
} else {
$content = $this->processFileContent($uiAsset);
$mergedContent .= $this->getFileSeparator() . $content;
}
}

$this->mergedContent = $mergedContent;
}

/** /**
* @return lessc * @return lessc
* @throws Exception * @throws Exception
Expand Down
8 changes: 0 additions & 8 deletions plugins/CoreHome/stylesheets/coreHome.less
Expand Up @@ -217,11 +217,3 @@ a.Piwik_Popover_Error_Back {
margin:0; margin:0;
font-size:18px; font-size:18px;
} }

/** Can be removed once https://github.com/piwik/piwik/issues/10173 is fixed */
.modal.modal-fixed-footer .modal-content {
height: ~"calc(100% - 56px)"
}
.side-nav {
height: ~"calc(100% + 60px)"
}
2 changes: 1 addition & 1 deletion tests/lib/screenshot-testing/support/page-renderer.js
Expand Up @@ -239,7 +239,7 @@ PageRenderer.prototype._load = function (url, callback) {
this._resourcesRequested = {}; this._resourcesRequested = {};


var self = this; var self = this;
this.webpage.open(url, {}, function (status) { this.webpage.open(url, function (status) {


if (VERBOSE) { if (VERBOSE) {
self._logMessage('Webpage open event'); self._logMessage('Webpage open event');
Expand Down

0 comments on commit 0054586

Please sign in to comment.