Move bonfire view into courseware view folder. Update seed file to exit when finished.

This commit is contained in:
terakilobyte
2015-05-21 00:34:51 -04:00
parent 17829b4bd3
commit 16f9478c3e
7 changed files with 12 additions and 149 deletions

View File

@ -54,14 +54,7 @@ exports.returnNextChallenge = function(req, res, next) {
return elem;
}
});
// It's not important to wait for the save to finish as the updated user
// object is already in memory! We'll just check to see if there was an
// error saving and log it out to investigate in our logs.
req.user.save(function(err, data) {
if (err) {
debug('%s saving user!', err);
}
});
// find the user's current challenge and block
// look in that block and find the index of their current challenge
// if index + 1 < block.challenges.length
@ -92,7 +85,13 @@ exports.returnNextChallenge = function(req, res, next) {
var nameString = nextChallengeName.trim()
.toLowerCase()
.replace(/\s/g, '-');
return res.redirect('../challenges/' + nameString);
req.user.save(function(err) {
if (err) {
return next(err);
}
return res.redirect('../challenges/' + nameString);
});
};
exports.returnCurrentChallenge = function(req, res, next) {
@ -255,7 +254,7 @@ exports.returnIndividualChallenge = function(req, res, next) {
},
5: function() {
res.render('bonfire/show', {
res.render('coursewares/showBonfire', {
completedWith: null,
title: challenge.name,
dashedName: dashedName,

View File

@ -23,7 +23,7 @@ var async = require('async'),
* Cached values
*/
var allFieldGuideIds, allFieldGuideNames, allNonprofitNames,
allBonfireIndexesAndNames, challengeMap, challengeMapWithIds,
challengeMap, challengeMapWithIds,
challengeMapWithNames, allChallengeIds, allChallenges;
/**

View File

@ -12,7 +12,7 @@ mongoose.connect(secrets.db);
var challenges = fs.readdirSync(__dirname + '/challenges');
var counter = 0;
var offerings = 3;
var offerings = 2 + challenges.length;
var CompletionMonitor = function() {
counter++;
@ -37,12 +37,11 @@ Challenge.remove({}, function(err, data) {
console.log(err);
} else {
console.log('Successfully parsed %s', file);
console.log(data);
CompletionMonitor();
}
});
});
});
/*
FieldGuide.remove({}, function(err, data) {
if (err) {
console.error(err);
@ -76,4 +75,3 @@ Nonprofit.remove({}, function(err, data) {
});
console.log('nonprofits');
});
*/

View File

@ -1,45 +0,0 @@
extends ../layout-wide
block content
script(src='/js/lib/codemirror/lib/codemirror.js')
script(src='/js/lib/codemirror/addon/edit/closebrackets.js')
script(src='/js/lib/codemirror/addon/edit/matchbrackets.js')
script(src='/js/lib/codemirror/addon/lint/lint.js')
script(src='/js/lib/codemirror/addon/lint/javascript-lint.js')
script(src='//ajax.aspnetcdn.com/ajax/jshint/r07/jshint.js')
script(src='/js/lib/chai/chai.js')
link(rel='stylesheet', href='/js/lib/codemirror/lib/codemirror.css')
link(rel='stylesheet', href='/js/lib/codemirror/addon/lint/lint.css')
link(rel='stylesheet', href='/js/lib/codemirror/theme/monokai.css')
link(rel="stylesheet", href="http://fonts.googleapis.com/css?family=Ubuntu+Mono")
script(src='/js/lib/codemirror/mode/javascript/javascript.js')
script(src='/js/lib/jailed/jailed.js')
script(src='/js/lib/bonfire/sandbox.js')
.row
script(type="text/javascript").
var tests = !{JSON.stringify(tests)};
var challengeSeed = !{JSON.stringify(challengeSeed)};
var challengeEntryPoint = !{JSON.stringify(challengeEntryPoint)};
var title = !{JSON.stringify(title)};
#mainEditorPanel.col-sm-12.col-md-7.col-xs-12
.panel.panel-primary.panel-bonfire
.panel-heading.text-center Playground
.panel.panel-body
form.code
.form-group.codeMirrorView
textarea#codeEditor(autofocus=true)
#testCreatePanel.col-sm-12.col-md-5.col-xs-12
.panel.panel-primary.panel-bonfire
.panel-heading.text-center Output
.panel.panel-body
#submitButton.btn.btn-primary.btn-big.btn-block Run code (ctrl + enter)
br
form.code
.form-group.codeMirrorView
textarea#codeOutput
br
ul#testSuite.list-group
br
script(src='/js/lib/bonfire/bonfireFramework_v0.1.2.js')

View File

@ -1,45 +0,0 @@
extends ../layout
block content
.row
.col-md-offset-2.col-md-8.col-lg-offset-2.col-lg-8.text-center
h1 JSON generator for bonfire challenges - just fill the form out and get the correct format back
.col-xs-12.col-sm-12.col-md-offset-1.col-md-10.col-lg-offset-1-col-lg-10
.panel
form.form-horizontal(method="POST", action="/bonfire-json-generator", name="bonfireInfo")
.form-group
label.col-sm-2.control-label(for='name') name:
.col-sm-10
input#name.form-control(type='text', placeholder='name', name="name")
.form-group
label.col-sm-2.control-label(for='difficultyField') difficulty:
.col-sm-10
label.radio-inline 1
input#inlineRadio1(type='radio', name='difficulty', value='1')
label.radio-inline 2
input#inlineRadio2(type='radio', name='difficulty', value='2')
label.radio-inline 3
input#inlineRadio3(type='radio', name='difficulty', value='3')
label.radio-inline 4
input#inlineRadio4(type='radio', name='difficulty', value='4')
label.radio-inline 5
input#inlineRadio5(type='radio', name='difficulty', value='5')
.form-group
label.col-sm-2.control-label.wrappable(for='description') description:
.col-sm-10
textarea#description.form-control(name="description", rows=5, placeholder="Each \"paragraph\" needs to be separated by a line break(return key).")
.form-group
label.col-sm-2.control-label.wrappable(for='challengeSeed') challengeSeed:
.col-sm-10
textarea#challengeSeed.form-control(name="challengeSeed", rows=5)
.form-group
label.col-sm-2.control-label.wrappable(for='challengeEntryPoint') challenge entrypoint:
.col-sm-10
textarea#name.form-control(name="challengeEntryPoint", rows=1, type='text', placeholder="palindrome(\"eye\");")
.form-group
label.col-sm-2.control-label.wrappable(for='tests') tests:
.col-sm-10
textarea#tests.form-control(name="tests", rows=5, placeholder="Separate tests by a newline.")
.form-group
.col-sm-offset-2.col-sm-10
input.btn.btn-default(type='submit', value="submit")

View File

@ -1,44 +0,0 @@
extends ../layout
block content
.row
.col-md-offset-2.col-md-8.col-lg-offset-2.col-lg-8.text-center
h1 Welcome to the challenge generator. Test your ideas out and see them live in bonfire!
.col-xs-12.col-sm-12.col-md-offset-1.col-md-10.col-lg-offset-1-col-lg-10
.panel
form.form-horizontal(method="POST", action="/bonfire-challenge-generator", name="bonfireInfo")
.form-group
label.col-sm-2.control-label(for='name') name:
.col-sm-10
input#name.form-control(type='text', placeholder='name', name="name")
.form-group
label.col-sm-2.control-label(for='difficultyField') difficulty:
.col-sm-10
label.radio-inline 1
input#inlineRadio1(type='radio', name='difficulty', value='1')
label.radio-inline 2
input#inlineRadio2(type='radio', name='difficulty', value='2')
label.radio-inline 3
input#inlineRadio3(type='radio', name='difficulty', value='3')
label.radio-inline 4
input#inlineRadio4(type='radio', name='difficulty', value='4')
label.radio-inline 5
input#inlineRadio5(type='radio', name='difficulty', value='5')
.form-group
label.col-sm-2.control-label.wrappable(for='description') description:
.col-sm-10
textarea#description.form-control(name="description", rows=5, placeholder="Each \"paragraph\" needs to be separated by a line break(return key).")
.form-group
label.col-sm-2.control-label.wrappable(for='challengeSeed') challengeSeed:
.col-sm-10
textarea#challengeSeed.form-control(name="challengeSeed", rows=5)
.form-group
label.col-sm-2.control-label.wrappable(for='challengeEntryPoint') challenge entrypoint:
.col-sm-10
textarea#name.form-control(name="challengeEntryPoint", rows=1, type='text', placeholder="palindrome(\"eye\");")
.form-group
label.col-sm-2.control-label.wrappable(for='tests') tests:
.col-sm-10
textarea#tests.form-control(name="tests", rows=5, placeholder="Separate tests by a newline.")
.form-group
.col-sm-offset-2.col-sm-10
input.btn.btn-default(type='submit', value="submit")