diff --git a/admin/include/functions.php b/admin/include/functions.php
index 5095fb773..d2b5b8ca7 100644
--- a/admin/include/functions.php
+++ b/admin/include/functions.php
@@ -3410,3 +3410,46 @@ SELECT *
return $images[0];
}
+
+
+/**
+ * Return each cache image sizes.
+ *
+ * @since 12
+ * @param string $path_to_file
+ */
+function get_cache_size_derivatives($path)
+{
+ $msizes = array(); //final res
+ $subdirs = array(); //sous-rep
+
+ if (is_dir($path))
+ {
+ if ($contents = opendir($path))
+ {
+ while (($node = readdir($contents)) !== false)
+ {
+ if ($node == '.' or $node == '..') continue;
+
+ if (is_file($path.'/'.$node))
+ {
+ if ($split = explode('-' ,$node))
+ {
+ $size_code = substr(end($split), 0, 2);
+ @$msizes[$size_code] += filesize($path.'/'.$node);
+ }
+ }
+ elseif (is_dir($path.'/'.$node))
+ {
+ $tmp_msizes = get_cache_size_derivatives($path.'/'.$node);
+ foreach ($tmp_msizes as $size_key => $value)
+ {
+ @$msizes[$size_key] += $value;
+ }
+ }
+ }
+ }
+ closedir($contents);
+ }
+ return $msizes;
+}
diff --git a/admin/maintenance_actions.php b/admin/maintenance_actions.php
index abfa9a02c..409448a29 100644
--- a/admin/maintenance_actions.php
+++ b/admin/maintenance_actions.php
@@ -281,7 +281,9 @@ $template->assign(
'U_PHPINFO' => sprintf($url_format, 'phpinfo'),
'PHP_DATATIME' => $php_current_timestamp,
'DB_DATATIME' => $db_current_date,
- 'pwg_token' => $pwg_token
+ 'pwg_token' => $pwg_token,
+ 'cache_sizes' => (isset($conf['cache_sizes'])) ? unserialize($conf['cache_sizes']) : null,
+ 'time_elapsed_since_last_calc' => (isset($conf['cache_sizes'])) ? time_since(unserialize($conf['cache_sizes'])[3]['value'], 'year') : null,
)
);
diff --git a/admin/maintenance_env.php b/admin/maintenance_env.php
index 6a9820ad4..f00d7c45b 100644
--- a/admin/maintenance_env.php
+++ b/admin/maintenance_env.php
@@ -292,6 +292,8 @@ $template->assign(
'U_PHPINFO' => sprintf($url_format, 'phpinfo'),
'PHP_DATATIME' => $php_current_timestamp,
'DB_DATATIME' => $db_current_date,
+ 'cache_sizes' => (isset($conf['cache_sizes'])) ? unserialize($conf['cache_sizes']) : null,
+ 'time_elapsed_since_last_calc' => (isset($conf['cache_sizes'])) ? time_since(unserialize($conf['cache_sizes'])[3]['value'], 'year') : null,
)
);
diff --git a/admin/themes/default/js/maintenance.js b/admin/themes/default/js/maintenance.js
index 35ae16efb..e71476cfd 100644
--- a/admin/themes/default/js/maintenance.js
+++ b/admin/themes/default/js/maintenance.js
@@ -1,14 +1,15 @@
-function displayResponse(domElem, values, mDivs, mValues, lastTimeCalc) {
+function displayResponse(domElem, values, mDivs, mValues) {
for (let index = 0; index < domElem.length; index++) {
- domElem[index].html(values[index])
+ domElem[index].html(values[index] + " Mo")
}
for (let index = 0; index < mDivs.length; index++) {
- mDivs[index].title = mValues[index] + "Mo";
+ mDivName = mDivs[index].getAttribute("name");
+ mDivs[index].title = mValues[mDivName] + " Mo";
}
- $(".cache-lastCalculated-value").html(lastTimeCalc)
+ $(".cache-lastCalculated-value").html(no_time_elapsed);
}
$(document).ready(function () {
@@ -28,26 +29,29 @@ $(document).ready(function () {
if (data.stat === "ok") {
res();
- console.log(data);
-
- console.log(data.result.infos[1].value);
-
var domElemToRefresh = [$(".cache-size-value"), $(".multiple-pictures-sizes"), $(".multiple-compiledTemplate-sizes")];
- var domElemValues = [data.result.infos[0].value, 69, 42];
+ var domElemValues = [data.result.infos[0].value, data.result.infos[1].value.all, data.result.infos[2].value];
+ for (let i = 0; i < domElemValues.length; i++) {
+ domElemValues[i] = (domElemValues[i]/1024/1024).toFixed(2);
+ }
var multipleSizes = $(".delete-check-container").children(".delete-size-check");
- var multipleSizesValues = data.result.infos[1].value;
+ var multipleSizesValues = data.result.infos[1].value
+ for (const [key, value] of Object.entries(multipleSizesValues)) {
+ multipleSizesValues[key] = (multipleSizesValues[key]/1024/1024).toFixed(2);
+ }
- displayResponse(domElemToRefresh , domElemValues, multipleSizes, multipleSizesValues, data.result.infos[2].value);
+ displayResponse(domElemToRefresh , domElemValues, multipleSizes, multipleSizesValues);
- $(".refresh-icon").addClass("icon-arrows-cw").removeClass("spin6");
+ $(this).children("span").addClass("icon-arrows-cw").removeClass("spin6");
} else {
- rej(raw_data);
+ rej(data);
}
},
error: function(message) {
rej(message);
+ console.log(message);
}
});
})
diff --git a/admin/themes/default/template/maintenance_actions.tpl b/admin/themes/default/template/maintenance_actions.tpl
index 446c42a3d..2fb92bbcc 100644
--- a/admin/themes/default/template/maintenance_actions.tpl
+++ b/admin/themes/default/template/maintenance_actions.tpl
@@ -4,6 +4,7 @@
{footer_script}
const confirm_msg = '{"Yes, I am sure"|@translate}';
const cancel_msg = "{"No, I have changed my mind"|@translate}";
+const no_time_elapsed = "{"right now"|@translate}";
let selected = [];
$(".lock-gallery-button").each(function() {
const gallery_tip = '{"A locked gallery is only visible to administrators"|@translate|@escape:'javascript'}';
@@ -113,11 +114,11 @@ $(".delete-size-check").click( function () {