From 0282de7f73cc8292df77169affeae93ae169d435 Mon Sep 17 00:00:00 2001 From: Rowan Manning Date: Wed, 25 Sep 2013 13:32:44 +0100 Subject: [PATCH] Split results into errors, warnings, notices --- route/task/index.js | 8 -------- view/partial/tasks.html | 8 ++++---- view/presenter/result.js | 17 +++++++++++++++++ view/presenter/task.js | 3 ++- view/task/index.html | 18 +++++++++--------- 5 files changed, 32 insertions(+), 22 deletions(-) diff --git a/route/task/index.js b/route/task/index.js index 54a27c7..ef8ceea 100644 --- a/route/task/index.js +++ b/route/task/index.js @@ -1,6 +1,5 @@ 'use strict'; -var _ = require('underscore'); var presentTask = require('../../view/presenter/task'); var presentResult = require('../../view/presenter/result'); @@ -18,13 +17,6 @@ function route (app) { if (err) { return next(err); } - results.forEach(function (result) { - var grouped = _.groupBy(result.results, 'code'); - result.messages = _.keys(grouped).map(function (group) { - grouped[group][0].count = grouped[group].length; - return grouped[group][0]; - }); - }); res.render('task', { task: presentTask(task), results: results.map(presentResult), diff --git a/view/partial/tasks.html b/view/partial/tasks.html index 868022e..36410c6 100644 --- a/view/partial/tasks.html +++ b/view/partial/tasks.html @@ -11,15 +11,15 @@

{{simplify-url url}}

({{standard}})

- {{#if last_result}} + {{#if lastResult}} - Last run {{date-format last_result.date format="DD MMM YYYY"}} + Last run {{date-format lastResult.date format="DD MMM YYYY"}} {{else}}

No results

{{/if}} diff --git a/view/presenter/result.js b/view/presenter/result.js index 844cd91..fe08868 100644 --- a/view/presenter/result.js +++ b/view/presenter/result.js @@ -1,5 +1,7 @@ 'use strict'; +var _ = require('underscore'); + module.exports = presentResult; function presentResult (result) { @@ -12,5 +14,20 @@ function presentResult (result) { // Parse date result.date = new Date(result.date); + // 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; } diff --git a/view/presenter/task.js b/view/presenter/task.js index 3f0ecc3..4dd4b3a 100644 --- a/view/presenter/task.js +++ b/view/presenter/task.js @@ -13,7 +13,8 @@ function presentTask (task) { // Present the last result if present if (task.last_result) { - task.last_result = presentResult(task.last_result); + task.lastResult = presentResult(task.last_result); + delete task.last_result; } return task; diff --git a/view/task/index.html b/view/task/index.html index 9754266..750c90f 100644 --- a/view/task/index.html +++ b/view/task/index.html @@ -106,48 +106,48 @@ {{#if results}}
- - Errors ( 13 ) + Errors ( {{lastResult.count.error}} )
    - {{#lastResult.messages}} + {{#lastResult.errors}}
  • {{type}} : {{code}} {{count}}

    {{message}}

  • - {{/lastResult.messages}} + {{/lastResult.errors}}
Back to top
+ - Warnings ( 142 ) + Warnings ( {{lastResult.count.warning}} )
Back to top
+ - Notifications ( 166 ) + Notifications ( {{lastResult.count.notice}} )
Back to top