diff --git a/app.js b/app.js index aeae3ad..6d9a53c 100644 --- a/app.js +++ b/app.js @@ -4,6 +4,7 @@ var async = require('async'); var createClient = require('pa11y-webservice-client-node'); var EventEmitter = require('events').EventEmitter; var express = require('express'); +var hbs = require('express-hbs'); var http = require('http'); module.exports = initApp; @@ -17,10 +18,23 @@ function initApp (config, callback) { app.server = http.createServer(app.express); app.webservice = createClient(config.webservice); + // View engine + app.express.set('views', __dirname + '/view'); + app.express.engine('html', hbs.express3({ + extname: '.html', + contentHelperName: 'content', + layoutsDir: __dirname + '/view/layout', + partialsDir: __dirname + '/view/partial', + defaultLayout: __dirname + '/view/layout/default', + })); + app.express.set('view engine', 'html'); + + // Load routes require('./route/index')(app); require('./route/new')(app); require('./route/task')(app); + // Error handling app.express.use(function (err, req, res, next) { app.emit('route-error', err); res.send('Error'); diff --git a/package.json b/package.json index bfcf996..08b4e04 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "dependencies": { "chalk": "~0.2", "express": "~3.4", + "express-hbs": "~0.2", "pa11y-webservice-client-node": "git+ssh://git@github.com:nature/pa11y-webservice-client-node.git#1.0.0-beta.1" }, "devDependencies": { diff --git a/route/index.js b/route/index.js index 45e3670..3570954 100644 --- a/route/index.js +++ b/route/index.js @@ -9,7 +9,9 @@ function route (app) { if (err) { return next(err); } - res.send(tasks); + res.render('index', { + tasks: tasks + }); }); }); } diff --git a/route/new.js b/route/new.js index 17281c4..3b9e365 100644 --- a/route/new.js +++ b/route/new.js @@ -5,6 +5,6 @@ module.exports = route; // Route definition function route (app) { app.express.get('/new', function (req, res) { - res.send('Create a task'); + res.render('new'); }); } diff --git a/route/task.js b/route/task.js index 5dead46..f591d22 100644 --- a/route/task.js +++ b/route/task.js @@ -9,7 +9,9 @@ function route (app) { if (err) { return next(); } - res.send(task); + res.render('task', { + task: task + }); }); }); } diff --git a/view/index.html b/view/index.html new file mode 100644 index 0000000..daa5fd5 --- /dev/null +++ b/view/index.html @@ -0,0 +1,12 @@ + +{{#content "title"}} + Tasks +{{/content}} + +

Tasks

+ +

Here are some tasks:

+ +{{> tasks}} + +Create a task diff --git a/view/layout/default.html b/view/layout/default.html new file mode 100644 index 0000000..2a0981a --- /dev/null +++ b/view/layout/default.html @@ -0,0 +1,15 @@ + + + + + + {{block "title"}} + + + + + + {{{body}}} + + + \ No newline at end of file diff --git a/view/new.html b/view/new.html new file mode 100644 index 0000000..c70b568 --- /dev/null +++ b/view/new.html @@ -0,0 +1,10 @@ + +{{#content "title"}} + Create A Task +{{/content}} + +« all tasks + +

Create A Task

+ +

TODO: Add form here and create handler for it.

diff --git a/view/partial/tasks.html b/view/partial/tasks.html new file mode 100644 index 0000000..587c475 --- /dev/null +++ b/view/partial/tasks.html @@ -0,0 +1,10 @@ + + diff --git a/view/task.html b/view/task.html new file mode 100644 index 0000000..8450c5f --- /dev/null +++ b/view/task.html @@ -0,0 +1,12 @@ + +{{#content "title"}} + Task: {{task.url}} ({{task.standard}}) +{{/content}} + +« all tasks + +

Task: {{task.url}} ({{task.standard}})

+ +

TODO: Get and display results.

+ +{{> tasks}}