2015-06-06 19:23:13 +02:00
|
|
|
//web.js
|
|
|
|
var express = require('express');
|
2015-06-13 23:35:44 +02:00
|
|
|
var less = require('express-less');
|
2015-06-24 11:08:37 +02:00
|
|
|
var body_parser = require('body-parser');
|
2015-06-26 12:04:27 +02:00
|
|
|
var fs = require('fs');
|
2015-06-13 22:02:34 +02:00
|
|
|
|
2015-06-27 15:03:50 +02:00
|
|
|
var api = require('./api');
|
2015-06-24 11:08:37 +02:00
|
|
|
var config = require('./configuration');
|
2015-06-14 23:32:57 +02:00
|
|
|
var lookup = require('./lookup');
|
|
|
|
var schedule = require('./schedule');
|
2015-07-21 15:01:11 +02:00
|
|
|
var auth = require('./auth');
|
2015-06-13 23:35:44 +02:00
|
|
|
|
2015-06-24 11:08:37 +02:00
|
|
|
var app = express();
|
|
|
|
|
2015-06-23 11:57:09 +02:00
|
|
|
//Set up jade rendering engine.
|
2015-06-13 23:35:44 +02:00
|
|
|
app.set('view engine', 'jade');
|
2015-06-23 11:57:09 +02:00
|
|
|
config().env == 'dev' ? app.disable('view cache') : null; //If the environment is set on 'dev' then view cache should be disabled.
|
2015-06-13 23:35:44 +02:00
|
|
|
app.set('views', __dirname + '/resources/jade');
|
2015-06-23 11:57:09 +02:00
|
|
|
|
|
|
|
//Set up all static directories for getting resources.
|
2015-06-13 23:35:44 +02:00
|
|
|
app.use('/css', less(__dirname + '/resources/less'));
|
|
|
|
app.use('/js', express.static(__dirname + '/resources/js'));
|
2015-06-23 11:36:31 +02:00
|
|
|
app.use('/other', express.static(__dirname + '/resources/other'));
|
2015-06-06 19:23:13 +02:00
|
|
|
|
2015-07-21 15:01:11 +02:00
|
|
|
//Other things that need to be setup
|
|
|
|
// app.use(body_parser);
|
|
|
|
|
|
|
|
app.get('/', auth.is, function (req, res) {
|
2015-06-24 11:08:37 +02:00
|
|
|
req.links = config().links;
|
|
|
|
res.render('homepage', req);
|
2015-06-13 23:35:44 +02:00
|
|
|
});
|
2015-06-06 19:23:13 +02:00
|
|
|
|
2015-07-21 15:01:11 +02:00
|
|
|
app.get('/login', function (req, res) {
|
|
|
|
res.render('login');
|
2015-06-06 19:23:13 +02:00
|
|
|
});
|
|
|
|
|
2015-07-21 15:01:11 +02:00
|
|
|
app.post('/login', auth.login);
|
|
|
|
|
|
|
|
app.get('/api/:api', function (req, res, next) { next(); });
|
2015-06-27 15:03:50 +02:00
|
|
|
app.param('api', api);
|
|
|
|
|
2015-07-21 15:01:11 +02:00
|
|
|
app.get('/rooster/:search', function (req, res, next) {
|
2015-06-27 15:03:50 +02:00
|
|
|
next();
|
2015-06-06 19:23:13 +02:00
|
|
|
});
|
|
|
|
|
2015-06-27 15:03:50 +02:00
|
|
|
app.param('search', lookup.get);
|
|
|
|
app.param('search', schedule.get);
|
2015-06-13 23:35:44 +02:00
|
|
|
|
|
|
|
app.param('search', function (req, res) {
|
2015-06-24 11:08:37 +02:00
|
|
|
req.links = config().links;
|
|
|
|
req.times = config().hour_times;
|
|
|
|
res.render('schedule', req);
|
2015-06-13 23:35:44 +02:00
|
|
|
});
|
|
|
|
|
2015-06-14 23:32:57 +02:00
|
|
|
app.listen(config().web_port);
|
2015-06-26 12:04:27 +02:00
|
|
|
plugins();
|
|
|
|
|
|
|
|
function plugins() {
|
|
|
|
var plugins_directory = fs.readdirSync(__dirname + '/plugins');
|
|
|
|
|
|
|
|
for (plugin of plugins_directory) {
|
|
|
|
var app = __dirname + '/plugins/' + plugin + '/app.js';
|
|
|
|
if (fs.existsSync(app)) {
|
|
|
|
var app = require(app)(config().web_port + (1 + plugin.indexOf(plugins_directory)));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|