mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 16:46:12 +01:00
feat: ability to clear cache from acp
This commit is contained in:
20
public/src/admin/advanced/cache.js
Normal file
20
public/src/admin/advanced/cache.js
Normal file
@@ -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;
|
||||||
|
});
|
||||||
@@ -45,7 +45,7 @@ cacheController.get = function (req, res) {
|
|||||||
dump: req.query.debug ? JSON.stringify(localCache.dump(), null, 4) : false,
|
dump: req.query.debug ? JSON.stringify(localCache.dump(), null, 4) : false,
|
||||||
hits: utils.addCommas(String(localCache.hits)),
|
hits: utils.addCommas(String(localCache.hits)),
|
||||||
misses: utils.addCommas(String(localCache.misses)),
|
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),
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ SocketAdmin.logs = require('./admin/logs');
|
|||||||
SocketAdmin.errors = require('./admin/errors');
|
SocketAdmin.errors = require('./admin/errors');
|
||||||
SocketAdmin.uploads = require('./admin/uploads');
|
SocketAdmin.uploads = require('./admin/uploads');
|
||||||
SocketAdmin.digest = require('./admin/digest');
|
SocketAdmin.digest = require('./admin/digest');
|
||||||
|
SocketAdmin.cache = require('./admin/cache');
|
||||||
|
|
||||||
SocketAdmin.before = async function (socket, method) {
|
SocketAdmin.before = async function (socket, method) {
|
||||||
const isAdmin = await user.isAdministrator(socket.uid);
|
const isAdmin = await user.isAdministrator(socket.uid);
|
||||||
|
|||||||
10
src/socket.io/admin/cache.js
Normal file
10
src/socket.io/admin/cache.js
Normal file
@@ -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();
|
||||||
|
};
|
||||||
@@ -106,14 +106,9 @@
|
|||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">[[admin/advanced/cache:control-panel]]</div>
|
<div class="panel-heading">[[admin/advanced/cache:control-panel]]</div>
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<button class="btn btn-primary" id="save">[[admin/advanced/cache:update-settings]]</button>
|
<button class="btn btn-primary btn-block" id="save">[[admin/advanced/cache:update-settings]]</button>
|
||||||
|
<button class="btn btn-info btn-block" id="clear">[[admin/advanced/cache:clear]]</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script>
|
|
||||||
require(['admin/settings'], function(Settings) {
|
|
||||||
Settings.prepare();
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
Reference in New Issue
Block a user