refactor views to remove hardcoded challenge data
This commit is contained in:
@ -6,6 +6,7 @@ var passport = require('passport');
|
|||||||
var User = require('../models/User');
|
var User = require('../models/User');
|
||||||
var secrets = require('../config/secrets');
|
var secrets = require('../config/secrets');
|
||||||
var moment = require('moment');
|
var moment = require('moment');
|
||||||
|
var Challenge = require('./../models/Challenge');
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* GET /login
|
* GET /login
|
||||||
@ -130,10 +131,17 @@ exports.postEmailSignup = function(req, res, next) {
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
exports.getAccount = function(req, res) {
|
exports.getAccount = function(req, res) {
|
||||||
res.render('account/profile', {
|
Challenge.find({}, function (err, c) {
|
||||||
title: 'Manage your Free Code Camp Account',
|
if (err) {
|
||||||
cc: req.user.challengesHash,
|
console.error('Challenge err: ', err);
|
||||||
moment: moment
|
next(err);
|
||||||
|
}
|
||||||
|
res.render('account/profile', {
|
||||||
|
title: 'Manage your Free Code Camp Account',
|
||||||
|
cc: c,
|
||||||
|
ch: req.user.challengesHash,
|
||||||
|
moment: moment
|
||||||
|
});
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -192,8 +192,8 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Customize Bootstrap with Bootswatch",
|
"name": "Customize Bootstrap",
|
||||||
"time": 10,
|
"time": 15,
|
||||||
"video": "110752741",
|
"video": "110752741",
|
||||||
"challengeNumber": 16,
|
"challengeNumber": 16,
|
||||||
"steps": [
|
"steps": [
|
||||||
|
@ -40,246 +40,12 @@ block content
|
|||||||
tr
|
tr
|
||||||
th Challenge
|
th Challenge
|
||||||
th Date Finished
|
th Date Finished
|
||||||
if cc[0] > 0
|
for challenge in cc
|
||||||
tr
|
if ch[challenge.challengeNumber] > 0
|
||||||
td Learn how Free Code Camp Works
|
tr
|
||||||
td=moment(cc[0], 'X').format("MMM DD, YYYY")
|
td= cc[challenge.challengeNumber].name
|
||||||
if cc[1] > 0
|
td= moment(ch[challenge.challengeNumber], 'X').format("MMM DD, YYYY")
|
||||||
tr
|
|
||||||
td Join Our Chat Room
|
|
||||||
td=moment(cc[1], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[2] > 0
|
|
||||||
tr
|
|
||||||
td Subscribe to Our Subreddit
|
|
||||||
td=moment(cc[2], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[3] > 0
|
|
||||||
tr
|
|
||||||
td Build a Personal Website
|
|
||||||
td=moment(cc[3], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[4] > 0
|
|
||||||
tr
|
|
||||||
td Build a Responsive Blog Theme
|
|
||||||
td=moment(cc[4], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[5] > 0
|
|
||||||
tr
|
|
||||||
td Build a Small Business Website
|
|
||||||
td=moment(cc[5], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[6] > 0
|
|
||||||
tr
|
|
||||||
td Tweak HTML and CSS in CodePen
|
|
||||||
td=moment(cc[6], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[7] > 0
|
|
||||||
tr
|
|
||||||
td Build a CSS Robot
|
|
||||||
td=moment(cc[7], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[8] > 0
|
|
||||||
tr
|
|
||||||
td Get Started with jQuery
|
|
||||||
td=moment(cc[8], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[9] > 0
|
|
||||||
tr
|
|
||||||
td Traverse the DOM
|
|
||||||
td=moment(cc[9], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[10] > 0
|
|
||||||
tr
|
|
||||||
td Work with the DOM
|
|
||||||
td=moment(cc[10], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[11] > 0
|
|
||||||
tr
|
|
||||||
td Listen for DOM Events
|
|
||||||
td=moment(cc[11], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[12] > 0
|
|
||||||
tr
|
|
||||||
td Use jQuery for Styling
|
|
||||||
td=moment(cc[12], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[13] > 0
|
|
||||||
tr
|
|
||||||
td Build a MadLibs Game
|
|
||||||
td=moment(cc[13], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[14] > 0
|
|
||||||
tr
|
|
||||||
td Discover Chrome's DevTools
|
|
||||||
td=moment(cc[14], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[15] > 0
|
|
||||||
tr
|
|
||||||
td Tackle jQuery Exercises
|
|
||||||
td=moment(cc[15], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[16] > 0
|
|
||||||
tr
|
|
||||||
td Customize Bootstrap
|
|
||||||
td=moment(cc[16], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[17] > 0
|
|
||||||
tr
|
|
||||||
td Inject Animation into CSS
|
|
||||||
td=moment(cc[17], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[18] > 0
|
|
||||||
tr
|
|
||||||
td Learn Basic Computer Science
|
|
||||||
td=moment(cc[18], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[19] > 0
|
|
||||||
tr
|
|
||||||
td Learn Loops
|
|
||||||
td=moment(cc[19], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[20] > 0
|
|
||||||
tr
|
|
||||||
td Learn Computer Hardware
|
|
||||||
td=moment(cc[20], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[21] > 0
|
|
||||||
tr
|
|
||||||
td Learn Computer Networking
|
|
||||||
td=moment(cc[21], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[22] > 0
|
|
||||||
tr
|
|
||||||
td Learn Boolean Logic
|
|
||||||
td=moment(cc[22], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[23] > 0
|
|
||||||
tr
|
|
||||||
td Learn Computer Security
|
|
||||||
td=moment(cc[23], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[24] > 0
|
|
||||||
tr
|
|
||||||
td Build an Adventure Game
|
|
||||||
td=moment(cc[24], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[25] > 0
|
|
||||||
tr
|
|
||||||
td Build Rock Paper Scissors
|
|
||||||
td=moment(cc[25], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[26] > 0
|
|
||||||
tr
|
|
||||||
td Learn JavaScript For Loops
|
|
||||||
td=moment(cc[26], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[27] > 0
|
|
||||||
tr
|
|
||||||
td Learn JavaScript While Loops
|
|
||||||
td=moment(cc[27], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[28] > 0
|
|
||||||
tr
|
|
||||||
td Learn Control Flow
|
|
||||||
td=moment(cc[28], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[29] > 0
|
|
||||||
tr
|
|
||||||
td Build a Contact List
|
|
||||||
td=moment(cc[29], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[30] > 0
|
|
||||||
tr
|
|
||||||
td Build an Address Book
|
|
||||||
td=moment(cc[30], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[31] > 0
|
|
||||||
tr
|
|
||||||
td Build a Cash Register
|
|
||||||
td=moment(cc[31], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[32] > 0
|
|
||||||
tr
|
|
||||||
td Get Help the Hacker Way
|
|
||||||
td=moment(cc[32], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[33] > 0
|
|
||||||
tr
|
|
||||||
td Learn Regular Expressions
|
|
||||||
td=moment(cc[33], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[34] > 0
|
|
||||||
tr
|
|
||||||
td Pair Program on CoderByte
|
|
||||||
td=moment(cc[34], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[35] > 0
|
|
||||||
tr
|
|
||||||
td Learn Relational Database Theory
|
|
||||||
td=moment(cc[35], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[36] > 0
|
|
||||||
tr
|
|
||||||
td Pair Program to Query SQL pt 1
|
|
||||||
td=moment(cc[36], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[37] > 0
|
|
||||||
tr
|
|
||||||
td Pair Program to Query SQL pt 2
|
|
||||||
td=moment(cc[37], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[38] > 0
|
|
||||||
tr
|
|
||||||
td Pair Program to modify SQL pt 1
|
|
||||||
td=moment(cc[38], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[39] > 0
|
|
||||||
tr
|
|
||||||
td Pair Program to modify SQL pt 2
|
|
||||||
td=moment(cc[39], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[40] > 0
|
|
||||||
tr
|
|
||||||
td Learn JSON
|
|
||||||
td=moment(cc[40], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[41] > 0
|
|
||||||
tr
|
|
||||||
td Manage Source Code with Git
|
|
||||||
td=moment(cc[41], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[42] > 0
|
|
||||||
tr
|
|
||||||
td Get Started with Node.js
|
|
||||||
td=moment(cc[42], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[43] > 0
|
|
||||||
tr
|
|
||||||
td Try Node.js Events
|
|
||||||
td=moment(cc[43], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[44] > 0
|
|
||||||
tr
|
|
||||||
td Try Node.js Streams
|
|
||||||
td=moment(cc[44], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[45] > 0
|
|
||||||
tr
|
|
||||||
td Learn how Node.js Modules Work
|
|
||||||
td=moment(cc[45], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[46] > 0
|
|
||||||
tr
|
|
||||||
td Start an Express.js Server
|
|
||||||
td=moment(cc[46], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[47] > 0
|
|
||||||
tr
|
|
||||||
td Use Socket.io
|
|
||||||
td=moment(cc[47], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[48] > 0
|
|
||||||
tr
|
|
||||||
td Use Redis to Persist Data
|
|
||||||
td=moment(cc[48], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[49] > 0
|
|
||||||
tr
|
|
||||||
td Dive Deeper into Express.js
|
|
||||||
td=moment(cc[49], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[50] > 0
|
|
||||||
tr
|
|
||||||
td Set up Express.js Middleware
|
|
||||||
td=moment(cc[50], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[51] > 0
|
|
||||||
tr
|
|
||||||
td Take Advantage of Parameters
|
|
||||||
td=moment(cc[51], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[52] > 0
|
|
||||||
tr
|
|
||||||
td Add the Body Parser
|
|
||||||
td=moment(cc[52], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[53] > 0
|
|
||||||
tr
|
|
||||||
td Configure Routes in Express.js
|
|
||||||
td=moment(cc[53], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[54] > 0
|
|
||||||
tr
|
|
||||||
td Try MongoDB
|
|
||||||
td=moment(cc[54], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[55] > 0
|
|
||||||
tr
|
|
||||||
td Get Started with Angular.js
|
|
||||||
td=moment(cc[55], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[56] > 0
|
|
||||||
tr
|
|
||||||
td Apply Angular.js Directives
|
|
||||||
td=moment(cc[56], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[57] > 0
|
|
||||||
tr
|
|
||||||
td Power Forms with Angular.js
|
|
||||||
td=moment(cc[57], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[58] > 0
|
|
||||||
tr
|
|
||||||
td Customize Angular.js Directives
|
|
||||||
td=moment(cc[58], 'X').format("MMM DD, YYYY")
|
|
||||||
if cc[59] > 0
|
|
||||||
tr
|
|
||||||
td Create Angular.js Services
|
|
||||||
td=moment(cc[59], 'X').format("MMM DD, YYYY")
|
|
||||||
h3 Danger Zone
|
h3 Danger Zone
|
||||||
button.btn.btn-danger.confirm-deletion
|
button.btn.btn-danger.confirm-deletion
|
||||||
span.ion-trash-b
|
span.ion-trash-b
|
||||||
|
@ -7,5 +7,4 @@
|
|||||||
a(href="/challenges/#{challenge.challengeNumber}", class="#{ (cc && cc[challenge.challengeNumber] > 0) ? 'strikethrough' : '' }") #{challenge.name}
|
a(href="/challenges/#{challenge.challengeNumber}", class="#{ (cc && cc[challenge.challengeNumber] > 0) ? 'strikethrough' : '' }") #{challenge.name}
|
||||||
| (#{challenge.time} mins)
|
| (#{challenge.time} mins)
|
||||||
|
|
||||||
|
a.btn.btn-primary(href="/done-with-first-100-hours", class="#{ ((cc && cc[59] > 0) || (!cc)) ? 'disabled' : '' }") I've finished all Free Code Camp challenges and all the Easy and Medium CoderByte Challenges
|
||||||
a.btn.btn-primary(href="/done-with-first-100-hours", class="#{ cc && cc[59] > 0 ? 'disabled' : '' }") I've finished all Free Code Camp challenges and all the Easy and Medium CoderByte Challenges
|
|
Reference in New Issue
Block a user