2015-02-14 01:55:49 +00:00
|
|
|
|
extends ../layout-wide
|
|
|
|
|
block content
|
2015-11-24 23:01:22 +00:00
|
|
|
|
link(rel='stylesheet', href='/bower_components/CodeMirror/lib/codemirror.css')
|
|
|
|
|
link(rel='stylesheet', href='/bower_components/CodeMirror/addon/lint/lint.css')
|
|
|
|
|
link(rel='stylesheet', href='/bower_components/CodeMirror/theme/monokai.css')
|
2015-09-17 07:06:01 +00:00
|
|
|
|
link(rel='stylesheet', href='/css/ubuntu.css')
|
2016-04-15 02:49:19 +00:00
|
|
|
|
include ../partials/flyer
|
2015-12-05 02:24:09 +00:00
|
|
|
|
.row
|
2016-06-29 19:30:58 +00:00
|
|
|
|
.col-md-4
|
2015-08-25 21:25:00 +00:00
|
|
|
|
.scroll-locker(id = "scroll-locker")
|
|
|
|
|
.innerMarginFix(style = "width: 99%;")
|
2016-01-10 04:12:32 +00:00
|
|
|
|
#testCreatePanel
|
2016-02-04 16:24:09 +00:00
|
|
|
|
h4.text-center.challenge-instructions-title= name
|
2016-01-02 11:50:28 +00:00
|
|
|
|
if (isCompleted)
|
|
|
|
|
|
|
|
|
|
|
i.ion-checkmark-circled.text-primary(title="Completed")
|
2016-01-10 04:12:32 +00:00
|
|
|
|
hr
|
2015-08-25 21:25:00 +00:00
|
|
|
|
.row
|
2015-07-02 20:32:20 +00:00
|
|
|
|
.col-xs-12
|
2016-02-04 16:24:09 +00:00
|
|
|
|
.challenge-instructions
|
2016-01-12 06:47:49 +00:00
|
|
|
|
for sentence in description
|
2016-02-18 17:31:22 +00:00
|
|
|
|
if (/blockquote|\<ol|h4|\<table/.test(sentence))
|
2015-12-22 21:27:17 +00:00
|
|
|
|
!=sentence
|
|
|
|
|
else
|
2016-01-15 07:06:06 +00:00
|
|
|
|
p.wrappable!= sentence
|
2016-01-13 10:25:49 +00:00
|
|
|
|
if (MDNlinks.length)
|
2015-08-25 21:25:00 +00:00
|
|
|
|
.negative-bottom-margin-30
|
|
|
|
|
#MDN-links
|
2016-01-15 07:06:06 +00:00
|
|
|
|
p Here are some helpful links:
|
2015-08-25 21:25:00 +00:00
|
|
|
|
for link, index in MDNlinks
|
2016-01-15 07:06:06 +00:00
|
|
|
|
ul: li: a(href="" + link, target="_blank") !{MDNkeys[index]}
|
2016-01-12 00:25:20 +00:00
|
|
|
|
.button-spacer
|
2015-08-25 21:25:00 +00:00
|
|
|
|
if (user)
|
|
|
|
|
form.form-horizontal(novalidate='novalidate', name='completedWithForm')
|
2016-01-15 07:06:06 +00:00
|
|
|
|
.form-group.text-center
|
2015-08-25 21:25:00 +00:00
|
|
|
|
.col-xs-12
|
|
|
|
|
// extra field to distract password tools like lastpass from injecting css into our username field
|
2016-05-12 23:26:29 +00:00
|
|
|
|
button.btn.btn-primary.btn-big.btn-block#submitButton Run tests (ctrl + enter)
|
2015-08-25 21:25:00 +00:00
|
|
|
|
.button-spacer
|
|
|
|
|
.btn-group.input-group.btn-group-justified
|
2016-05-12 23:26:29 +00:00
|
|
|
|
.btn-group
|
|
|
|
|
button.btn.btn-primary.btn-lg#trigger-reset-modal Reset
|
|
|
|
|
.btn-group
|
|
|
|
|
button.btn.btn-primary.btn-lg#challenge-help-btn Help
|
|
|
|
|
.btn-group
|
|
|
|
|
button.btn.btn-primary.btn-lg#trigger-issue-modal Bug
|
2015-09-10 02:51:24 +00:00
|
|
|
|
if (!user)
|
|
|
|
|
.button-spacer
|
2016-05-03 15:06:20 +00:00
|
|
|
|
a.btn.signup-btn.btn-block.btn-block(href='/signin') Sign in so you can save your progress
|
2015-09-10 02:51:24 +00:00
|
|
|
|
script.
|
|
|
|
|
var userLoggedIn = false;
|
2015-08-25 21:25:00 +00:00
|
|
|
|
.button-spacer
|
|
|
|
|
form.code
|
|
|
|
|
.form-group.codeMirrorView
|
|
|
|
|
textarea#codeOutput(style='display: none;')
|
|
|
|
|
br
|
2016-01-15 07:06:06 +00:00
|
|
|
|
#testSuite
|
2015-08-25 21:25:00 +00:00
|
|
|
|
br
|
2016-06-29 19:30:58 +00:00
|
|
|
|
.col-md-8
|
2015-08-01 19:22:02 +00:00
|
|
|
|
.editorScrollDiv(style = "overflow-y: auto; overflow-x: hidden;")
|
2015-08-01 18:55:40 +00:00
|
|
|
|
#mainEditorPanel
|
|
|
|
|
form.code
|
|
|
|
|
.codeMirrorView
|
|
|
|
|
textarea#codeEditor(autofocus=true, style='display: none;')
|
2015-02-14 01:55:49 +00:00
|
|
|
|
#complete-courseware-dialog.modal(tabindex='-1')
|
2015-09-10 01:55:20 +00:00
|
|
|
|
.modal-dialog.animated.fadeIn.fast-animation
|
2015-02-14 01:55:49 +00:00
|
|
|
|
.modal-content
|
|
|
|
|
.modal-header.challenge-list-header= compliment
|
2015-07-10 17:12:53 +00:00
|
|
|
|
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
|
2015-07-06 00:15:54 +00:00
|
|
|
|
.modal-body
|
2015-02-14 01:55:49 +00:00
|
|
|
|
.text-center
|
2015-08-26 22:17:19 +00:00
|
|
|
|
#checkmark-container.row
|
|
|
|
|
#challenge-checkmark.animated.zoomInDown.delay-half
|
|
|
|
|
span.completion-icon.ion-checkmark-circled.text-primary
|
|
|
|
|
.spacer
|
|
|
|
|
.row
|
|
|
|
|
if (user)
|
2016-05-12 23:26:29 +00:00
|
|
|
|
button#submit-challenge.animated.fadeIn.btn.btn-lg.btn-primary.btn-block Submit and go to my next challenge (ctrl + enter)
|
2015-08-26 22:17:19 +00:00
|
|
|
|
else
|
2016-01-12 06:47:49 +00:00
|
|
|
|
a#next-challenge.animated.fadeIn.btn.btn-lg.btn-primary.btn-block(href="/challenges/next-challenge?id="+id) Go to my next challenge (ctrl + enter)
|
2015-05-28 21:29:45 +00:00
|
|
|
|
include ../partials/challenge-modals
|
2015-11-07 00:35:57 +00:00
|
|
|
|
script(type="text/javascript").
|
|
|
|
|
var common = window.common = { init: [] };
|
|
|
|
|
|
|
|
|
|
common.tests = !{JSON.stringify(tests)};
|
|
|
|
|
common.head = !{JSON.stringify(head)};
|
|
|
|
|
common.tail = !{JSON.stringify(tail)};
|
|
|
|
|
|
2016-01-12 06:47:49 +00:00
|
|
|
|
common.challengeId = !{JSON.stringify(id)};
|
2015-11-07 00:35:57 +00:00
|
|
|
|
common.challengeName = !{JSON.stringify(name)};
|
|
|
|
|
common.challengeSeed = !{JSON.stringify(challengeSeed)};
|
|
|
|
|
common.challengeType = !{JSON.stringify(challengeType)};
|
|
|
|
|
common.dashedName = !{JSON.stringify(dashedName)};
|
2016-01-02 11:50:28 +00:00
|
|
|
|
common.isCompleted = !{JSON.stringify(isCompleted)};
|
2016-01-30 08:13:41 +00:00
|
|
|
|
common.gaName = !{JSON.stringify(gaName)};
|
2015-11-07 00:35:57 +00:00
|
|
|
|
|
2016-01-11 00:54:26 +00:00
|
|
|
|
common.username = !{JSON.stringify(user && user.username || '')};
|
|
|
|
|
|
2015-11-07 00:35:57 +00:00
|
|
|
|
include ../partials/challenge-footer
|
2015-07-06 00:15:54 +00:00
|
|
|
|
script.
|
2015-11-24 23:01:22 +00:00
|
|
|
|
common.init.push(function() {
|
|
|
|
|
common.editor.setOption('mode', 'javascript');
|
|
|
|
|
});
|