Add basic views

This commit is contained in:
Rowan Manning
2013-09-13 17:20:38 +01:00
parent 433aecd972
commit f951f7c734
10 changed files with 81 additions and 3 deletions

14
app.js
View File

@@ -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');

View File

@@ -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": {

View File

@@ -9,7 +9,9 @@ function route (app) {
if (err) {
return next(err);
}
res.send(tasks);
res.render('index', {
tasks: tasks
});
});
});
}

View File

@@ -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');
});
}

View File

@@ -9,7 +9,9 @@ function route (app) {
if (err) {
return next();
}
res.send(task);
res.render('task', {
task: task
});
});
});
}

12
view/index.html Normal file
View File

@@ -0,0 +1,12 @@
{{#content "title"}}
Tasks
{{/content}}
<h1>Tasks</h1>
<p>Here are some tasks:</p>
{{> tasks}}
<a href="/new">Create a task</a>

15
view/layout/default.html Normal file
View File

@@ -0,0 +1,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>{{block "title"}}</title>
<meta name="description" content="{{block "description"}}"/>
</head>
<body>
{{{body}}}
</body>
</html>

10
view/new.html Normal file
View File

@@ -0,0 +1,10 @@
{{#content "title"}}
Create A Task
{{/content}}
<a href="/">&laquo; all tasks</a>
<h1>Create A Task</h1>
<p><b>TODO: Add form here and create handler for it.</b></p>

10
view/partial/tasks.html Normal file
View File

@@ -0,0 +1,10 @@
<ul>
{{#tasks}}
<li>
<a href="/{{id}}">
{{url}} ({{standard}})
</a>
</li>
{{/tasks}}
</ul>

12
view/task.html Normal file
View File

@@ -0,0 +1,12 @@
{{#content "title"}}
Task: {{task.url}} ({{task.standard}})
{{/content}}
<a href="/">&laquo; all tasks</a>
<h1>Task: {{task.url}} ({{task.standard}})</h1>
<p><b>TODO: Get and display results.</b></p>
{{> tasks}}