-
Notifications
You must be signed in to change notification settings - Fork 2
/
app.js
executable file
·76 lines (64 loc) · 1.7 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
function dueString(timestamp){
var now = new Date().getTime();
var days = Math.ceil((timestamp - now) / (1000*60*60*24));
var ret = "(";
if(days == 0){
ret += "due today";
}
else if(days > 0){
ret += "due in " + days + " days";
}
else
{
ret += "overdue by " + Math.abs(days) + " days";
}
return ret + ")";
}
var express = require('express');
var app = express.createServer();
app.configure(function() {
app.use(express.bodyParser());
app.use(express.methodOverride());
app.use(express.logger());
app.use(express.static(__dirname + '/static'));
});
app.set('views', __dirname + '/views');
app.set('view engine', 'jade');
var data = require('./data');
app.get('/', function(req, httpResponse){
data.list(function(err, res) {
for(item in res)
{
var due = res[item].value.duetimestamp;
if(due == -1)
res[item].due = "";
else
res[item].due = dueString(due);
}
//console.log(res);
httpResponse.render('list', {
locals: {items: res}
});
});
});
app.post('/', function(req, httpResponse) {
var text = req.body.todo.text;
var due = req.body.todo.due;
var stamp = Date.parse(due);
var dueDate = null;
if(isNaN(stamp) == false)
{
dueDate = new Date(stamp);
}
data.insert(text, dueDate, function(err, res) {
httpResponse.redirect('/');
});
});
app.get('/delete/:id/:rev', function(req, httpResponse) {
var id = req.params.id;
var rev = req.params.rev;
data.delete(id, rev, function(err, res) {
httpResponse.redirect('/');
});
});
app.listen(4000);