v1.18.x
psychobunny 11 years ago
commit 1644c1f9e9

@ -28,6 +28,7 @@ var adminController = {
widgets: {}
},
events: {},
logs: {},
database: {},
plugins: {},
languages: {},
@ -172,6 +173,19 @@ adminController.events.get = function(req, res, next) {
});
};
adminController.logs.get = function(req, res, next) {
var logPath = path.join('logs', path.sep, 'output.log');
fs.readFile(logPath, function(err, data) {
if (err || !data) {
data = '';
}
res.render('admin/advanced/log', {
data: data.toString()
});
});
};
adminController.plugins.get = function(req, res, next) {
plugins.getAll(function(err, plugins) {
if (err || !Array.isArray(plugins)) {

@ -53,7 +53,13 @@
winston.error('Unable to initialize MongoDB! Is MongoDB installed? Error :' + err.message);
process.exit();
}
var connString = 'mongodb://'+ nconf.get('mongo:host') + ':' + nconf.get('mongo:port') + '/' + nconf.get('mongo:database');
var usernamePassword = '';
if (nconf.get('mongo:username') && nconf.get('mongo:password')) {
usernamePassword = nconf.get('mongo:username') + ':' + nconf.get('mongo:password') + '@';
}
var connString = 'mongodb://' + usernamePassword + nconf.get('mongo:host') + ':' + nconf.get('mongo:port') + '/' + nconf.get('mongo:database');
var connOptions = {
server: {
poolSize: nconf.get('mongo:poolSize') || 10

@ -355,7 +355,7 @@ middleware.renderHeader = function(req, res, callback) {
templateValues.user = results.user;
templateValues.customCSS = results.customCSS;
templateValues.customJS = results.customJS;
templateValues.maintenanceHeader = meta.config.maintenanceMode === '1' ^ !!results.isAdmin
templateValues.maintenanceHeader = meta.config.maintenanceMode === '1' && !results.isAdmin
app.render('header', templateValues, callback);
});

@ -64,6 +64,7 @@ function addRoutes(router, middleware, controllers) {
router.get('/advanced/database', controllers.admin.database.get);
router.get('/advanced/events', controllers.admin.events.get);
router.get('/advanced/logs', controllers.admin.logs.get);
router.get('/development/logger', controllers.admin.logger.get);
}

@ -1,6 +1,12 @@
"use strict";
var groups = require('../groups'),
var async = require('async'),
winston = require('winston'),
cluster = require('cluster'),
fs = require('fs'),
path = require('path'),
groups = require('../groups'),
meta = require('../meta'),
plugins = require('../plugins'),
widgets = require('../widgets'),
@ -11,10 +17,8 @@ var groups = require('../groups'),
events = require('../events'),
emailer = require('../emailer'),
db = require('../database'),
async = require('async'),
winston = require('winston'),
index = require('./index'),
cluster = require('cluster'),
SocketAdmin = {
user: require('./admin/user'),
@ -232,4 +236,9 @@ function getHourlyStatsForSet(set, hours, callback) {
});
}
SocketAdmin.clearLog = function(socket, data, callback) {
var logPath = path.join('logs', path.sep, 'output.log');
fs.truncate(logPath, callback);
};
module.exports = SocketAdmin;

@ -0,0 +1,30 @@
<div class="logs">
<div class="col-sm-9">
<div class="panel panel-default">
<div class="panel-heading"><i class="fa fa-file-text-o"></i> Logs</div>
<div class="panel-body">
<pre>{data}</pre>
</div>
</div>
</div>
</div>
<div class="col-lg-3">
<div class="panel panel-default">
<div class="panel-body">
<button class="btn btn-primary btn-md" id="clearLog">Clear Log</button>
</div>
</div>
</div>
<script>
$('#clearLog').on('click', function() {
socket.emit('admin.clearLog', {}, function(err) {
if (err) {
return app.alertError(err.message);
}
$('.logs .panel-body pre').text('');
});
})
</script

@ -144,6 +144,7 @@
<li class="nav-header"><i class="fa fa-fw fa-hdd-o"></i> Advanced</li>
<li><a href="{relative_path}/admin/advanced/database">Database</a></li>
<li><a href="{relative_path}/admin/advanced/events">Events</a></li>
<li><a href="{relative_path}/admin/advanced/logs">Logs</a></li>
</ul>
</div>
<div class="sidebar-nav">

Loading…
Cancel
Save