From 16f9478c3ef27121db0fedbfac4ad125077b3acf Mon Sep 17 00:00:00 2001 From: terakilobyte Date: Thu, 21 May 2015 00:34:51 -0400 Subject: [PATCH] Move bonfire view into courseware view folder. Update seed file to exit when finished. --- controllers/challenge.js | 19 ++++---- controllers/resources.js | 2 +- seed_data/seed.js | 6 +-- views/bonfire/bonfire.jade | 45 ------------------- views/bonfire/generator.jade | 45 ------------------- views/bonfire/public-generator.jade | 44 ------------------ .../showBonfire.jade} | 0 7 files changed, 12 insertions(+), 149 deletions(-) delete mode 100644 views/bonfire/bonfire.jade delete mode 100644 views/bonfire/generator.jade delete mode 100644 views/bonfire/public-generator.jade rename views/{bonfire/show.jade => coursewares/showBonfire.jade} (100%) diff --git a/controllers/challenge.js b/controllers/challenge.js index 0510b7be9a..40b0b13089 100644 --- a/controllers/challenge.js +++ b/controllers/challenge.js @@ -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, diff --git a/controllers/resources.js b/controllers/resources.js index 9df54250f6..5cc40bef64 100644 --- a/controllers/resources.js +++ b/controllers/resources.js @@ -23,7 +23,7 @@ var async = require('async'), * Cached values */ var allFieldGuideIds, allFieldGuideNames, allNonprofitNames, - allBonfireIndexesAndNames, challengeMap, challengeMapWithIds, + challengeMap, challengeMapWithIds, challengeMapWithNames, allChallengeIds, allChallenges; /** diff --git a/seed_data/seed.js b/seed_data/seed.js index 600ea5e77a..351d78da67 100644 --- a/seed_data/seed.js +++ b/seed_data/seed.js @@ -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'); }); -*/ diff --git a/views/bonfire/bonfire.jade b/views/bonfire/bonfire.jade deleted file mode 100644 index ebabc5a0f4..0000000000 --- a/views/bonfire/bonfire.jade +++ /dev/null @@ -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') \ No newline at end of file diff --git a/views/bonfire/generator.jade b/views/bonfire/generator.jade deleted file mode 100644 index 0d50bad791..0000000000 --- a/views/bonfire/generator.jade +++ /dev/null @@ -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") diff --git a/views/bonfire/public-generator.jade b/views/bonfire/public-generator.jade deleted file mode 100644 index 4425d90b18..0000000000 --- a/views/bonfire/public-generator.jade +++ /dev/null @@ -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") diff --git a/views/bonfire/show.jade b/views/coursewares/showBonfire.jade similarity index 100% rename from views/bonfire/show.jade rename to views/coursewares/showBonfire.jade