mirror of
https://github.com/pa11y/pa11y-dashboard.git
synced 2025-09-25 14:51:28 +00:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ce9219c01e | ||
![]() |
28a0a861f3 | ||
![]() |
acba762a66 | ||
![]() |
9b80bfa6ab | ||
![]() |
926cb5af3b | ||
![]() |
503ed16265 | ||
![]() |
6d0c6e821b | ||
![]() |
cc5b3f19e5 | ||
![]() |
11e64e27c4 | ||
![]() |
ff4a9fa7b0 | ||
![]() |
5bc32fc68e | ||
![]() |
c2fbcf4fa1 | ||
![]() |
f60d1ca0ce |
16
CHANGELOG.md
16
CHANGELOG.md
@@ -1,6 +1,22 @@
|
|||||||
|
|
||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2.2.0 (2017-01-27)
|
||||||
|
|
||||||
|
* Add support for Pa11y actions
|
||||||
|
* Update dependencies
|
||||||
|
* pa11y-webservice: ~2.1.2 to ^2.3.0
|
||||||
|
|
||||||
|
## 2.1.2 (2016-12-12)
|
||||||
|
|
||||||
|
* Hide the "add" button in readonly mode
|
||||||
|
* Add a contributing guide
|
||||||
|
|
||||||
|
## 2.1.1 (2016-11-20)
|
||||||
|
|
||||||
|
* Use arrows instead of plus and minus for collapsibles/expanders
|
||||||
|
* Supply more detailed 500 messages
|
||||||
|
|
||||||
## 2.1.0 (2016-11-07)
|
## 2.1.0 (2016-11-07)
|
||||||
|
|
||||||
* Allow for configuration files to be JavaScript rather than JSON
|
* Allow for configuration files to be JavaScript rather than JSON
|
||||||
|
21
CONTRIBUTING.md
Normal file
21
CONTRIBUTING.md
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
|
||||||
|
Contributing Guide
|
||||||
|
==================
|
||||||
|
|
||||||
|
Thanks for getting involved :tada:
|
||||||
|
|
||||||
|
The Pa11y team loves to see new contributors, and we strive to provide a welcoming and inclusive environment. We ask that all contributors read and follow [our code of conduct][code-of-conduct] before joining. If you represent an organisation, then you might find our [guide for companies][companies] helpful.
|
||||||
|
|
||||||
|
Our website outlines the many ways that you can contribute to Pa11y:
|
||||||
|
|
||||||
|
- [Help us to talk to our users][communications]
|
||||||
|
- [Help us out with design][designers]
|
||||||
|
- [Help us with our code][developers]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
[code-of-conduct]: http://pa11y.org/contributing/code-of-conduct/
|
||||||
|
[communications]: http://pa11y.org/contributing/communications/
|
||||||
|
[companies]: http://pa11y.org/contributing/companies/
|
||||||
|
[designers]: http://pa11y.org/contributing/designers/
|
||||||
|
[developers]: http://pa11y.org/contributing/developers/
|
18
README.md
18
README.md
@@ -22,7 +22,7 @@ Pa11y Dashboard is a web interface to the [Pa11y][pa11y] accessibility reporter;
|
|||||||
Setup
|
Setup
|
||||||
-----
|
-----
|
||||||
|
|
||||||
Pa11y Dashboard requires [Node.js][node] 4+ and [PhantomJS][phantom]. See the [Pa11y][pa11y] documentation for detailed instructions on how to install these dependencies on your operating system.
|
Pa11y Dashboard requires [Node.js][node] 4+. See the [Pa11y][pa11y] documentation for detailed instructions on how to install this on your operating system.
|
||||||
|
|
||||||
You'll also need to have [MongoDB][mongo] installed and running. See the [MongoDB install guide][mongo-install] for more information on this.
|
You'll also need to have [MongoDB][mongo] installed and running. See the [MongoDB install guide][mongo-install] for more information on this.
|
||||||
|
|
||||||
@@ -82,10 +82,12 @@ The boot configurations for Pa11y Dashboard are as follows. Look at the sample J
|
|||||||
This can either be an object containing [Pa11y Webservice configurations][pa11y-webservice-config], or a string which is the base URL of a [Pa11y Webservice][pa11y-webservice] instance you are running separately. If using environment variables, prefix the webservice vars with `WEBSERVICE_`.
|
This can either be an object containing [Pa11y Webservice configurations][pa11y-webservice-config], or a string which is the base URL of a [Pa11y Webservice][pa11y-webservice] instance you are running separately. If using environment variables, prefix the webservice vars with `WEBSERVICE_`.
|
||||||
|
|
||||||
|
|
||||||
Development
|
Contributing
|
||||||
-----------
|
------------
|
||||||
|
|
||||||
To develop Pa11y Dashboard, you'll need to clone the repo and get set up as outlined in the [setup guide](#setup).
|
There are many ways to contribute to Pa11y Dashboard, we cover these in the [contributing guide](CONTRIBUTING.md) for this repo.
|
||||||
|
|
||||||
|
If you're ready to contribute some code, you'll need to clone the repo and get set up as outlined in the [setup guide](#setup).
|
||||||
|
|
||||||
You'll need to start the application in test mode with:
|
You'll need to start the application in test mode with:
|
||||||
|
|
||||||
@@ -126,7 +128,7 @@ We also maintain a [migration guide](MIGRATION.md) to help you migrate.
|
|||||||
| :grey_question: | Major Version | Last Minor Release | Node.js Versions | Support End Date |
|
| :grey_question: | Major Version | Last Minor Release | Node.js Versions | Support End Date |
|
||||||
| :-------------- | :------------ | :----------------- | :--------------- | :--------------- |
|
| :-------------- | :------------ | :----------------- | :--------------- | :--------------- |
|
||||||
| :heart: | 2 | N/A | 4+ | N/A |
|
| :heart: | 2 | N/A | 4+ | N/A |
|
||||||
| :hourglass: | 1 | 1.12 | 0.10–6 | 2016-12-05 |
|
| :skull: | 1 | 1.12 | 0.10–6 | 2016-12-05 |
|
||||||
|
|
||||||
If you're opening issues related to these, please mention the version that the issue relates to.
|
If you're opening issues related to these, please mention the version that the issue relates to.
|
||||||
|
|
||||||
@@ -134,8 +136,8 @@ If you're opening issues related to these, please mention the version that the i
|
|||||||
License
|
License
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Pa11y Dashboard is licensed under the [GNU General Public License 3.0][info-license].
|
Pa11y Dashboard is licensed under the [GNU General Public License 3.0][info-license].<br/>
|
||||||
Copyright © 2013–2016, Springer Nature
|
Copyright © 2013–2017, Team Pa11y
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -157,5 +159,5 @@ Copyright © 2013–2016, Springer Nature
|
|||||||
[info-build]: https://travis-ci.org/pa11y/dashboard
|
[info-build]: https://travis-ci.org/pa11y/dashboard
|
||||||
[shield-license]: https://img.shields.io/badge/license-GPL%203.0-blue.svg
|
[shield-license]: https://img.shields.io/badge/license-GPL%203.0-blue.svg
|
||||||
[shield-node]: https://img.shields.io/badge/node.js%20support-4–6-brightgreen.svg
|
[shield-node]: https://img.shields.io/badge/node.js%20support-4–6-brightgreen.svg
|
||||||
[shield-version]: https://img.shields.io/badge/version-2.1.0-blue.svg
|
[shield-version]: https://img.shields.io/badge/version-2.2.0-blue.svg
|
||||||
[shield-build]: https://img.shields.io/travis/pa11y/dashboard/master.svg
|
[shield-build]: https://img.shields.io/travis/pa11y/dashboard/master.svg
|
||||||
|
101
package.json
101
package.json
@@ -1,52 +1,53 @@
|
|||||||
{
|
{
|
||||||
"name": "pa11y-dashboard",
|
"name": "pa11y-dashboard",
|
||||||
"version": "2.1.0",
|
"version": "2.2.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
"description": "Pa11y Dashboard is a visual web interface to the Pa11y accessibility reporter",
|
||||||
"description": "Pa11y Dashboard is a visual web interface to the Pa11y accessibility reporter",
|
"keywords": [
|
||||||
"keywords": [ "accessibility", "analysis", "report" ],
|
"accessibility",
|
||||||
"contributors": [
|
"analysis",
|
||||||
"Perry Harlock (http://www.phwebs.co.uk/)",
|
"report"
|
||||||
"Rowan Manning (http://rowanmanning.com/)"
|
],
|
||||||
],
|
"author": "Team Pa11y",
|
||||||
|
"contributors": [
|
||||||
"repository": {
|
"Perry Harlock (http://www.phwebs.co.uk/)",
|
||||||
"type": "git",
|
"Rowan Manning (http://rowanmanning.com/)"
|
||||||
"url": "https://github.com/pa11y/dashboard.git"
|
],
|
||||||
},
|
"repository": {
|
||||||
"homepage": "https://github.com/pa11y/dashboard",
|
"type": "git",
|
||||||
"bugs": "https://github.com/pa11y/dashboard/issues",
|
"url": "https://github.com/pa11y/dashboard.git"
|
||||||
"license": "GPL-3.0",
|
},
|
||||||
|
"homepage": "https://github.com/pa11y/dashboard",
|
||||||
"engines": {
|
"bugs": "https://github.com/pa11y/dashboard/issues",
|
||||||
"node": ">=4"
|
"license": "GPL-3.0",
|
||||||
},
|
"engines": {
|
||||||
"dependencies": {
|
"node": ">=4"
|
||||||
"body-parser": "~1.15",
|
},
|
||||||
"chalk": "~1.1",
|
"dependencies": {
|
||||||
"compression": "~1.6",
|
"body-parser": "~1.15",
|
||||||
"express": "~4.14",
|
"chalk": "~1.1",
|
||||||
"express-hbs": "~1.0",
|
"compression": "~1.6",
|
||||||
"http-headers": "^3.0.1",
|
"express": "~4.14",
|
||||||
"moment": "~2.13",
|
"express-hbs": "~1.0",
|
||||||
"pa11y-webservice": "^2.1.2",
|
"http-headers": "^3.0.1",
|
||||||
"pa11y-webservice-client-node": "^1.2.1",
|
"moment": "~2.13",
|
||||||
"underscore": "~1.8"
|
"pa11y-webservice": "^2.3.0",
|
||||||
},
|
"pa11y-webservice-client-node": "^1.2.1",
|
||||||
"devDependencies": {
|
"underscore": "~1.8"
|
||||||
"bower": "~1.7",
|
},
|
||||||
"cheerio": "~0.20",
|
"devDependencies": {
|
||||||
"jscs": "^2",
|
"bower": "~1.7",
|
||||||
"jshint": "^2",
|
"cheerio": "~0.20",
|
||||||
"less": "~2.7",
|
"jscs": "^2",
|
||||||
"mocha": "^2",
|
"jshint": "^2",
|
||||||
"proclaim": "^3",
|
"less": "~2.7",
|
||||||
"request": "^2.74",
|
"mocha": "^2",
|
||||||
"uglify-js": "~2.6"
|
"proclaim": "^3",
|
||||||
},
|
"request": "^2.74",
|
||||||
|
"uglify-js": "~2.6"
|
||||||
"scripts": {
|
},
|
||||||
"start": "node index.js",
|
"scripts": {
|
||||||
"test": "make ci"
|
"start": "node index.js",
|
||||||
}
|
"test": "make ci"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -77,11 +77,11 @@ $(document).ready(function(){
|
|||||||
expandLink.click( function(){
|
expandLink.click( function(){
|
||||||
$(this).next().slideToggle('slow', function(){});
|
$(this).next().slideToggle('slow', function(){});
|
||||||
if ($(this).hasClass('showing')) {
|
if ($(this).hasClass('showing')) {
|
||||||
$(this).find('span.expander').html('+');
|
$(this).find('span.expander').html('↓');
|
||||||
$(this).attr('aria-expanded', false);
|
$(this).attr('aria-expanded', false);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$(this).find('span.expander').html('-');
|
$(this).find('span.expander').html('↑');
|
||||||
$(this).attr('aria-expanded', true);
|
$(this).attr('aria-expanded', true);
|
||||||
}
|
}
|
||||||
$(this).toggleClass('showing');
|
$(this).toggleClass('showing');
|
||||||
|
2
public/js/site.min.js
vendored
2
public/js/site.min.js
vendored
File diff suppressed because one or more lines are too long
15
route/new.js
15
route/new.js
@@ -40,11 +40,21 @@ function route(app) {
|
|||||||
|
|
||||||
app.express.post('/new', (req, res) => {
|
app.express.post('/new', (req, res) => {
|
||||||
|
|
||||||
|
let parsedActions;
|
||||||
|
if (req.body.actions) {
|
||||||
|
parsedActions = req.body.actions.split(/[\r\n]+/)
|
||||||
|
.map(action => {
|
||||||
|
return action.trim();
|
||||||
|
})
|
||||||
|
.filter(action => {
|
||||||
|
return Boolean(action);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
let parsedHeaders;
|
let parsedHeaders;
|
||||||
if (req.body.headers) {
|
if (req.body.headers) {
|
||||||
parsedHeaders = httpHeaders(req.body.headers, true);
|
parsedHeaders = httpHeaders(req.body.headers, true);
|
||||||
}
|
}
|
||||||
console.log(parsedHeaders);
|
|
||||||
|
|
||||||
const newTask = {
|
const newTask = {
|
||||||
name: req.body.name,
|
name: req.body.name,
|
||||||
@@ -53,6 +63,7 @@ function route(app) {
|
|||||||
ignore: req.body.ignore || [],
|
ignore: req.body.ignore || [],
|
||||||
timeout: req.body.timeout || undefined,
|
timeout: req.body.timeout || undefined,
|
||||||
wait: req.body.wait || undefined,
|
wait: req.body.wait || undefined,
|
||||||
|
actions: parsedActions,
|
||||||
username: req.body.username || undefined,
|
username: req.body.username || undefined,
|
||||||
password: req.body.password || undefined,
|
password: req.body.password || undefined,
|
||||||
headers: parsedHeaders,
|
headers: parsedHeaders,
|
||||||
@@ -73,6 +84,8 @@ function route(app) {
|
|||||||
});
|
});
|
||||||
return standard;
|
return standard;
|
||||||
});
|
});
|
||||||
|
newTask.actions = req.body.actions;
|
||||||
|
newTask.headers = req.body.headers;
|
||||||
return res.render('new', {
|
return res.render('new', {
|
||||||
error: err,
|
error: err,
|
||||||
standards: standards,
|
standards: standards,
|
||||||
|
@@ -43,6 +43,7 @@ function route(app) {
|
|||||||
});
|
});
|
||||||
return standard;
|
return standard;
|
||||||
});
|
});
|
||||||
|
task.actions = (task.actions ? task.actions.join('\n') : '');
|
||||||
res.render('task/edit', {
|
res.render('task/edit', {
|
||||||
edited: (typeof req.query.edited !== 'undefined'),
|
edited: (typeof req.query.edited !== 'undefined'),
|
||||||
standards: standards,
|
standards: standards,
|
||||||
@@ -57,10 +58,20 @@ function route(app) {
|
|||||||
if (err) {
|
if (err) {
|
||||||
return next();
|
return next();
|
||||||
}
|
}
|
||||||
|
const originalActions = req.body.actions;
|
||||||
const originalHeaders = req.body.headers;
|
const originalHeaders = req.body.headers;
|
||||||
req.body.ignore = req.body.ignore || [];
|
req.body.ignore = req.body.ignore || [];
|
||||||
req.body.timeout = req.body.timeout || undefined;
|
req.body.timeout = req.body.timeout || undefined;
|
||||||
req.body.wait = req.body.wait || undefined;
|
req.body.wait = req.body.wait || undefined;
|
||||||
|
if (req.body.actions) {
|
||||||
|
req.body.actions = req.body.actions.split(/[\r\n]+/)
|
||||||
|
.map(action => {
|
||||||
|
return action.trim();
|
||||||
|
})
|
||||||
|
.filter(action => {
|
||||||
|
return Boolean(action);
|
||||||
|
});
|
||||||
|
}
|
||||||
req.body.username = req.body.username || undefined;
|
req.body.username = req.body.username || undefined;
|
||||||
req.body.password = req.body.password || undefined;
|
req.body.password = req.body.password || undefined;
|
||||||
req.body.hideElements = req.body.hideElements || undefined;
|
req.body.hideElements = req.body.hideElements || undefined;
|
||||||
@@ -71,6 +82,7 @@ function route(app) {
|
|||||||
task.ignore = req.body.ignore;
|
task.ignore = req.body.ignore;
|
||||||
task.timeout = req.body.timeout;
|
task.timeout = req.body.timeout;
|
||||||
task.wait = req.body.wait;
|
task.wait = req.body.wait;
|
||||||
|
task.actions = originalActions;
|
||||||
task.username = req.body.username;
|
task.username = req.body.username;
|
||||||
task.password = req.body.password;
|
task.password = req.body.password;
|
||||||
task.headers = originalHeaders;
|
task.headers = originalHeaders;
|
||||||
|
@@ -70,6 +70,11 @@ describe('GET /new', function() {
|
|||||||
assert.strictEqual(field.attr('value'), '');
|
assert.strictEqual(field.attr('value'), '');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should have an "actions" field', function() {
|
||||||
|
const field = this.form.find('textarea[name=actions]').eq(0);
|
||||||
|
assert.isDefined(field);
|
||||||
|
});
|
||||||
|
|
||||||
it('should have a "username" field', function() {
|
it('should have a "username" field', function() {
|
||||||
const field = this.form.find('input[name=username]').eq(0);
|
const field = this.form.find('input[name=username]').eq(0);
|
||||||
assert.isDefined(field);
|
assert.isDefined(field);
|
||||||
|
@@ -71,6 +71,11 @@ describe('GET /<task-id>/edit', function() {
|
|||||||
assert.strictEqual(field.attr('value'), '0');
|
assert.strictEqual(field.attr('value'), '0');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should have an "actions" field', function() {
|
||||||
|
const field = this.form.find('textarea[name=actions]').eq(0);
|
||||||
|
assert.isDefined(field);
|
||||||
|
});
|
||||||
|
|
||||||
it('should have a disabled "standard" field', function() {
|
it('should have a disabled "standard" field', function() {
|
||||||
const field = this.form.find('select[name=standard]').eq(0);
|
const field = this.form.find('select[name=standard]').eq(0);
|
||||||
assert.isDefined(field);
|
assert.isDefined(field);
|
||||||
|
@@ -15,9 +15,13 @@ You should have received a copy of the GNU General Public License
|
|||||||
along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
||||||
}}
|
}}
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
<h1>Eeek! 500 error. This is serious.</h1>
|
<h1>Eeek! 500 error.</h1>
|
||||||
<p class="h2">There isn't much you can do about this.</h2>
|
<p class="h2">Let's see what we can do here:</h2>
|
||||||
<p class="h4">Give it another go or try the <a href="/">home page</a>.</h4>
|
<ul>
|
||||||
|
<li>Do you have <a href="https://www.mongodb.com/">MongoDB</a> installed and <code>mongod</code> running?</li>
|
||||||
|
<li>Check out the <a href="https://github.com/pa11y/dashboard/blob/master/TROUBLESHOOTING.md">Troubleshooting doc</a> for more information.</li>
|
||||||
|
<li>Search for a related <a href="https://github.com/pa11y/dashboard/issues">Github issue</a>, or open one yourself.</li>
|
||||||
|
</ul>
|
||||||
{{#if error}}
|
{{#if error}}
|
||||||
<h2>Stack-Trace</h2>
|
<h2>Stack-Trace</h2>
|
||||||
<pre>{{error.stack}}</pre>
|
<pre>{{error.stack}}</pre>
|
||||||
|
@@ -84,6 +84,19 @@ along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group clearfix">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4 col-sm-4 col-xs-6">
|
||||||
|
<label class="control-label" for="new-task-actions">
|
||||||
|
Task Actions
|
||||||
|
(<a href="https://github.com/pa11y/pa11y#actions">see Pa11y documentation</a>)
|
||||||
|
</label>
|
||||||
|
<textarea class="form-control" id="new-task-actions" name="actions" aria-describedby="action-detail" placeholder="E.g. Click element #login-button">{{task.actions}}</textarea>
|
||||||
|
<em id="action-detail">(one action per line)</em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-group clearfix">
|
<div class="form-group clearfix">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4 col-sm-4 col-xs-6">
|
<div class="col-md-4 col-sm-4 col-xs-6">
|
||||||
|
@@ -18,7 +18,7 @@ along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
<div class="footer" role="contentinfo">
|
<div class="footer" role="contentinfo">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="col-md-5">
|
<div class="col-md-5">
|
||||||
<small>© {{year}} Springer Nature.<br/>Pa11y Dashboard is licensed under the GNU General Public License 3.0.<br/>Version {{version}}</small>
|
<small>© 2013–{{year}} Team Pa11y.<br/>Pa11y Dashboard is licensed under the GNU General Public License 3.0.<br/>Version {{version}}</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-7 clearfix">
|
<div class="col-md-7 clearfix">
|
||||||
<ul class="crunch-bottom floated-list nav">
|
<ul class="crunch-bottom floated-list nav">
|
||||||
|
@@ -73,7 +73,7 @@ along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
<div class="col-md-9" data-role="expandable-results" role="main">
|
<div class="col-md-9" data-role="expandable-results" role="main">
|
||||||
{{#if mainResult.count.error}}
|
{{#if mainResult.count.error}}
|
||||||
<div class="heading label-danger pointer showing first" id="errors" data-test="task-errors" data-role="expander" role="button" tabindex="0" aria-expanded="true" aria-controls="errors-list">
|
<div class="heading label-danger pointer showing first" id="errors" data-test="task-errors" data-role="expander" role="button" tabindex="0" aria-expanded="true" aria-controls="errors-list">
|
||||||
<span class="pull-right expander"> - <span class="hide">(close panel)</span></span>
|
<span class="pull-right expander"> ↑ <span class="hide">(close panel)</span></span>
|
||||||
Errors ( {{mainResult.count.error}} )
|
Errors ( {{mainResult.count.error}} )
|
||||||
</div>
|
</div>
|
||||||
<div class="task-danger tasks-list collapse clearfix in" id="errors-list">
|
<div class="task-danger tasks-list collapse clearfix in" id="errors-list">
|
||||||
@@ -109,7 +109,7 @@ along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
{{#if mainResult.count.warning}}
|
{{#if mainResult.count.warning}}
|
||||||
<div class="heading label-warning pointer" id="warnings" data-test="task-warnings" data-role="expander" role="button" tabindex="0" aria-expanded="false" aria-controls="warnings-list">
|
<div class="heading label-warning pointer" id="warnings" data-test="task-warnings" data-role="expander" role="button" tabindex="0" aria-expanded="false" aria-controls="warnings-list">
|
||||||
<span class="pull-right expander"> + <span class="hide">(open panel)</span></span>
|
<span class="pull-right expander"> ↓ <span class="hide">(open panel)</span></span>
|
||||||
Warnings ( {{mainResult.count.warning}} )
|
Warnings ( {{mainResult.count.warning}} )
|
||||||
</div>
|
</div>
|
||||||
<div class="task-warning tasks-list collapse clearfix" id="warnings-list">
|
<div class="task-warning tasks-list collapse clearfix" id="warnings-list">
|
||||||
@@ -145,7 +145,7 @@ along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
{{#if mainResult.count.notice}}
|
{{#if mainResult.count.notice}}
|
||||||
<div class="heading label-info pointer" id="notices" data-test="task-notices" data-role="expander" role="button" tabindex="0" aria-expanded="false" aria-controls="notices-list">
|
<div class="heading label-info pointer" id="notices" data-test="task-notices" data-role="expander" role="button" tabindex="0" aria-expanded="false" aria-controls="notices-list">
|
||||||
<span class="pull-right expander"> + <span class="hide">(open panel)</span></span>
|
<span class="pull-right expander"> ↓ <span class="hide">(open panel)</span></span>
|
||||||
Notices ( {{mainResult.count.notice}} )
|
Notices ( {{mainResult.count.notice}} )
|
||||||
</div>
|
</div>
|
||||||
<div class="task-info tasks-list collapse clearfix" id="notices-list">
|
<div class="task-info tasks-list collapse clearfix" id="notices-list">
|
||||||
@@ -180,7 +180,7 @@ along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
{{#if mainResult.ignore.length}}
|
{{#if mainResult.ignore.length}}
|
||||||
<div class="heading label-default pointer" id="ignore" data-role="expander" role="button" tabindex="0" aria-expanded="false" aria-controls="ignore-list">
|
<div class="heading label-default pointer" id="ignore" data-role="expander" role="button" tabindex="0" aria-expanded="false" aria-controls="ignore-list">
|
||||||
<span class="pull-right expander"> + <span class="hide">(open panel)</span></span>
|
<span class="pull-right expander"> ↓ <span class="hide">(open panel)</span></span>
|
||||||
Ignored Rules ( {{mainResult.ignore.length}} )
|
Ignored Rules ( {{mainResult.ignore.length}} )
|
||||||
</div>
|
</div>
|
||||||
<div class="task-default tasks-list collapse clearfix" id="ignore-list">
|
<div class="task-default tasks-list collapse clearfix" id="ignore-list">
|
||||||
|
@@ -16,19 +16,15 @@ along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
}}
|
}}
|
||||||
|
|
||||||
<ul class="list-unstyled clearfix crunch-bottom">
|
<ul class="list-unstyled clearfix crunch-bottom">
|
||||||
<li class="col-md-4 col-sm-6 task-card add-task">
|
|
||||||
{{#if readonly}}
|
{{#unless readonly}}
|
||||||
<span class="well task-card-link crunch-bottom">
|
<li class="col-md-4 col-sm-6 task-card add-task">
|
||||||
<p class="h3 crunch">Add new URL</p>
|
|
||||||
<p class="supersize-me crunch">+</p>
|
|
||||||
</span>
|
|
||||||
{{else}}
|
|
||||||
<a class="well task-card-link crunch-bottom" data-role="add-task" href="/new" data-test="add-task">
|
<a class="well task-card-link crunch-bottom" data-role="add-task" href="/new" data-test="add-task">
|
||||||
<p class="h3 crunch">Add new URL</p>
|
<p class="h3 crunch">Add new URL</p>
|
||||||
<p class="supersize-me crunch">+</p>
|
<p class="supersize-me crunch">+</p>
|
||||||
</a>
|
</a>
|
||||||
{{/if}}
|
</li>
|
||||||
</li>
|
{{/unless}}
|
||||||
{{#each tasks}}
|
{{#each tasks}}
|
||||||
<li class="col-md-4 col-sm-6 task-card" data-test="task" data-role="task" data-keywords="{{lowercase name}} {{lowercase standard}} {{simplify-url url}}">
|
<li class="col-md-4 col-sm-6 task-card" data-test="task" data-role="task" data-keywords="{{lowercase name}} {{lowercase standard}} {{simplify-url url}}">
|
||||||
<a class="well task-card-link crunch-bottom" title="Details for URL {{simplify-url url}}" href="{{href}}">
|
<a class="well task-card-link crunch-bottom" title="Details for URL {{simplify-url url}}" href="{{href}}">
|
||||||
@@ -49,14 +45,14 @@ along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
</a>
|
</a>
|
||||||
{{#unless ../readonly}}
|
{{#unless ../readonly}}
|
||||||
<div class="btn-group options-button text-right">
|
<div class="btn-group options-button text-right">
|
||||||
<button type="button" class="btn btn-info btn-xs dropdown-toggle" data-toggle="dropdown"><span class="sr-only">Options</span><span class="glyphicon glyphicon-cog"></span></button>
|
<button type="button" class="btn btn-info btn-xs dropdown-toggle" data-toggle="dropdown"><span class="sr-only">Options</span><span class="glyphicon glyphicon-cog"></span></button>
|
||||||
<ul class="dropdown-menu pull-right" role="menu">
|
<ul class="dropdown-menu pull-right" role="menu">
|
||||||
<li><a href="{{href}}/edit">Edit this task</a></li>
|
<li><a href="{{href}}/edit">Edit this task</a></li>
|
||||||
<li><a href="{{href}}/delete">Delete this task</a></li>
|
<li><a href="{{href}}/delete">Delete this task</a></li>
|
||||||
<li class="divider"></li>
|
<li class="divider"></li>
|
||||||
<li><a href="{{href}}/run" data-test="run-task">Run Pa11y</a></li>
|
<li><a href="{{href}}/run" data-test="run-task">Run Pa11y</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
{{/unless}}
|
{{/unless}}
|
||||||
</li>
|
</li>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
@@ -96,6 +96,19 @@ along with Pa11y Dashboard. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="form-group clearfix">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-4 col-sm-4 col-xs-6">
|
||||||
|
<label class="control-label" for="new-task-actions">
|
||||||
|
Task Actions
|
||||||
|
(<a href="https://github.com/pa11y/pa11y#actions">see Pa11y documentation</a>)
|
||||||
|
</label>
|
||||||
|
<textarea class="form-control" id="new-task-actions" name="actions" aria-describedby="action-detail" placeholder="E.g. Click element #login-button">{{task.actions}}</textarea>
|
||||||
|
<em id="action-detail">(one action per line)</em>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="form-group clearfix">
|
<div class="form-group clearfix">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-4 col-sm-4 col-xs-6">
|
<div class="col-md-4 col-sm-4 col-xs-6">
|
||||||
|
Reference in New Issue
Block a user