diff --git a/app.js b/app.js index 0cfe613..3f26e7e 100644 --- a/app.js +++ b/app.js @@ -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 diff --git a/route/task/index.js b/route/task/index.js index 076f688..21d920c 100644 --- a/route/task/index.js +++ b/route/task/index.js @@ -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 }); diff --git a/route/task/unignore.js b/route/task/unignore.js new file mode 100644 index 0000000..aedd497 --- /dev/null +++ b/route/task/unignore.js @@ -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'); + }); + }); + }); + +} diff --git a/view/partial/result.html b/view/partial/result.html index 0285763..861fc6a 100644 --- a/view/partial/result.html +++ b/view/partial/result.html @@ -49,7 +49,7 @@

{{message}}

{{#unless readonly}} {{#if ../../isTaskPage}} -
+
@@ -77,7 +77,7 @@

{{message}}

{{#unless readonly}} {{#if ../../isTaskPage}} -
+
@@ -106,7 +106,7 @@

{{message}}

{{#unless readonly}} {{#if ../../isTaskPage}} -
+
@@ -134,6 +134,14 @@ {{#if description}}

{{description}}

{{/if}} + {{#unless readonly}} + {{#if ../../isTaskPage}} +
+ + +
+ {{/if}} + {{/unless}} {{/mainResult.ignore}} diff --git a/view/presenter/task.js b/view/presenter/task.js index 3915558..9749dfa 100644 --- a/view/presenter/task.js +++ b/view/presenter/task.js @@ -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); diff --git a/view/task/index.html b/view/task/index.html index 2da4336..0bc9abe 100644 --- a/view/task/index.html +++ b/view/task/index.html @@ -39,6 +39,19 @@ {{/ruleIgnored}} +{{#ruleUnignored}} +
+
+ + Rule unignored! +

+ You've removed an ignored accessibility rule for this URL. + Click here to generate results with the ignored rule included again +

+
+
+{{/ruleUnignored}} + {{> task-header}} {{#if results}}