Files
pa11y-dashboard/view/presenter/result.js
Rowan Manning ea48d6a6fd Fix JSCS errors
2016-04-25 21:26:59 +01:00

53 lines
1.7 KiB
JavaScript

// This file is part of pa11y-dashboard.
//
// 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
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// pa11y-dashboard is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with pa11y-dashboard. If not, see <http://www.gnu.org/licenses/>.
'use strict';
var _ = require('underscore');
var presentIgnoreRules = require('./ignore');
module.exports = presentResult;
function presentResult(result) {
// Add additional info
result.href = '/' + result.task + '/' + result.id;
result.hrefCsv = '/' + result.task + '/' + result.id + '.csv';
result.hrefJson = '/' + result.task + '/' + result.id + '.json';
// Parse date
result.date = new Date(result.date);
// Enhance the ignored rules
result.ignore = presentIgnoreRules(result.ignore);
// Split out message types
if (result.results) {
var groupedByType = _.groupBy(result.results, 'type');
['error', 'warning', 'notice'].forEach(function(type) {
var pluralType = type + 's';
var results = groupedByType[type] || [];
var groupedByCode = _.groupBy(results, 'code');
result[pluralType] = _.keys(groupedByCode).map(function(group) {
var firstMessage = groupedByCode[group][0];
firstMessage.count = groupedByCode[group].length;
return firstMessage;
});
});
}
return result;
}