Add app version to JS and CSS

This leads to the regeneration of the hash in case a single application is updated.

Fixes https://github.com/owncloud/core/issues/11374
This commit is contained in:
Lukas Reschke 2014-10-15 11:23:42 +02:00
parent dd0b1e83b2
commit 6ccda2ae98

View File

@ -14,6 +14,8 @@ use Assetic\Filter\CssImportFilter;
class OC_TemplateLayout extends OC_Template {
private static $versionHash = '';
/**
* @param string $renderas
* @param string $appid application id
@ -70,26 +72,25 @@ class OC_TemplateLayout extends OC_Template {
parent::__construct('core', 'layout.base');
}
$versionParameter = '?v=' . md5(implode(OC_Util::getVersion()));
if(empty(self::$versionHash)) {
self::$versionHash = md5(implode(',', OC_App::getAppVersions()));
}
$useAssetPipeline = $this->isAssetPipelineEnabled();
if ($useAssetPipeline) {
$this->append( 'jsfiles', OC_Helper::linkToRoute('js_config') . $versionParameter);
$this->append( 'jsfiles', OC_Helper::linkToRoute('js_config', array('v' => self::$versionHash)));
$this->generateAssets();
} else {
// Add the js files
$jsfiles = self::findJavascriptFiles(OC_Util::$scripts);
$this->assign('jsfiles', array(), false);
if (OC_Config::getValue('installed', false) && $renderas!='error') {
$this->append( 'jsfiles', OC_Helper::linkToRoute('js_config') . $versionParameter);
$this->append( 'jsfiles', OC_Helper::linkToRoute('js_config', array('v' => self::$versionHash)));
}
foreach($jsfiles as $info) {
$web = $info[1];
$file = $info[2];
$this->append( 'jsfiles', $web.'/'.$file . $versionParameter);
$this->append( 'jsfiles', $web.'/'.$file . '?v=' . self::$versionHash);
}
// Add the css files
@ -99,7 +100,7 @@ class OC_TemplateLayout extends OC_Template {
$web = $info[1];
$file = $info[2];
$this->append( 'cssfiles', $web.'/'.$file . $versionParameter);
$this->append( 'cssfiles', $web.'/'.$file . '?v=' . self::$versionHash);
}
}
}