refactor views to remove hardcoded challenge data

pull/2/head
Michael Q Larson 2014-12-23 08:22:50 -08:00
parent 3eb09ab637
commit ca6652a791
4 changed files with 21 additions and 248 deletions

View File

@ -6,6 +6,7 @@ var passport = require('passport');
var User = require('../models/User');
var secrets = require('../config/secrets');
var moment = require('moment');
var Challenge = require('./../models/Challenge');
/**
* GET /login
@ -130,11 +131,18 @@ exports.postEmailSignup = function(req, res, next) {
*/
exports.getAccount = function(req, res) {
Challenge.find({}, function (err, c) {
if (err) {
console.error('Challenge err: ', err);
next(err);
}
res.render('account/profile', {
title: 'Manage your Free Code Camp Account',
cc: req.user.challengesHash,
cc: c,
ch: req.user.challengesHash,
moment: moment
});
});
};
/**

View File

@ -192,8 +192,8 @@
]
},
{
"name": "Customize Bootstrap with Bootswatch",
"time": 10,
"name": "Customize Bootstrap",
"time": 15,
"video": "110752741",
"challengeNumber": 16,
"steps": [

View File

@ -40,246 +40,12 @@ block content
tr
th Challenge
th Date Finished
if cc[0] > 0
for challenge in cc
if ch[challenge.challengeNumber] > 0
tr
td Learn how Free Code Camp Works
td=moment(cc[0], 'X').format("MMM DD, YYYY")
if cc[1] > 0
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")
td= cc[challenge.challengeNumber].name
td= moment(ch[challenge.challengeNumber], 'X').format("MMM DD, YYYY")
h3 Danger Zone
button.btn.btn-danger.confirm-deletion
span.ion-trash-b

View File

@ -7,5 +7,4 @@
a(href="/challenges/#{challenge.challengeNumber}", class="#{ (cc && cc[challenge.challengeNumber] > 0) ? 'strikethrough' : '' }") #{challenge.name}
|   (#{challenge.time} mins)
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
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