Made the website work on POST requests instead of a javascript call.

This commit is contained in:
Bram van der Veen 2015-07-22 17:09:33 +02:00
parent d7d17de5d8
commit d5b6fcce0d
8 changed files with 38 additions and 36 deletions

View file

@ -21,7 +21,7 @@ function get(req, res, next, search) {
next(); next();
} }
else if (database_entry.length == 0) { else if (database_entry.length == 0) {
res.render('not_found'); res.render('not_found', req);
} }
else { else {
req.match = database_entry; req.match = database_entry;
@ -52,6 +52,7 @@ function list(req, res, next, list) {
index.find({group: list}).toArray(function (err, database_entry) { index.find({group: list}).toArray(function (err, database_entry) {
if (err) {req.error = err; next();} if (err) {req.error = err; next();}
else { else {
if (database_entry.length < 1) res.render('not_found', req);
req.match = database_entry; req.match = database_entry;
next(); next();
} }

23
redirecter.js Normal file
View file

@ -0,0 +1,23 @@
//redirecter.js
var qs = require('querystring');
module.exports = function (req, res) {
var referer = req.headers.referer.split('/')[3] || 'rooster';
var _data = '';
req.on('data', function (data) {
_data += data;
});
req.on('end', function () {
var query = qs.parse(_data);
if (query && query.search != '') {
query.search = query.search.trim();
if (query.search == 'hoewerkt') res.redirect('http://hoewerkt.werkmanrooster.nl');
res.redirect('/' + referer + '/' + query.search);
}
});
}

View file

@ -1,7 +1,6 @@
include header include header
div.homepage div.homepage
input.search(type="text", name="searchterm", placeholder="Je naam, id, klassennaam, docentencode, lokaalcode") include search
button.search Zoeken
include linkbar include linkbar

View file

@ -1,4 +1,4 @@
//- not_found.jade //- not_found.jade
include header include header
h6.container.center.notfound Er zijn geen resultaten gevonden met je zoekopdracht, kijk het nog even goed en probeer het nog eens. h6.container.center.notfound Er is geen #{path.split('/')[1]} gevonden met je zoekopdracht, kijk je zoekopdracht nog even goed na en probeer het nog eens.
include search include search

View file

@ -1,3 +1,5 @@
//- search.jade //- search.jade
input.search(type="text", name="searchterm", placeholder="Je naam, id, klassennaam, docentencode, lokaalcode", value=path.split('/')[1] == 'klassenlijst' ? 'Leerlingen van ' + match[0].group : match ? ((match.first_name || match.name || 'Meerdere mensen hun rooster') + '\'s rooster') : '')
button.search Zoeken form(method="post", action="/")
input.search(type="text", name="search", placeholder="Je naam, id, klassennaam, docentencode, lokaalcode", value=path.split('/')[1] == 'klassenlijst' && match ? 'Leerlingen van ' + match[0].group : match ? ((match.first_name || match.name || 'Meerdere mensen hun rooster') + '\'s rooster') : '')
input.search(type="submit", value="Zoeken")

View file

@ -1,23 +1 @@
$(document).ready(function () { //Nothing to see here folks
$('input.search').on('keyup', function (e) {
if (e.keyCode == 13) {
go();
}
});
$('button.search').click(function () {
go();
});
});
function go() {
var searchterm = $('.search').val().trim().replace(/\'s Rooster/gi, '');
if (!!searchterm) {
document.location.pathname = '/rooster/' + searchterm;
}
else {
document.location.pathname = '/';
}
}

View file

@ -64,18 +64,14 @@ ul.found {
} }
} }
.search { input.search {
margin: 0 auto; text-align: center;
margin: 12px auto;
width: 50%; width: 50%;
display: block; display: block;
font-family: Open Sans; font-family: Open Sans;
} }
input.search {
text-align: center;
margin-bottom: 10px;
}
.bar { .bar {
height: 20px; height: 20px;
width: 100%; width: 100%;

3
web.js
View file

@ -9,6 +9,7 @@ var config = require('./configuration');
var lookup = require('./lookup'); var lookup = require('./lookup');
var schedule = require('./schedule'); var schedule = require('./schedule');
var auth = require('./auth'); var auth = require('./auth');
var redirecter = require('./redirecter');
var app = express(); var app = express();
@ -30,6 +31,8 @@ app.get('/', auth.is, function (req, res) {
res.render('homepage', req); res.render('homepage', req);
}); });
app.post('/', redirecter);
app.get('/login', function (req, res) { app.get('/login', function (req, res) {
res.render('login', req); res.render('login', req);
}); });