improve bonfire and start adding model and controller
This commit is contained in:
25
app.js
25
app.js
@ -214,10 +214,6 @@ app.get(
|
||||
'/pair-program-with-team-viewer',
|
||||
resourcesController.pairProgramWithTeamViewer
|
||||
);
|
||||
app.get(
|
||||
'/done-with-first-100-hours',
|
||||
resourcesController.doneWithFirst100Hours
|
||||
);
|
||||
app.get('/learn-to-code', resourcesController.about);
|
||||
app.get('/login', userController.getLogin);
|
||||
app.post('/login', userController.postLogin);
|
||||
@ -253,6 +249,11 @@ app.get(
|
||||
);
|
||||
app.all('/account', passportConf.isAuthenticated);
|
||||
app.get('/account/api', userController.getAccountAngular);
|
||||
app.get('/bonfire', bonfireController.index);
|
||||
//app.get(
|
||||
// '/bonfire/:bonfireNumber',
|
||||
// bonfireController.returnBonfire
|
||||
//);
|
||||
|
||||
// Unique Check API route
|
||||
app.get('/api/checkUniqueUsername/:username', userController.checkUniqueUsername);
|
||||
@ -263,11 +264,6 @@ app.post('/account/password', userController.postUpdatePassword);
|
||||
app.post('/account/delete', userController.postDeleteAccount);
|
||||
app.get('/account/unlink/:provider', userController.getOauthUnlink);
|
||||
|
||||
//put this route last
|
||||
app.get(
|
||||
'/:username',
|
||||
userController.returnUser
|
||||
);
|
||||
|
||||
/**
|
||||
* API examples routes.
|
||||
@ -298,7 +294,7 @@ var passportOptions = {
|
||||
failureRedirect: '/login'
|
||||
};
|
||||
|
||||
app.get('/auth/twitter', passport.authorize('twitter'));
|
||||
app.get('/auth/twitter', passport.authenticate('twitter'));
|
||||
app.get(
|
||||
'/auth/twitter/callback',
|
||||
passport.authenticate('twitter', {
|
||||
@ -350,10 +346,11 @@ app.get(
|
||||
}
|
||||
);
|
||||
|
||||
/**
|
||||
* Bonfire routing
|
||||
*/
|
||||
app.get('/bonfire', bonfireController.index);
|
||||
//put this route last
|
||||
app.get(
|
||||
'/:username',
|
||||
userController.returnUser
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
|
@ -1,20 +1,67 @@
|
||||
var _ = require('lodash'),
|
||||
debug = require('debug')('freecc:cntr:challenges'),
|
||||
Challenge = require('./../models/Challenge');
|
||||
debug = require('debug')('freecc:cntr:bonfires'),
|
||||
bonfire = require('./../models/bonfire');
|
||||
|
||||
/**
|
||||
* Bonfire controller
|
||||
*/
|
||||
exports.index = function(req, res) {
|
||||
Challenge.find({}, null, { sort: { challengeNumber: 1 } }, function(err, c) {
|
||||
if (err) {
|
||||
debug('Challenge err: ', err);
|
||||
next(err);
|
||||
}
|
||||
res.render('bonfire/bonfire.jade', {
|
||||
challenges: c,
|
||||
cc: req.user ? req.user.challengesHash : undefined
|
||||
});
|
||||
res.render('bonfire/bonfire.jade', {
|
||||
});
|
||||
//Bonfire.find({}, null, { sort: { bonfireNumber: 1 } }, function(err, c) {
|
||||
// if (err) {
|
||||
// debug('bonfire err: ', err);
|
||||
// next(err);
|
||||
// }
|
||||
//});
|
||||
};
|
||||
|
||||
//exports.returnBonfire = function(req, res, next) {
|
||||
// var bonfireNumber = parseInt(req.params.bonfireNumber) || 0;
|
||||
// var verbs = [
|
||||
// 'ACED',
|
||||
// 'NAILED',
|
||||
// 'ROCKED',
|
||||
// 'SCORCHED',
|
||||
// 'DEVASTATED',
|
||||
// 'OWNED',
|
||||
// 'CRUSHED',
|
||||
// 'CONQUERED',
|
||||
// 'KILLED',
|
||||
// 'SHREDDED',
|
||||
// 'ANNIHILATED',
|
||||
// 'NUKED'
|
||||
// ];
|
||||
// var phrases = [
|
||||
// "Shout it from on top of a mountain",
|
||||
// "Tell everyone and their dogs",
|
||||
// "Show them. Show them all!",
|
||||
// "Inspire your friends",
|
||||
// "Tell the world of your greatness",
|
||||
// "Look accomplished on social media",
|
||||
// "Share news of your grand endeavor",
|
||||
// "Establish your alibi for the past two hours",
|
||||
// "Prove to mom that computers aren't just for games"
|
||||
// ];
|
||||
// if (bonfireNumber > 53) { bonfireNumber = 0; }
|
||||
// Bonfire.find({}, null, { sort: { bonfireNumber: 1 } }, function(err, c) {
|
||||
// if (err) {
|
||||
// debug('bonfire err: ', err);
|
||||
// next(err);
|
||||
// }
|
||||
// res.render('bonfires/show', {
|
||||
// //title: 'bonfire: ' + c[bonfireNumber].name,
|
||||
// //name: c[bonfireNumber].name,
|
||||
// //video: c[bonfireNumber].video,
|
||||
// //time: c[bonfireNumber].time,
|
||||
// //steps: c[bonfireNumber].steps,
|
||||
// //number: bonfireNumber,
|
||||
// //categories: c[bonfireNumber].category,
|
||||
// //cc: req.user ? req.user.bonfiresHash : undefined,
|
||||
// //points: req.user ? req.user.points : undefined,
|
||||
// //verb: verbs[Math.floor(Math.random() * verbs.length)],
|
||||
// //phrase: phrases[Math.floor(Math.random() * phrases.length)],
|
||||
// //bonfires: c
|
||||
// });
|
||||
// });
|
||||
//};
|
@ -161,7 +161,7 @@ module.exports = {
|
||||
});
|
||||
});
|
||||
});
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
14
models/Bonfire.js
Normal file
14
models/Bonfire.js
Normal file
@ -0,0 +1,14 @@
|
||||
var mongoose = require('mongoose');
|
||||
var secrets = require('../config/secrets');
|
||||
|
||||
var bonfireSchema = new mongoose.Schema({
|
||||
name: {
|
||||
type: String,
|
||||
unique: true
|
||||
},
|
||||
link: String,
|
||||
time: String,
|
||||
bonfireNumber: Number
|
||||
});
|
||||
|
||||
module.exports = mongoose.model('Bonfire', bonfireSchema);
|
@ -525,6 +525,10 @@ thead {
|
||||
}
|
||||
}
|
||||
|
||||
form.code {
|
||||
font-size: 22px;
|
||||
}
|
||||
|
||||
//uncomment this to see the dimensions of all elements outlined in red
|
||||
//* {
|
||||
// border-color: red;
|
||||
|
@ -15,9 +15,9 @@ block content
|
||||
script(src='/js/lib/bonfire/bonfire.js')
|
||||
|
||||
.row
|
||||
.col-sm-12.col-md-8.col-xs-12
|
||||
.col-sm-12.col-md-12.col-xs-12
|
||||
.panel.panel-primary
|
||||
.panel-heading Title
|
||||
.panel-heading.text-center Bonfire Playground
|
||||
.panel.panel-body
|
||||
form.code
|
||||
.form-group.codeMirrorView
|
||||
@ -26,7 +26,7 @@ block content
|
||||
.form-group.codeMirrorView
|
||||
textarea#codeOutput
|
||||
#submitButton.btn.btn-primary.btn-big.btn-block Run my code
|
||||
#hintButton.btn.btn-info.btn-big.btn-block Show me hints
|
||||
//#hintButton.btn.btn-info.btn-big.btn-block Show me hints
|
||||
|
||||
script.
|
||||
var widgets = [];
|
||||
@ -38,16 +38,26 @@ block content
|
||||
lint: true,
|
||||
matchBrackets: true,
|
||||
autoCloseBrackets: true,
|
||||
cursorHeight: 0.85,
|
||||
lineWrapping: true,
|
||||
gutters: ["CodeMirror-lint-markers"],
|
||||
onKeyEvent : doLinting
|
||||
});
|
||||
var editor = myCodeMirror;
|
||||
myCodeMirror.setValue('2*2');
|
||||
myCodeMirror.setValue('/*Welcome to Bonfire, Free Code Camp\'s future CoderByte replacement.\n'+
|
||||
'Please feel free to use Bonfire as an in-browser playground and linting tool.*/\n\n\n' +
|
||||
|
||||
'function test() {\n' +
|
||||
' return [1,2,3].map(function(elem) {\n' +
|
||||
' return elem * elem;\n' +
|
||||
' });\n' +
|
||||
'}\n\n' +
|
||||
'test();');
|
||||
myCodeMirror.setSize("100%", 500);
|
||||
|
||||
var codeOutput = CodeMirror.fromTextArea(document.getElementById("codeOutput"), {
|
||||
lineNumbers: false,
|
||||
mode: "javascript",
|
||||
mode: "text",
|
||||
theme: 'monokai',
|
||||
readOnly: 'nocursor'
|
||||
});
|
||||
@ -85,8 +95,3 @@ block content
|
||||
submit(js);
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
.col-sm-12.col-md-4.col-xs-12
|
||||
include ../partials/challenges
|
||||
|
6
views/partials/bonfires.jade
Normal file
6
views/partials/bonfires.jade
Normal file
@ -0,0 +1,6 @@
|
||||
h3
|
||||
ol(start='0')
|
||||
for bonfire in bonfires
|
||||
li
|
||||
a(href="/bonfire/#{bonfire.bonfireNumber}", class="#{ (cc && cc[bonfire.bonfireNumber] > 0) ? 'strikethrough' : '' }") #{bonfire.name}
|
||||
| (#{bonfire.time} mins)
|
Reference in New Issue
Block a user