diff --git a/common/models/challenge.json b/common/models/challenge.json index 81d6af6eef..729cb97625 100644 --- a/common/models/challenge.json +++ b/common/models/challenge.json @@ -86,6 +86,9 @@ "solutions": { "type": "array", "default": [] + }, + "releasedOn": { + "type": "string" } }, "validations": [], diff --git a/server/boot/challenge.js b/server/boot/challenge.js index a4d057f13b..bb67b29e71 100644 --- a/server/boot/challenge.js +++ b/server/boot/challenge.js @@ -537,6 +537,11 @@ module.exports = function(app) { if (completedChallenges.indexOf(challenge.id) !== -1) { challenge.completed = true; } + if (typeof(challenge.releasedOn) !== 'undefined' + && moment(challenge.releasedOn, 'MMM MMMM DD, YYYY').diff(moment(), + 'days') >= -30) { + challenge.markNew = true; + } return challenge; }) // group challenges by block | returns a stream of observables diff --git a/server/views/challengeMap/show.jade b/server/views/challengeMap/show.jade index 5b4974b4e3..81e80307a1 100644 --- a/server/views/challengeMap/show.jade +++ b/server/views/challengeMap/show.jade @@ -129,6 +129,10 @@ block content span.capitalize= challenge.type + ': ' span= challenge.title span.sr-only= " Incomplete" + if challenge.markNew + span.text-danger.small     + strong + em NEW if (challengeBlock.completed === 100) .button-spacer