diff --git a/public/src/admin/advanced/cache.js b/public/src/admin/advanced/cache.js new file mode 100644 index 000000000000..55eaf13d7fb8 --- /dev/null +++ b/public/src/admin/advanced/cache.js @@ -0,0 +1,20 @@ +'use strict'; + +define('admin/advanced/cache', function () { + var Cache = {}; + Cache.init = function () { + require(['admin/settings'], function (Settings) { + Settings.prepare(); + }); + + $('#clear').on('click', function () { + socket.emit('admin.cache.clear', function (err) { + if (err) { + return app.alertError(err.message); + } + ajaxify.refresh(); + }); + }); + }; + return Cache; +}); diff --git a/src/controllers/admin/cache.js b/src/controllers/admin/cache.js index 5f1a92fcde81..165e4537b476 100644 --- a/src/controllers/admin/cache.js +++ b/src/controllers/admin/cache.js @@ -45,7 +45,7 @@ cacheController.get = function (req, res) { dump: req.query.debug ? JSON.stringify(localCache.dump(), null, 4) : false, hits: utils.addCommas(String(localCache.hits)), misses: utils.addCommas(String(localCache.misses)), - hitRatio: (localCache.hits / (localCache.hits + localCache.misses)).toFixed(4), + hitRatio: ((localCache.hits / (localCache.hits + localCache.misses) || 0)).toFixed(4), }, }; diff --git a/src/socket.io/admin.js b/src/socket.io/admin.js index 5848f106a4d0..9462f2afeed3 100644 --- a/src/socket.io/admin.js +++ b/src/socket.io/admin.js @@ -32,6 +32,7 @@ SocketAdmin.logs = require('./admin/logs'); SocketAdmin.errors = require('./admin/errors'); SocketAdmin.uploads = require('./admin/uploads'); SocketAdmin.digest = require('./admin/digest'); +SocketAdmin.cache = require('./admin/cache'); SocketAdmin.before = async function (socket, method) { const isAdmin = await user.isAdministrator(socket.uid); diff --git a/src/socket.io/admin/cache.js b/src/socket.io/admin/cache.js new file mode 100644 index 000000000000..2852e1dd3cf8 --- /dev/null +++ b/src/socket.io/admin/cache.js @@ -0,0 +1,10 @@ +'use strict'; + +const SocketCache = module.exports; + +SocketCache.clear = async function () { + require('../../posts/cache').reset(); + require('../../database').objectCache.reset(); + require('../../groups').cache.reset(); + require('../../cache').reset(); +}; diff --git a/src/views/admin/advanced/cache.tpl b/src/views/admin/advanced/cache.tpl index b2d71618b771..dfc7caa9b0a4 100644 --- a/src/views/admin/advanced/cache.tpl +++ b/src/views/admin/advanced/cache.tpl @@ -106,14 +106,9 @@
[[admin/advanced/cache:control-panel]]
- + +
- - \ No newline at end of file