Merge branch 'staging' of github.com:FreeCodeCamp/freecodecamp into staging
Conflicts: app.js controllers/challengeMap.js controllers/resources.js server/views/partials/field-guide.jade server/views/partials/github.jade server/views/partials/nonprofit-application-progress-bar.jade server/views/partials/nonprofits.jade
This commit is contained in:
65
server/boot/challengeMap.js
Normal file
65
server/boot/challengeMap.js
Normal file
@@ -0,0 +1,65 @@
|
||||
var R = require('ramda'),
|
||||
// debug = require('debug')('freecc:cntr:challengeMap'),
|
||||
User = require('../../models/User'),
|
||||
resources = require('./../resources/resources'),
|
||||
middleware = require('../resources/middleware'),
|
||||
express = require('express'),
|
||||
router = express.Router();
|
||||
|
||||
router.get('/map', middleware.userMigration, challengeMap);
|
||||
|
||||
router.get('/learn-to-code', function(req, res) {
|
||||
res.redirect(301, '/map');
|
||||
});
|
||||
|
||||
router.get('/about', function(req, res) {
|
||||
res.redirect(301, '/map');
|
||||
});
|
||||
|
||||
function challengeMap(req, res, next) {
|
||||
var completedList = [];
|
||||
|
||||
if (req.user) {
|
||||
completedList = req.user.completedChallenges;
|
||||
}
|
||||
|
||||
var noDuplicatedChallenges = R.uniq(completedList);
|
||||
|
||||
var completedChallengeList = noDuplicatedChallenges
|
||||
.map(function(challenge) {
|
||||
return challenge._id;
|
||||
});
|
||||
var challengeList = resources.
|
||||
getChallengeMapForDisplay(completedChallengeList);
|
||||
|
||||
Object.keys(challengeList).forEach(function(key) {
|
||||
challengeList[key].completed = challengeList[key]
|
||||
.challenges.filter(function(elem) {
|
||||
return completedChallengeList.indexOf(elem._id) > -1;
|
||||
});
|
||||
});
|
||||
|
||||
function numberWithCommas(x) {
|
||||
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
|
||||
}
|
||||
|
||||
var date1 = new Date('10/15/2014');
|
||||
var date2 = new Date();
|
||||
var timeDiff = Math.abs(date2.getTime() - date1.getTime());
|
||||
var daysRunning = Math.ceil(timeDiff / (1000 * 3600 * 24));
|
||||
|
||||
User.count({}, function (err, camperCount) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
res.render('challengeMap/show', {
|
||||
daysRunning: daysRunning,
|
||||
camperCount: numberWithCommas(camperCount),
|
||||
title: "A map of all Free Code Camp's Challenges",
|
||||
challengeList: challengeList,
|
||||
completedChallengeList: completedChallengeList
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = router;
|
Reference in New Issue
Block a user