Add "unigore" buttons to ignored rules

This commit is contained in:
Rowan Manning
2014-01-10 15:46:30 +00:00
parent dfac541294
commit 02e22eb094
6 changed files with 59 additions and 3 deletions

1
app.js
View File

@@ -80,6 +80,7 @@ function initApp (config, callback) {
require('./route/task/run')(app);
require('./route/task/edit')(app);
require('./route/task/ignore')(app);
require('./route/task/unignore')(app);
}
// Error handling

View File

@@ -26,6 +26,7 @@ function route (app) {
added: (typeof req.query.added !== 'undefined'),
running: (typeof req.query.running !== 'undefined'),
ruleIgnored: (typeof req.query['rule-ignored'] !== 'undefined'),
ruleUnignored: (typeof req.query['rule-unignored'] !== 'undefined'),
hasOneResult: (presentedResults.length < 2),
isTaskPage: true
});

31
route/task/unignore.js Normal file
View File

@@ -0,0 +1,31 @@
'use strict';
var _ = require('underscore');
var presentTask = require('../../view/presenter/task');
var getStandards = require('../../data/standards');
module.exports = route;
// Route definition
function route (app) {
app.express.post('/:id/unignore', function (req, res, next) {
app.webservice.task(req.params.id).get({}, function (err, task) {
if (err) {
return next();
}
var edit = {
name: task.name,
ignore: task.ignore
};
var indexOfRule = edit.ignore.indexOf(req.body.rule);
if (typeof req.body.rule === 'string' && indexOfRule !== -1) {
edit.ignore.splice(indexOfRule, 1);
}
app.webservice.task(req.params.id).edit(edit, function () {
res.redirect('/' + req.params.id + '?rule-unignored');
});
});
});
}

View File

@@ -49,7 +49,7 @@
<p>{{message}}</p>
{{#unless readonly}}
{{#if ../../isTaskPage}}
<form action="/{{../../../task.id}}/ignore" method="post">
<form action="{{../../../task.hrefIgnore}}" method="post">
<input type="hidden" name="rule" value="{{code}}"/>
<input type="submit" class="btn btn-sm" value="Ignore rule"/>
</form>
@@ -77,7 +77,7 @@
<p>{{message}}</p>
{{#unless readonly}}
{{#if ../../isTaskPage}}
<form action="/{{../../../task.id}}/ignore" method="post">
<form action="{{../../../task.hrefIgnore}}" method="post">
<input type="hidden" name="rule" value="{{code}}"/>
<input type="submit" class="btn btn-sm" value="Ignore rule"/>
</form>
@@ -106,7 +106,7 @@
<p>{{message}}</p>
{{#unless readonly}}
{{#if ../../isTaskPage}}
<form action="/{{../../../task.id}}/ignore" method="post">
<form action="{{../../../task.hrefIgnore}}" method="post">
<input type="hidden" name="rule" value="{{code}}"/>
<input type="submit" class="btn btn-sm" value="Ignore rule"/>
</form>
@@ -134,6 +134,14 @@
{{#if description}}
<p>{{description}}</p>
{{/if}}
{{#unless readonly}}
{{#if ../../isTaskPage}}
<form action="{{../../../task.hrefUnignore}}" method="post">
<input type="hidden" name="rule" value="{{name}}"/>
<input type="submit" class="btn btn-sm" value="Unignore rule"/>
</form>
{{/if}}
{{/unless}}
</li>
{{/mainResult.ignore}}
</ul>

View File

@@ -14,6 +14,8 @@ function presentTask (task) {
task.hrefRun = '/' + task.id + '/run';
task.hrefJson = '/' + task.id + '.json';
task.hrefEdit = '/' + task.id + '/edit';
task.hrefIgnore = '/' + task.id + '/ignore';
task.hrefUnignore = '/' + task.id + '/unignore';
// Enhance the ignored rules
task.ignore = presentIgnoreRules(task.ignore);

View File

@@ -39,6 +39,19 @@
</div>
{{/ruleIgnored}}
{{#ruleUnignored}}
<div class="col-md-12 clearfix" data-test="alert">
<div class="alert alert-success">
<button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
<strong>Rule unignored!</strong>
<p>
You've removed an ignored accessibility rule for this URL.
<a href="{{task.hrefRun}}">Click here to generate results with the ignored rule included again</a>
</p>
</div>
</div>
{{/ruleUnignored}}
{{> task-header}}
{{#if results}}