make bonfire view consistent with other challenge views and make codemirror height larger and result code mirror pane read only with no cursor

This commit is contained in:
Michael Q Larson
2015-01-10 22:59:24 -08:00
parent 2f04f323c1
commit d8929ac72d
3 changed files with 58 additions and 33 deletions

View File

@@ -1,8 +1,19 @@
var _ = require('lodash'),
debug = require('debug')('freecc:cntr:challenges'),
Challenge = require('./../models/Challenge');
/** /**
* Bonfire controller * Bonfire controller
*/ */
module.exports = { exports.index = function(req, res) {
index : function(req,res) { Challenge.find({}, null, { sort: { challengeNumber: 1 } }, function(err, c) {
res.render('bonfire/bonfire.jade'); if (err) {
debug('Challenge err: ', err);
next(err);
} }
res.render('bonfire/bonfire.jade', {
challenges: c,
cc: req.user ? req.user.challengesHash : undefined
});
});
}; };

View File

@@ -53,5 +53,4 @@ exports.returnChallenge = function(req, res, next) {
challenges: c challenges: c
}); });
}); });
}; };

View File

@@ -5,31 +5,46 @@ block content
link(rel='stylesheet', href='/js/lib/codemirror/theme/monokai.css') link(rel='stylesheet', href='/js/lib/codemirror/theme/monokai.css')
script(src='/js/lib/codemirror/mode/javascript/javascript.js') script(src='/js/lib/codemirror/mode/javascript/javascript.js')
.col-sm-12 .row
.col-sm-4.panel. .col-sm-12.col-md-8.col-xs-12
Challenge text goes here .panel.panel-primary
.col-sm-8 .panel-heading Title
.panel.panel-body
form.code form.code
.form-group.code .form-group.codeMirrorView
textarea(id='code') textarea#codeEditor
#submitButton.btn.btn-primary form.code
.col-sm-4.jumbotron .form-group.codeMirrorView
#codeOutput textarea#codeOutput(enabled=false)
#submitButton.btn.btn-primary.btn-big.btn-block Run my code
#hintButton.btn.btn-info.btn-big.btn-block Show me hints
script. script.
var myCodeMirror = CodeMirror.fromTextArea(document.getElementById("code"), { var myCodeMirror = CodeMirror.fromTextArea(document.getElementById("codeEditor"), {
lineNumbers: true, lineNumbers: true,
mode: "javascript", mode: "javascript",
theme: 'monokai', theme: 'monokai',
runnable: true runnable: true
}); });
myCodeMirror.setValue('2*2'); myCodeMirror.setValue('2*2');
myCodeMirror.setSize("100%", 500);
$('#submitButton').on('click', function () { $('#submitButton').on('click', function () {
$('#codeOutput').empty(); $('#codeOutput').empty();
var js = myCodeMirror.getValue(); var js = myCodeMirror.getValue();
var s = document.createElement('script'); var s = document.createElement('script');
s.textContent = js; s.textContent = js;
try {
$('#codeOutput').append(eval(s.textContent)); $('#codeOutput').append(eval(s.textContent));
} catch (e) {
$('#codeOutput').append(e);
}
}); });
var codeOutput = CodeMirror.fromTextArea(document.getElementById("codeOutput"), {
lineNumbers: false,
mode: "javascript",
theme: 'monokai',
readOnly: 'nocursor'
});
codeOutput.setSize("100%", 30);
.col-sm-12.col-md-4.col-xs-12
include ../partials/challenges