Skip to content

Commit 8f0cd64

Browse files
Mips2648Copilot
andcommitted
fix: update theme CSS links to include versioning for cache busting
Co-authored-by: Copilot <copilot@github.com>
1 parent 74b15d1 commit 8f0cd64

3 files changed

Lines changed: 18 additions & 23 deletions

File tree

desktop/common/js/utils.js

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -413,17 +413,17 @@ jeedomUtils.setJeedomTheme = function() {
413413
}
414414

415415
jeedomUtils.switchTheme = function() {
416-
var theme = 'core/themes/' + jeedom.theme.jeedom_theme_alternate + '/desktop/' + jeedom.theme.jeedom_theme_alternate + '.css'
417-
var themeShadows = 'core/themes/' + jeedom.theme.jeedom_theme_alternate + '/desktop/shadows.css'
416+
var theme = 'core/themes/' + jeedom.theme.jeedom_theme_alternate + '/desktop/' + jeedom.theme.jeedom_theme_alternate + '.css?v=' + jeeFrontEnd.jeedomVersion
417+
var themeShadows = 'core/themes/' + jeedom.theme.jeedom_theme_alternate + '/desktop/shadows.css?v=' + jeeFrontEnd.jeedomVersion
418418
var themeCook = 'alternate'
419419
var themeButton = '<i class="fas fa-adjust"></i> {{Thème principal}}'
420420
var cssTag = document.getElementById('jeedom_theme_currentcss')
421421
cssTag.setAttribute('data-nochange', 1)
422422

423-
if (cssTag.attributes.href.value.split('?md5')[0] == theme) {
423+
if (cssTag.attributes.href.value == theme) {
424424
document.body.setAttribute('data-theme', jeedom.theme.jeedom_theme_main)
425-
theme = 'core/themes/' + jeedom.theme.jeedom_theme_main + '/desktop/' + jeedom.theme.jeedom_theme_main + '.css'
426-
themeShadows = 'core/themes/' + jeedom.theme.jeedom_theme_main + '/desktop/shadows.css'
425+
theme = 'core/themes/' + jeedom.theme.jeedom_theme_main + '/desktop/' + jeedom.theme.jeedom_theme_main + '.css?v=' + jeeFrontEnd.jeedomVersion
426+
themeShadows = 'core/themes/' + jeedom.theme.jeedom_theme_main + '/desktop/shadows.css?v=' + jeeFrontEnd.jeedomVersion
427427
themeCook = 'default'
428428
themeButton = '<i class="fas fa-adjust"></i> {{Thème alternatif}}'
429429
} else {
@@ -476,7 +476,7 @@ jeedomUtils.checkThemechange = function() {
476476

477477
//Should have themeCss, check currentTheme:
478478
var theme = jeedom.theme.jeedom_theme_alternate
479-
var themeCss = 'core/themes/' + jeedom.theme.jeedom_theme_alternate + '/desktop/' + jeedom.theme.jeedom_theme_alternate + '.css'
479+
var themeCss = 'core/themes/' + jeedom.theme.jeedom_theme_alternate + '/desktop/' + jeedom.theme.jeedom_theme_alternate + '.css?v=' + jeeFrontEnd.jeedomVersion
480480
var currentTime = parseInt((new Date()).getHours() * 100 + (new Date()).getMinutes())
481481

482482
//if (parseInt(jeedom.theme.theme_start_day_hour.replace(':', '')) < currentTime && parseInt(jeedom.theme.theme_end_day_hour.replace(':', '')) > currentTime) {
@@ -487,17 +487,14 @@ jeedomUtils.checkThemechange = function() {
487487
|| jeedom.theme.theme_changeAccordingTime == 0
488488
) {
489489
theme = jeedom.theme.jeedom_theme_main
490-
themeCss = 'core/themes/' + jeedom.theme.jeedom_theme_main + '/desktop/' + jeedom.theme.jeedom_theme_main + '.css'
490+
themeCss = 'core/themes/' + jeedom.theme.jeedom_theme_main + '/desktop/' + jeedom.theme.jeedom_theme_main + '.css?v=' + jeeFrontEnd.jeedomVersion
491491
}
492492

493493
var currentTheme = document.getElementById('jeedom_theme_currentcss').getAttribute('href')
494-
if (currentTheme.indexOf('?md5') != -1) {
495-
currentTheme = currentTheme.substring(0, currentTheme.indexOf('?md5'))
496-
}
497494
if (currentTheme != themeCss) {
498495
document.body.setAttribute('data-theme', theme)
499496
document.getElementById('jeedom_theme_currentcss').setAttribute('href', themeCss)
500-
document.getElementById('shadows_theme_css')?.setAttribute('href', 'core/themes/' + theme + '/desktop/shadows.css')
497+
document.getElementById('shadows_theme_css')?.setAttribute('href', 'core/themes/' + theme + '/desktop/shadows.css?v=' + jeeFrontEnd.jeedomVersion)
501498
jeedomUtils.setBackgroundImage('')
502499
jeedomUtils.triggerThemechange()
503500
}
@@ -1140,7 +1137,7 @@ jeedomUtils.initDataTables = function(_selector, _paging, _searching,_init) {
11401137
document.querySelector(_selector).querySelectorAll('table.dataTable').forEach(_table => {
11411138
if (_table._dataTable) {
11421139
_table._dataTable.destroy()
1143-
}
1140+
}
11441141
new DataTable(_table, {
11451142
columns: _init || [{ select: 0, sort: "asc" }],
11461143
paging: _paging,
@@ -1166,7 +1163,7 @@ jeedomUtils.resizableTable = function(table) {
11661163
div.addEventListener('mousedown', function (e) {
11671164
curCol = e.target.parentElement;
11681165
nxtCol = curCol.nextElementSibling;
1169-
pageX = e.pageX;
1166+
pageX = e.pageX;
11701167
var padding = paddingDiff(curCol);
11711168
curColWidth = curCol.offsetWidth - padding;
11721169
if (nxtCol)
@@ -1186,7 +1183,7 @@ jeedomUtils.resizableTable = function(table) {
11861183
curCol.style.width = (curColWidth + diffX)+'px';
11871184
}
11881185
});
1189-
document.addEventListener('mouseup', function (e) {
1186+
document.addEventListener('mouseup', function (e) {
11901187
curCol = undefined;
11911188
nxtCol = undefined;
11921189
pageX = undefined;

desktop/js/connection.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ if (!jeeFrontEnd.connection) {
2323
if (this.deepUrl.includes('logout')) this.deepUrl = ''
2424
window.jeeP = this
2525

26-
document.getElementById('jeedom_theme_currentcss').href = 'core/themes/core2019_Light/desktop/core2019_Light.css'
26+
document.getElementById('jeedom_theme_currentcss').href = 'core/themes/core2019_Light/desktop/core2019_Light.css?v=' + jeeFrontEnd.jeedomVersion
2727
document.title = JEEDOM_PRODUCT_NAME + ' - Login'
2828
},
2929
askMarket: function() {
@@ -233,7 +233,7 @@ document.getElementById('wrap')?.addEventListener('click', function(event) {
233233
event.stopPropagation();
234234
var _el = event.target.matches('a.bt_showPassConnection') ? event.target : event.target.parentNode;
235235
var input = _el.closest('.input-group').querySelector('input');
236-
236+
237237
if (input.getAttribute('type') === 'password') {
238238
input.setAttribute('type', 'text');
239239
} else {

desktop/php/index.php

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,8 +112,7 @@ function setTheme() {
112112
global $jeedom_theme, $homeLogoSrc;
113113
$homeLogoSrc = config::byKey('logo_light');
114114
$dataNoChange = false;
115-
$themeCss = '<link id="jeedom_theme_currentcss" href="core/themes/core2019_Light/desktop/core2019_Light.css?md5=' . md5(__DIR__ . '/../../core/themes/core2019_Light/desktop/core2019_Light.css') . '" rel="stylesheet">';
116-
$themeJs = 'core2019_Light/desktop/core2019_Light';
115+
$themeCss = '<link id="jeedom_theme_currentcss" href="core/themes/core2019_Light/desktop/core2019_Light.css?v=' . jeedom::version() . '" rel="stylesheet">';
117116

118117
$themeDefinition = $jeedom_theme['current_desktop_theme'];
119118
if (isset($_COOKIE['currentTheme'])) {
@@ -126,8 +125,8 @@ function setTheme() {
126125
}
127126
}
128127
if (init('rescue', 0) == 0) {
129-
if (is_dir(__DIR__ . '/../../core/themes/' . $themeDefinition . '/desktop') && file_exists(__DIR__ . '/../../core/themes/' . $themeDefinition . '/desktop/' . $themeDefinition . '.css')) {
130-
$themeCss = '<link id="jeedom_theme_currentcss" href="core/themes/' . $themeDefinition . '/desktop/' . $themeDefinition . '.css?md5=' . md5(__DIR__ . '/../../core/themes/' . $themeDefinition . '/desktop/' . $themeDefinition . '.css') . '" rel="stylesheet">';
128+
if (file_exists(__DIR__ . "/../../core/themes/{$themeDefinition}/desktop/{$themeDefinition}.css")) {
129+
$themeCss = '<link id="jeedom_theme_currentcss" href="core/themes/' . $themeDefinition . '/desktop/' . $themeDefinition . '.css?v=' . jeedom::version() . '" rel="stylesheet">';
131130
if ($dataNoChange) $themeCss = str_replace('rel="stylesheet"', 'rel="stylesheet" data-nochange="1"', $themeCss);
132131
}
133132
}
@@ -137,9 +136,8 @@ function setTheme() {
137136
}
138137
echo $themeCss;
139138
if (!isset($jeedom_theme['interface::advance::enable']) || !isset($jeedom_theme['widget::shadow']) || $jeedom_theme['interface::advance::enable'] == 0 || $jeedom_theme['widget::shadow'] == 0) {
140-
$shdPath = __DIR__ . '/../../core/themes/' . $themeDefinition . '/desktop/shadows.css';
141-
if (file_exists($shdPath)) {
142-
echo '<link id="shadows_theme_css" href="core/themes/' . $themeDefinition . '/desktop/shadows.css" rel="stylesheet">';
139+
if (file_exists(__DIR__ . "/../../core/themes/{$themeDefinition}/desktop/shadows.css")) {
140+
echo '<link id="shadows_theme_css" href="core/themes/' . $themeDefinition . '/desktop/shadows.css?v=' . jeedom::version() . '" rel="stylesheet">';
143141
}
144142
}
145143
}

0 commit comments

Comments
 (0)