mirror of
https://github.com/pa11y/pa11y-dashboard.git
synced 2025-09-25 06:41:21 +00:00
Compare commits
7 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d6bc045d52 | ||
![]() |
780b66128f | ||
![]() |
0b1daf1482 | ||
![]() |
57933c074b | ||
![]() |
977dfa9dd0 | ||
![]() |
a94b1a45ae | ||
![]() |
e830d48074 |
@@ -3,7 +3,7 @@ pa11y-dashboard
|
|||||||
|
|
||||||
pa11y-dashboard is a web interface to the [pa11y][pa11y] accessibility reporter; allowing you to focus on *fixing* issues rather than hunting them down.
|
pa11y-dashboard is a web interface to the [pa11y][pa11y] accessibility reporter; allowing you to focus on *fixing* issues rather than hunting them down.
|
||||||
|
|
||||||
**Current Version:** *1.3.0*
|
**Current Version:** *1.4.0*
|
||||||
**Build Status:** [![Build Status][travis-img]][travis]
|
**Build Status:** [![Build Status][travis-img]][travis]
|
||||||
**Node Version Support:** *0.10*
|
**Node Version Support:** *0.10*
|
||||||
|
|
||||||
|
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "pa11y-dashboard",
|
"name": "pa11y-dashboard",
|
||||||
"version": "1.3.0",
|
"version": "1.4.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",
|
||||||
@@ -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": "~1.3",
|
"pa11y-webservice": "~1.5",
|
||||||
"pa11y-webservice-client-node": "~1.1",
|
"pa11y-webservice-client-node": "~1.1",
|
||||||
"underscore": "~1.5"
|
"underscore": "~1.5"
|
||||||
},
|
},
|
||||||
|
@@ -1,15 +1,15 @@
|
|||||||
// This file is part of pa11y-dashboard.
|
// This file is part of pa11y-dashboard.
|
||||||
//
|
//
|
||||||
// pa11y-dashboard is free software: you can redistribute it and/or modify
|
// pa11y-dashboard is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU General Public License as published by
|
// it under the terms of the GNU General Public License as published by
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
// (at your option) any later version.
|
// (at your option) any later version.
|
||||||
//
|
//
|
||||||
// pa11y-dashboard is distributed in the hope that it will be useful,
|
// pa11y-dashboard is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
//
|
//
|
||||||
// You should have received a copy of the GNU General Public License
|
// 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/>.
|
||||||
|
|
||||||
@@ -40,7 +40,8 @@ function route (app) {
|
|||||||
name: req.body.name,
|
name: req.body.name,
|
||||||
url: req.body.url,
|
url: req.body.url,
|
||||||
standard: req.body.standard,
|
standard: req.body.standard,
|
||||||
ignore: req.body.ignore || []
|
ignore: req.body.ignore || [],
|
||||||
|
timeout: req.body.timeout
|
||||||
};
|
};
|
||||||
app.webservice.tasks.create(newTask, function (err, task) {
|
app.webservice.tasks.create(newTask, function (err, task) {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
@@ -1,15 +1,15 @@
|
|||||||
// This file is part of pa11y-dashboard.
|
// This file is part of pa11y-dashboard.
|
||||||
//
|
//
|
||||||
// pa11y-dashboard is free software: you can redistribute it and/or modify
|
// pa11y-dashboard is free software: you can redistribute it and/or modify
|
||||||
// it under the terms of the GNU General Public License as published by
|
// it under the terms of the GNU General Public License as published by
|
||||||
// the Free Software Foundation, either version 3 of the License, or
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
// (at your option) any later version.
|
// (at your option) any later version.
|
||||||
//
|
//
|
||||||
// pa11y-dashboard is distributed in the hope that it will be useful,
|
// pa11y-dashboard is distributed in the hope that it will be useful,
|
||||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
// GNU General Public License for more details.
|
// GNU General Public License for more details.
|
||||||
//
|
//
|
||||||
// You should have received a copy of the GNU General Public License
|
// 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/>.
|
||||||
|
|
||||||
@@ -60,6 +60,7 @@ function route (app) {
|
|||||||
if (err) {
|
if (err) {
|
||||||
task.name = req.body.name;
|
task.name = req.body.name;
|
||||||
task.ignore = req.body.ignore;
|
task.ignore = req.body.ignore;
|
||||||
|
task.timeout = req.body.timeout;
|
||||||
var standards = getStandards().map(function (standard) {
|
var standards = getStandards().map(function (standard) {
|
||||||
if (standard.title === task.standard) {
|
if (standard.title === task.standard) {
|
||||||
standard.selected = true;
|
standard.selected = true;
|
||||||
|
@@ -16,23 +16,37 @@ along with pa11y-dashboard. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
}}
|
}}
|
||||||
{{#content "title"}}pa11y-dashboard{{/content}}
|
{{#content "title"}}pa11y-dashboard{{/content}}
|
||||||
|
|
||||||
{{#if siteMessage}}
|
<div data-control="task-list">
|
||||||
<div class="col-md-12 clearfix" data-test="alert">
|
|
||||||
<div class="alert alert-info site-message">
|
|
||||||
<h3 class="crunch-top"><span class="pull-left glyphicon glyphicon-exclamation-sign"></span> Important</h3>
|
|
||||||
<p class="h5">{{siteMessage}}</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{{/if}}
|
|
||||||
|
|
||||||
{{#deleted}}
|
<div class="clearfix">
|
||||||
<div class="col-md-12 clearfix" data-test="alert">
|
<div class="col-md-6 col-md-offset-3 filter-toggle no-js-hide text-center">
|
||||||
<div class="alert alert-info">
|
<label for="filter-input" class="filter-trigger" data-toggle="collapse" data-target="#filter-input">Filter<span class="glyphicon glyphicon-filter"></span>
|
||||||
<button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
|
</label>
|
||||||
<strong>Bye Bye URL</strong>
|
<div id="filter-input" class="collapse">
|
||||||
<p>The URL you selected and its associated results have been deleted.</p>
|
<input class="form-control" id="task-filter" type="text" data-role="input" placeholder="Type filter term (name or standard)"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/deleted}}
|
</div>
|
||||||
|
|
||||||
{{> tasks}}
|
{{#if siteMessage}}
|
||||||
|
<div class="col-md-12 clearfix" data-test="alert">
|
||||||
|
<div class="alert alert-info site-message">
|
||||||
|
<h3 class="crunch-top"><span class="pull-left glyphicon glyphicon-exclamation-sign"></span> Important</h3>
|
||||||
|
<p class="h5">{{siteMessage}}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/if}}
|
||||||
|
|
||||||
|
{{#deleted}}
|
||||||
|
<div class="col-md-12 clearfix" data-test="alert">
|
||||||
|
<div class="alert alert-info">
|
||||||
|
<button aria-hidden="true" data-dismiss="alert" class="close" type="button">×</button>
|
||||||
|
<strong>Bye Bye URL</strong>
|
||||||
|
<p>The URL you selected and its associated results have been deleted.</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{/deleted}}
|
||||||
|
|
||||||
|
{{> tasks}}
|
||||||
|
|
||||||
|
</div>
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{{!
|
{{!
|
||||||
This file is part of pa11y-dashboard.
|
This file is part of pa11y-dashboard.
|
||||||
|
|
||||||
pa11y-dashboard is free software: you can redistribute it and/or modify
|
pa11y-dashboard is free software: you can redistribute it and/or modify
|
||||||
@@ -65,6 +65,15 @@ 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-timeout">Timeout (milliseconds)</label>
|
||||||
|
<input class="form-control" id="new-task-timeout" type="text" placeholder="E.g. 30000" name="timeout" value="{{task.timeout}}"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p class="control-label"><b>Ignore these rules</b> <a target="_blank" href="https://github.com/nature/pa11y/wiki/HTML-CodeSniffer-Rules">(full list of rules here)</a></p>
|
<p class="control-label"><b>Ignore these rules</b> <a target="_blank" href="https://github.com/nature/pa11y/wiki/HTML-CodeSniffer-Rules">(full list of rules here)</a></p>
|
||||||
|
|
||||||
<div class="standards-lists">
|
<div class="standards-lists">
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{{!
|
{{!
|
||||||
This file is part of pa11y-dashboard.
|
This file is part of pa11y-dashboard.
|
||||||
|
|
||||||
pa11y-dashboard is free software: you can redistribute it and/or modify
|
pa11y-dashboard is free software: you can redistribute it and/or modify
|
||||||
@@ -15,61 +15,49 @@ 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 data-control="task-list">
|
<ul class="list-unstyled clearfix crunch-bottom">
|
||||||
|
<li class="col-md-4 col-sm-6 task-card add-task">
|
||||||
<div class="col-md-6 col-md-offset-3 filter-toggle no-js-hide text-center">
|
{{#if readonly}}
|
||||||
<label for="filter-input" class="filter-trigger" data-toggle="collapse" data-target="#filter-input">Filter<span class="glyphicon glyphicon-filter"></span>
|
<span class="well task-card-link crunch-bottom">
|
||||||
</label>
|
<p class="h3 crunch">Add new URL</p>
|
||||||
<div id="filter-input" class="collapse">
|
<p class="supersize-me crunch">+</p>
|
||||||
<input class="form-control" id="task-filter" type="text" data-role="input" placeholder="Type filter term (name or standard)"/>
|
</span>
|
||||||
</div>
|
{{else}}
|
||||||
</div>
|
<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>
|
||||||
<ul class="list-unstyled clearfix crunch-bottom">
|
<p class="supersize-me crunch">+</p>
|
||||||
<li class="col-md-4 col-sm-6 task-card add-task">
|
</a>
|
||||||
{{#if readonly}}
|
{{/if}}
|
||||||
<span class="well task-card-link crunch-bottom">
|
</li>
|
||||||
<p class="h3 crunch">Add new URL</p>
|
{{#each tasks}}
|
||||||
<p class="supersize-me crunch">+</p>
|
<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}}">
|
||||||
</span>
|
<a class="well task-card-link crunch-bottom" title="Details for URL {{simplify-url url}}" href="{{href}}">
|
||||||
{{else}}
|
<p class="h3">{{name}}</p>
|
||||||
<a class="well task-card-link crunch-bottom" data-role="add-task" href="/new" data-test="add-task">
|
<p class="h5">({{standard}})</p>
|
||||||
<p class="h3 crunch">Add new URL</p>
|
{{#if lastResult}}
|
||||||
<p class="supersize-me crunch">+</p>
|
<ul class="clearfix list-unstyled floated-list task-stats">
|
||||||
</a>
|
{{#lastResult}}
|
||||||
{{/if}}
|
<li class="danger" title="Number of errors ({{count.error}})">{{count.error}}<span class="stat-type">Errors</span></li>
|
||||||
|
<li class="warning" title="Number of warnings ({{count.warning}})">{{count.warning}}<span class="stat-type">Warnings</span></li>
|
||||||
|
<li class="info last" title="Number of notices ({{count.notice}})">{{count.notice}}<span class="stat-type">Notices</span></li>
|
||||||
|
{{/lastResult}}
|
||||||
|
</ul>
|
||||||
|
Last run {{date-format lastResult.date format="DD MMM YYYY"}}
|
||||||
|
{{else}}
|
||||||
|
<p class="no-results">No results</p>
|
||||||
|
{{/if}}
|
||||||
|
</a>
|
||||||
|
{{#unless ../readonly}}
|
||||||
|
<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>
|
||||||
|
<ul class="dropdown-menu pull-right" role="menu">
|
||||||
|
<li><a href="{{href}}/edit">Edit this task</a></li>
|
||||||
|
<li><a href="{{href}}/delete">Delete this task</a></li>
|
||||||
|
<li class="divider"></li>
|
||||||
|
<li><a href="{{href}}/run" data-test="run-task">Run pa11y</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{{/unless}}
|
||||||
</li>
|
</li>
|
||||||
{{#each tasks}}
|
{{/each}}
|
||||||
<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}}">
|
</ul>
|
||||||
<a class="well task-card-link crunch-bottom" title="Details for URL {{simplify-url url}}" href="{{href}}">
|
|
||||||
<p class="h3">{{name}}</p>
|
|
||||||
<p class="h5">({{standard}})</p>
|
|
||||||
{{#if lastResult}}
|
|
||||||
<ul class="clearfix list-unstyled floated-list task-stats">
|
|
||||||
{{#lastResult}}
|
|
||||||
<li class="danger" title="Number of errors ({{count.error}})">{{count.error}}<span class="stat-type">Errors</span></li>
|
|
||||||
<li class="warning" title="Number of warnings ({{count.warning}})">{{count.warning}}<span class="stat-type">Warnings</span></li>
|
|
||||||
<li class="info last" title="Number of notices ({{count.notice}})">{{count.notice}}<span class="stat-type">Notices</span></li>
|
|
||||||
{{/lastResult}}
|
|
||||||
</ul>
|
|
||||||
Last run {{date-format lastResult.date format="DD MMM YYYY"}}
|
|
||||||
{{else}}
|
|
||||||
<p class="no-results">No results</p>
|
|
||||||
{{/if}}
|
|
||||||
</a>
|
|
||||||
{{#unless ../readonly}}
|
|
||||||
<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>
|
|
||||||
<ul class="dropdown-menu pull-right" role="menu">
|
|
||||||
<li><a href="{{href}}/edit">Edit this task</a></li>
|
|
||||||
<li><a href="{{href}}/delete">Delete this task</a></li>
|
|
||||||
<li class="divider"></li>
|
|
||||||
<li><a href="{{href}}/run" data-test="run-task">Run pa11y</a></li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
{{/unless}}
|
|
||||||
</li>
|
|
||||||
{{/each}}
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
{{!
|
{{!
|
||||||
This file is part of pa11y-dashboard.
|
This file is part of pa11y-dashboard.
|
||||||
|
|
||||||
pa11y-dashboard is free software: you can redistribute it and/or modify
|
pa11y-dashboard is free software: you can redistribute it and/or modify
|
||||||
@@ -77,6 +77,15 @@ 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-timeout">Timeout (milliseconds)</label>
|
||||||
|
<input class="form-control" id="new-task-timeout" type="text" placeholder="E.g. 30000" name="timeout" value="{{task.timeout}}"/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<p class="control-label"><b>Ignore these rules</b> <a target="_blank" href="https://github.com/nature/pa11y/wiki/HTML-CodeSniffer-Rules">(full list of rules here)</a></p>
|
<p class="control-label"><b>Ignore these rules</b> <a target="_blank" href="https://github.com/nature/pa11y/wiki/HTML-CodeSniffer-Rules">(full list of rules here)</a></p>
|
||||||
|
|
||||||
<div class="standards-lists">
|
<div class="standards-lists">
|
||||||
|
Reference in New Issue
Block a user