Add a skeleton page for individual results

This commit is contained in:
Rowan Manning
2013-09-25 14:56:09 +01:00
parent a46263bd29
commit 00dbebc1a6
6 changed files with 58 additions and 21 deletions

1
app.js
View File

@@ -55,6 +55,7 @@ function initApp (config, callback) {
require('./route/new')(app); require('./route/new')(app);
require('./route/task/index')(app); require('./route/task/index')(app);
require('./route/task/delete')(app); require('./route/task/delete')(app);
require('./route/result/index')(app);
// Error handling // Error handling
app.express.get('*', function (req, res) { app.express.get('*', function (req, res) {

View File

@@ -25,7 +25,7 @@
"express": "~3.4", "express": "~3.4",
"express-hbs": "~0.2", "express-hbs": "~0.2",
"moment": "~2.2", "moment": "~2.2",
"pa11y-webservice-client-node": "git+ssh://git@github.com:nature/pa11y-webservice-client-node.git#1.0.0-beta.2", "pa11y-webservice-client-node": "git+ssh://git@github.com:nature/pa11y-webservice-client-node.git#1.0.0-beta.3",
"underscore": "~1.5" "underscore": "~1.5"
}, },
"devDependencies": { "devDependencies": {

31
route/result/index.js Normal file
View File

@@ -0,0 +1,31 @@
'use strict';
var presentTask = require('../../view/presenter/task');
var presentResult = require('../../view/presenter/result');
module.exports = route;
// Route definition
function route (app) {
app.express.get('/:id/:rid', function (req, res, next) {
app.webservice.task(req.params.id).get({}, function (err, task) {
if (err) {
return next();
}
app.webservice
.task(req.params.id)
.result(req.params.rid)
.get({full: true}, function (err, result) {
if (err) {
return next();
}
res.render('result', {
task: presentTask(task),
mainResult: presentResult(result)
});
});
});
});
}

View File

@@ -20,7 +20,7 @@ function route (app) {
res.render('task', { res.render('task', {
task: presentTask(task), task: presentTask(task),
results: results.map(presentResult), results: results.map(presentResult),
lastResult: task.lastResult || null, mainResult: task.lastResult || null,
added: (typeof req.query.added !== 'undefined') added: (typeof req.query.added !== 'undefined')
}); });
}); });

6
view/result/index.html Normal file
View File

@@ -0,0 +1,6 @@
{{#content "title"}}
{{task.url}} ({{task.standard}}) {{date-format mainResult.date format="DD MMM YYYY"}}
{{/content}}
<h1>{{task.url}} ({{task.standard}}) {{date-format mainResult.date format="DD MMM YYYY"}}</h1>

View File

@@ -23,9 +23,9 @@
<div class="col-md-2 text-right run-details"> <div class="col-md-2 text-right run-details">
<!-- ########### To be done ############## --> <!-- ########### To be done ############## -->
<button class="btn btn-success">Run <span class="glyphicon glyphicon-play"></span></button> <button class="btn btn-success">Run <span class="glyphicon glyphicon-play"></span></button>
{{#if lastResult}} {{#if task.lastResult}}
<!-- ########################## --> <!-- ########################## -->
<div class="date">Last run : {{date-format lastResult.date format="DD MMM YYYY"}}</div> <div class="date">Last run : {{date-format task.lastResult.date format="DD MMM YYYY"}}</div>
{{else}} {{else}}
<div class="date">Not yet run</div> <div class="date">Not yet run</div>
{{/if}} {{/if}}
@@ -54,22 +54,21 @@
<div id="top" class="col-md-12 col-xs-6 dropdown-container"> <div id="top" class="col-md-12 col-xs-6 dropdown-container">
<h4 class="show-stats hidden">Select a date to show stats for</h4> <h4 class="show-stats hidden">Select a date to show stats for</h4>
<div class="btn-group block-level clearfix"> <div class="btn-group block-level clearfix">
<button data-toggle="dropdown" class="btn-full-width btn btn-primary dropdown-toggle" type="button">{{date-format lastResult.date format="DD MMM YYYY"}} <span class="glyphicon glyphicon-calendar"></span> <span class="caret"></span></button> <button data-toggle="dropdown" class="btn-full-width btn btn-primary dropdown-toggle" type="button">{{date-format task.lastResult.date format="DD MMM YYYY"}} <span class="glyphicon glyphicon-calendar"></span> <span class="caret"></span></button>
<ul role="navigation" class="date-links list-group"> <ul role="navigation" class="date-links list-group">
<li><a class="list-group-item active" href="#">21 Sept 2013</a></li>
{{#results}} {{#results}}
<li><a class="list-group-item" href="#">{{date-format date format="DD MMM YYYY"}}</a></li> <li><a class="list-group-item" href="{{href}}">{{date-format date format="DD MMM YYYY"}}</a></li>
{{/results}} {{/results}}
</ul> </ul>
</div> </div>
</div> </div>
<div class="col-md-12 col-xs-6"> <div class="col-md-12 col-xs-6">
<ul data-role="task-list" class="clearfix list-unstyled floated-list task-stats"> <ul data-role="task-list" class="clearfix list-unstyled floated-list task-stats">
{{#lastResult}} {{#mainResult}}
<li class="danger"><a href="#errors" title="See errors">{{count.error}}</a></li> <li class="danger"><a href="#errors" title="See errors">{{count.error}}</a></li>
<li class="warning"><a href="#warnings" title="See warnings">{{count.warning}}</a></li> <li class="warning"><a href="#warnings" title="See warnings">{{count.warning}}</a></li>
<li class="info last"><a href="#notices" title="See notices">{{count.notice}}</a></li> <li class="info last"><a href="#notices" title="See notices">{{count.notice}}</a></li>
{{/lastResult}} {{/mainResult}}
</ul> </ul>
</div> </div>
</div> </div>
@@ -104,20 +103,20 @@
<div class="col-md-9"> <div class="col-md-9">
{{#if results}} {{#if results}}
{{#if lastResult.count.error}} {{#if mainResult.count.error}}
<div class="heading label-danger showing first" id="errors"> <div class="heading label-danger showing first" id="errors">
<span data-role="expander" class="pull-right expander"> - </span> <span data-role="expander" class="pull-right expander"> - </span>
Errors ( {{lastResult.count.error}} ) Errors ( {{mainResult.count.error}} )
</div> </div>
<div class="task-danger tasks-list collapse clearfix in"> <div class="task-danger tasks-list collapse clearfix in">
<ul class="list-unstyled"> <ul class="list-unstyled">
{{#lastResult.errors}} {{#mainResult.errors}}
<li> <li>
<p class="crunch rule-name">{{type}} : {{code}} <span class="badge">{{count}}</span></p> <p class="crunch rule-name">{{type}} : {{code}} <span class="badge">{{count}}</span></p>
<p>{{message}}</p> <p>{{message}}</p>
</li> </li>
{{/lastResult.errors}} {{/mainResult.errors}}
</ul> </ul>
<a class="pull-right" href="#top" data-role="top">Back to top</a> <a class="pull-right" href="#top" data-role="top">Back to top</a>
</div> </div>
@@ -125,19 +124,19 @@
<p class="heading label-danger" id="errors">Well done! You have 0 errors. <span class="glyphicon glyphicon-ok pull-right"></span></p> <p class="heading label-danger" id="errors">Well done! You have 0 errors. <span class="glyphicon glyphicon-ok pull-right"></span></p>
{{/if}} {{/if}}
{{#if lastResult.count.warning}} {{#if mainResult.count.warning}}
<div class="heading label-warning" id="warnings"> <div class="heading label-warning" id="warnings">
<span data-role="expander" class="pull-right expander"> + </span> <span data-role="expander" class="pull-right expander"> + </span>
Warnings ( {{lastResult.count.warning}} ) Warnings ( {{mainResult.count.warning}} )
</div> </div>
<div class="task-warning tasks-list collapse clearfix"> <div class="task-warning tasks-list collapse clearfix">
<ul class="list-unstyled"> <ul class="list-unstyled">
{{#lastResult.warnings}} {{#mainResult.warnings}}
<li> <li>
<p class="crunch rule-name">{{type}} : {{code}} <span class="badge">{{count}}</span></p> <p class="crunch rule-name">{{type}} : {{code}} <span class="badge">{{count}}</span></p>
<p>{{message}}</p> <p>{{message}}</p>
</li> </li>
{{/lastResult.warnings}} {{/mainResult.warnings}}
</ul> </ul>
<a class="pull-right" href="#top" data-role="top">Back to top</a> <a class="pull-right" href="#top" data-role="top">Back to top</a>
</div> </div>
@@ -146,19 +145,19 @@
<p class="heading label-warning" id="warnings">Well done! You have 0 warnings. <span class="glyphicon glyphicon-ok pull-right"></span></p> <p class="heading label-warning" id="warnings">Well done! You have 0 warnings. <span class="glyphicon glyphicon-ok pull-right"></span></p>
{{/if}} {{/if}}
{{#if lastResult.count.notice}} {{#if mainResult.count.notice}}
<div class="heading label-info" id="notices"> <div class="heading label-info" id="notices">
<span data-role="expander" class="pull-right expander"> + </span> <span data-role="expander" class="pull-right expander"> + </span>
Notices ( {{lastResult.count.notice}} ) Notices ( {{mainResult.count.notice}} )
</div> </div>
<div class="task-info tasks-list collapse clearfix"> <div class="task-info tasks-list collapse clearfix">
<ul class="list-unstyled"> <ul class="list-unstyled">
{{#lastResult.notices}} {{#mainResult.notices}}
<li> <li>
<p class="crunch rule-name">{{type}} : {{code}} <span class="badge">{{count}}</span></p> <p class="crunch rule-name">{{type}} : {{code}} <span class="badge">{{count}}</span></p>
<p>{{message}}</p> <p>{{message}}</p>
</li> </li>
{{/lastResult.notices}} {{/mainResult.notices}}
</ul> </ul>
<a class="pull-right" href="#top" data-role="top">Back to top</a> <a class="pull-right" href="#top" data-role="top">Back to top</a>
</div> </div>