first commit with working iframe pulling data from code editor
This commit is contained in:
1
app.js
1
app.js
@ -270,6 +270,7 @@ app.get('/account/api', userController.getAccountAngular);
|
||||
*/
|
||||
app.get('/playground', bonfireController.index);
|
||||
app.get('/bonfires', bonfireController.returnNextBonfire);
|
||||
app.get('/courseware', bonfireController.courseware);
|
||||
app.get('/bonfire-json-generator', bonfireController.returnGenerator);
|
||||
app.post('/bonfire-json-generator', bonfireController.generateChallenge);
|
||||
app.get('/bonfire-challenge-generator', bonfireController.publicGenerator);
|
||||
|
@ -8,6 +8,11 @@ var _ = require('lodash'),
|
||||
* Bonfire controller
|
||||
*/
|
||||
|
||||
exports.courseware = function(req, res) {
|
||||
res.render('courseware/show.jade', {
|
||||
});
|
||||
};
|
||||
|
||||
var highestBonfireNumber = resources.numberOfBonfires();
|
||||
|
||||
exports.index = function(req, res) {
|
||||
|
@ -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/bonfireInit.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.js')
|
60
views/courseware/show.jade
Normal file
60
views/courseware/show.jade
Normal file
@ -0,0 +1,60 @@
|
||||
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/bonfireInit.js')
|
||||
script(src='/js/lib/codemirror/mode/xml/xml.js')
|
||||
script(src='/js/lib/codemirror/mode/css/css.js')
|
||||
script(src='/js/lib/codemirror/mode/htmlmixed/htmlmixed.js')
|
||||
style(type='text/css').
|
||||
style.
|
||||
.CodeMirror {
|
||||
float: left;
|
||||
width: 50%;
|
||||
border: 1px solid black;
|
||||
}
|
||||
iframe {
|
||||
width: 49%;
|
||||
float: left;
|
||||
height: 300px;
|
||||
border: 1px solid black;
|
||||
border-left: 0px;
|
||||
}
|
||||
|
||||
textarea#code(name='code')
|
||||
|
||||
|
||||
iframe#preview
|
||||
script(src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js")
|
||||
script(src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/js/bootstrap.min.js")
|
||||
style(src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css")
|
||||
script.
|
||||
var delay;
|
||||
// Initialize CodeMirror editor with a nice html5 canvas demo.
|
||||
var editor = CodeMirror.fromTextArea(document.getElementById('code'), {
|
||||
mode: 'text/html'
|
||||
});
|
||||
editor.on("change", function () {
|
||||
clearTimeout(delay);
|
||||
delay = setTimeout(updatePreview, 300);
|
||||
});
|
||||
function updatePreview() {
|
||||
var previewFrame = document.getElementById('preview');
|
||||
var preview = previewFrame.contentDocument || previewFrame.contentWindow.document;
|
||||
preview.open();
|
||||
preview.write(editor.getValue());
|
||||
preview.close();
|
||||
}
|
||||
setTimeout(updatePreview, 300);
|
||||
|
Reference in New Issue
Block a user