Refactor(views): remove old challenge/map jade files
This commit is contained in:
@ -1,101 +0,0 @@
|
|||||||
extends ../layout-wide
|
|
||||||
block content
|
|
||||||
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')
|
|
||||||
link(rel='stylesheet', href='/css/ubuntu.css')
|
|
||||||
include ../partials/flyer
|
|
||||||
.row
|
|
||||||
.col-md-4
|
|
||||||
.scroll-locker(id = "scroll-locker")
|
|
||||||
.innerMarginFix(style=' width: 99%')
|
|
||||||
#testCreatePanel
|
|
||||||
h4.text-center.challenge-instructions-title= name
|
|
||||||
if (isCompleted)
|
|
||||||
|
|
|
||||||
i.ion-checkmark-circled.text-primary(title="Completed")
|
|
||||||
hr
|
|
||||||
.row
|
|
||||||
.col-xs-12
|
|
||||||
.challenge-instructions
|
|
||||||
for sentence in description
|
|
||||||
if (/blockquote|h4|table/.test(sentence))
|
|
||||||
!=sentence
|
|
||||||
else
|
|
||||||
p.wrappable!= sentence
|
|
||||||
if (MDNlinks.length)
|
|
||||||
#MDN-links
|
|
||||||
p Here are some helpful links:
|
|
||||||
for link, index in MDNlinks
|
|
||||||
ul: li: a(href=""+link, target="_blank") !{MDNkeys[index]}
|
|
||||||
.button-spacer
|
|
||||||
if (user)
|
|
||||||
button.btn.btn-primary.btn-block.btn-lg#submitButton
|
|
||||||
| Run tests (ctrl + enter)
|
|
||||||
.button-spacer
|
|
||||||
.btn-group.input-group.btn-group-justified
|
|
||||||
.btn-group
|
|
||||||
button.btn.btn-primary.btn-primary-ghost.btn-lg#trigger-reset-modal
|
|
||||||
| Reset
|
|
||||||
.btn-group
|
|
||||||
button.btn.btn-primary.btn-primary-ghost.btn-lg#challenge-help-btn
|
|
||||||
| Help
|
|
||||||
.btn-group
|
|
||||||
button.btn.btn-primary.btn-primary-ghost.btn-lg#trigger-issue-modal
|
|
||||||
| Bug
|
|
||||||
if (!user)
|
|
||||||
.button-spacer
|
|
||||||
a.btn.signup-btn.btn-block.btn-block(href='/login') Sign in so you can save your progress
|
|
||||||
script.
|
|
||||||
var userLoggedIn = false;
|
|
||||||
.button-spacer
|
|
||||||
form.code
|
|
||||||
.form-group.codeMirrorView
|
|
||||||
textarea#codeOutput(style='display: none;')
|
|
||||||
br
|
|
||||||
#testSuite
|
|
||||||
br
|
|
||||||
|
|
||||||
.col-md-8
|
|
||||||
.editorScrollDiv(style = "overflow-y: auto; overflow-x: hidden;")
|
|
||||||
#mainEditorPanel
|
|
||||||
form.code
|
|
||||||
.form-group.codeMirrorView
|
|
||||||
textarea#codeEditor(autofocus=true, style='display: none;')
|
|
||||||
|
|
||||||
|
|
||||||
#complete-courseware-dialog.modal(tabindex='-1')
|
|
||||||
.modal-dialog.animated.fadeIn.fast-animation
|
|
||||||
.modal-content
|
|
||||||
.modal-header.challenge-list-header= compliment
|
|
||||||
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
|
|
||||||
.modal-body
|
|
||||||
.text-center
|
|
||||||
#checkmark-container.row
|
|
||||||
#challenge-checkmark.animated.zoomInDown.delay-half
|
|
||||||
span.completion-icon.ion-checkmark-circled.text-primary
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
if (user)
|
|
||||||
#submit-challenge.animated.fadeIn.btn.btn-lg.btn-primary.btn-block Submit and go to my next challenge (ctrl + enter)
|
|
||||||
else
|
|
||||||
a#next-challenge.btn.btn-lg.btn-primary.btn-block(href="/challenges/next-challenge?id="+id) Go to my next challenge (ctrl + enter)
|
|
||||||
include ../partials/challenge-modals
|
|
||||||
script(type="text/javascript").
|
|
||||||
var common = window.common = window.common || { init: [] };
|
|
||||||
|
|
||||||
common.tests = !{JSON.stringify(tests)};
|
|
||||||
common.head = !{JSON.stringify(head)};
|
|
||||||
common.tail = !{JSON.stringify(tail)};
|
|
||||||
|
|
||||||
common.challengeId = !{JSON.stringify(id)};
|
|
||||||
common.challengeName = !{JSON.stringify(name)};
|
|
||||||
common.challengeSeed = !{JSON.stringify(challengeSeed)};
|
|
||||||
common.challengeType = !{JSON.stringify(challengeType)};
|
|
||||||
common.dashedName = !{JSON.stringify(dashedName)};
|
|
||||||
common.isCompleted = !{JSON.stringify(isCompleted)};
|
|
||||||
common.gaName = !{JSON.stringify(gaName)};
|
|
||||||
|
|
||||||
common.username = !{JSON.stringify(user && user.username || '')};
|
|
||||||
|
|
||||||
include ../partials/challenge-footer
|
|
@ -1,98 +0,0 @@
|
|||||||
extends ../layout-wide
|
|
||||||
block content
|
|
||||||
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')
|
|
||||||
link(rel='stylesheet', href='/css/ubuntu.css')
|
|
||||||
include ../partials/flyer
|
|
||||||
.row
|
|
||||||
.col-md-3.col-lg-3
|
|
||||||
.scroll-locker(id = "scroll-locker")
|
|
||||||
.innerMarginFix(style = "width: 99%;")
|
|
||||||
.row
|
|
||||||
.col-xs-12
|
|
||||||
h4.text-center.challenge-instructions-title= name
|
|
||||||
if (isCompleted)
|
|
||||||
|
|
|
||||||
i.ion-checkmark-circled.text-primary(title="Completed")
|
|
||||||
hr
|
|
||||||
.challenge-instructions
|
|
||||||
for sentence in description
|
|
||||||
if (/\<blockquote|\<h4|\<table/.test(sentence))
|
|
||||||
!=sentence
|
|
||||||
else
|
|
||||||
p.wrappable!= sentence
|
|
||||||
.negative-bottom-margin-30
|
|
||||||
.button-spacer
|
|
||||||
button.btn-big.btn.btn-primary.btn-block#submitButton
|
|
||||||
| Run tests (ctrl + enter)
|
|
||||||
.button-spacer
|
|
||||||
.btn-group.btn-group-justified
|
|
||||||
.btn-group
|
|
||||||
button.btn.btn-primary.btn-primary-ghost.btn-lg#trigger-reset-modal Reset
|
|
||||||
.btn-group
|
|
||||||
button.btn.btn-primary.btn-primary-ghost.btn-lg#challenge-help-btn Help
|
|
||||||
.btn-group
|
|
||||||
button.btn.btn-primary.btn-primary-ghost.btn-lg#trigger-issue-modal Bug
|
|
||||||
script.
|
|
||||||
var userLoggedIn = true;
|
|
||||||
if (!user)
|
|
||||||
.button-spacer
|
|
||||||
a.btn.signup-btn.btn-block.btn-block(href='/signin') Sign in so you can save your progress
|
|
||||||
script.
|
|
||||||
var userLoggedIn = false;
|
|
||||||
.button-spacer
|
|
||||||
#testSuite
|
|
||||||
br
|
|
||||||
.col-md-5.col-lg-6
|
|
||||||
.editorScrollDiv(style = "overflow-y: auto; overflow-x: hidden;")
|
|
||||||
#mainEditorPanel
|
|
||||||
form.code
|
|
||||||
.codeMirrorView
|
|
||||||
textarea#codeEditor(autofocus=true, style='display: none;')
|
|
||||||
.col-md-4.col-lg-3
|
|
||||||
.hidden-xs.hidden-sm
|
|
||||||
img.iphone-position.iframe-scroll(src="https://s3.amazonaws.com/freecodecamp/iphone6-frame.png", style = "z-index: -2;")
|
|
||||||
iframe.iphone.iframe-scroll#preview
|
|
||||||
.spacer
|
|
||||||
#complete-courseware-dialog.modal(tabindex='-1')
|
|
||||||
.modal-dialog.animated.fadeIn.fast-animation
|
|
||||||
.modal-content
|
|
||||||
.modal-header.challenge-list-header
|
|
||||||
= compliment
|
|
||||||
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
|
|
||||||
.modal-body
|
|
||||||
.text-center
|
|
||||||
#checkmark-container.row
|
|
||||||
#challenge-checkmark.animated.zoomInDown.delay-half
|
|
||||||
span.completion-icon.ion-checkmark-circled.text-primary
|
|
||||||
.spacer
|
|
||||||
if(user)
|
|
||||||
button#submit-challenge.animated.fadeIn.btn.btn-lg.btn-primary.btn-block Submit and go to my next challenge (ctrl + enter)
|
|
||||||
else
|
|
||||||
a#next-challenge.btn.btn-lg.btn-primary.btn-block(href="/challenges/next-challenge?id="+id) Go to my next challenge (ctrl + enter)
|
|
||||||
include ../partials/challenge-modals
|
|
||||||
script(type="text/javascript").
|
|
||||||
$('#next-courseware-button').attr('disabled', 'disabled');
|
|
||||||
var common = window.common || { init: [] };
|
|
||||||
|
|
||||||
common.tests = !{JSON.stringify(tests)};
|
|
||||||
common.head = !{JSON.stringify(head)};
|
|
||||||
common.tail = !{JSON.stringify(tail)};
|
|
||||||
|
|
||||||
common.challengeId = !{JSON.stringify(id)};
|
|
||||||
common.challengeName = !{JSON.stringify(name)};
|
|
||||||
common.challengeSeed = !{JSON.stringify(challengeSeed)};
|
|
||||||
common.challengeType = !{JSON.stringify(challengeType)};
|
|
||||||
common.dashedName = !{JSON.stringify(dashedName)};
|
|
||||||
common.isCompleted = !{JSON.stringify(isCompleted)};
|
|
||||||
common.gaName = !{JSON.stringify(gaName)};
|
|
||||||
|
|
||||||
common.username = !{JSON.stringify(user && user.username || '')};
|
|
||||||
|
|
||||||
common.init.push(function() {
|
|
||||||
common.editor.setOption('lint', false);
|
|
||||||
common.editor.setOption('mode', 'text/html');
|
|
||||||
});
|
|
||||||
|
|
||||||
include ../partials/challenge-footer
|
|
@ -1,103 +0,0 @@
|
|||||||
extends ../layout-wide
|
|
||||||
block content
|
|
||||||
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')
|
|
||||||
link(rel='stylesheet', href='/css/ubuntu.css')
|
|
||||||
include ../partials/flyer
|
|
||||||
.row
|
|
||||||
.col-md-4
|
|
||||||
.scroll-locker(id = "scroll-locker")
|
|
||||||
.innerMarginFix(style = "width: 99%;")
|
|
||||||
#testCreatePanel
|
|
||||||
h4.text-center.challenge-instructions-title= name
|
|
||||||
if (isCompleted)
|
|
||||||
|
|
|
||||||
i.ion-checkmark-circled.text-primary(title="Completed")
|
|
||||||
hr
|
|
||||||
.row
|
|
||||||
.col-xs-12
|
|
||||||
.challenge-instructions
|
|
||||||
for sentence in description
|
|
||||||
if (/blockquote|\<ol|h4|\<table/.test(sentence))
|
|
||||||
!=sentence
|
|
||||||
else
|
|
||||||
p.wrappable!= sentence
|
|
||||||
if (MDNlinks.length)
|
|
||||||
.negative-bottom-margin-30
|
|
||||||
#MDN-links
|
|
||||||
p Here are some helpful links:
|
|
||||||
for link, index in MDNlinks
|
|
||||||
ul: li: a(href="" + link, target="_blank") !{MDNkeys[index]}
|
|
||||||
.button-spacer
|
|
||||||
if (user)
|
|
||||||
form.form-horizontal(novalidate='novalidate', name='completedWithForm')
|
|
||||||
.form-group.text-center
|
|
||||||
.col-xs-12
|
|
||||||
// extra field to distract password tools like lastpass from injecting css into our username field
|
|
||||||
button.btn.btn-primary.btn-big.btn-block#submitButton Run tests (ctrl + enter)
|
|
||||||
.button-spacer
|
|
||||||
.btn-group.input-group.btn-group-justified
|
|
||||||
.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
|
|
||||||
if (!user)
|
|
||||||
.button-spacer
|
|
||||||
a.btn.signup-btn.btn-block.btn-block(href='/signin') Sign in so you can save your progress
|
|
||||||
script.
|
|
||||||
var userLoggedIn = false;
|
|
||||||
.button-spacer
|
|
||||||
form.code
|
|
||||||
.form-group.codeMirrorView
|
|
||||||
textarea#codeOutput(style='display: none;')
|
|
||||||
br
|
|
||||||
#testSuite
|
|
||||||
br
|
|
||||||
.col-md-8
|
|
||||||
.editorScrollDiv(style = "overflow-y: auto; overflow-x: hidden;")
|
|
||||||
#mainEditorPanel
|
|
||||||
form.code
|
|
||||||
.codeMirrorView
|
|
||||||
textarea#codeEditor(autofocus=true, style='display: none;')
|
|
||||||
#complete-courseware-dialog.modal(tabindex='-1')
|
|
||||||
.modal-dialog.animated.fadeIn.fast-animation
|
|
||||||
.modal-content
|
|
||||||
.modal-header.challenge-list-header= compliment
|
|
||||||
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
|
|
||||||
.modal-body
|
|
||||||
.text-center
|
|
||||||
#checkmark-container.row
|
|
||||||
#challenge-checkmark.animated.zoomInDown.delay-half
|
|
||||||
span.completion-icon.ion-checkmark-circled.text-primary
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
if (user)
|
|
||||||
button#submit-challenge.animated.fadeIn.btn.btn-lg.btn-primary.btn-block Submit and go to my next challenge (ctrl + enter)
|
|
||||||
else
|
|
||||||
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)
|
|
||||||
include ../partials/challenge-modals
|
|
||||||
script(type="text/javascript").
|
|
||||||
var common = window.common = { init: [] };
|
|
||||||
|
|
||||||
common.tests = !{JSON.stringify(tests)};
|
|
||||||
common.head = !{JSON.stringify(head)};
|
|
||||||
common.tail = !{JSON.stringify(tail)};
|
|
||||||
|
|
||||||
common.challengeId = !{JSON.stringify(id)};
|
|
||||||
common.challengeName = !{JSON.stringify(name)};
|
|
||||||
common.challengeSeed = !{JSON.stringify(challengeSeed)};
|
|
||||||
common.challengeType = !{JSON.stringify(challengeType)};
|
|
||||||
common.dashedName = !{JSON.stringify(dashedName)};
|
|
||||||
common.isCompleted = !{JSON.stringify(isCompleted)};
|
|
||||||
common.gaName = !{JSON.stringify(gaName)};
|
|
||||||
|
|
||||||
common.username = !{JSON.stringify(user && user.username || '')};
|
|
||||||
|
|
||||||
include ../partials/challenge-footer
|
|
||||||
script.
|
|
||||||
common.init.push(function() {
|
|
||||||
common.editor.setOption('mode', 'javascript');
|
|
||||||
});
|
|
@ -1,61 +0,0 @@
|
|||||||
extends ../layout-wide
|
|
||||||
block content
|
|
||||||
include ../partials/flyer
|
|
||||||
.row
|
|
||||||
.col-md-8.col-md-offset-2
|
|
||||||
for step, index in description
|
|
||||||
.challenge-step(class=index !== 0 ? 'hidden': '')
|
|
||||||
a(href=step[0] data-lightbox='img-enlarge')
|
|
||||||
img.gif-block.img-center.img-responsive(src='#{step[0]}' alt='#{step[1]}')
|
|
||||||
.row
|
|
||||||
.spacer
|
|
||||||
.col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2
|
|
||||||
p.challenge-step-description!= step[2]
|
|
||||||
.spacer
|
|
||||||
.challenge-button-block
|
|
||||||
if step[3] == '#'
|
|
||||||
a.btn.btn-block.btn-primary.challenge-step-btn-action.btn-lg(id='#{index}' href='#{step[3]}' target='_blank') Confirm
|
|
||||||
.button-spacer
|
|
||||||
else if step[3]
|
|
||||||
a.btn.btn-block.btn-primary.challenge-step-btn-action.btn-lg(id='#{index}' href='#{step[3]}' target='_blank') Open link in new tab (this unlocks the next step)
|
|
||||||
.button-spacer
|
|
||||||
if index === 0
|
|
||||||
.col-sm-4.hidden-xs
|
|
||||||
else
|
|
||||||
button.btn.btn-primary.btn-primary-ghost.col-sm-4.col-xs-12.challenge-step-btn-prev.btn-lg(id='#{index - 1}') Go to my previous step
|
|
||||||
.challenge-step-counter.large-p.col-sm-4.col-xs-12.text-center (#{index + 1} / #{description.length})
|
|
||||||
if index + 1 === description.length
|
|
||||||
button.btn.btn-primary.col-sm-4.col-xs-12.challenge-step-btn-finish.btn-lg(id='last' class=step[3] && !isCompleted ? 'disabled' : '') Finish challenge
|
|
||||||
else
|
|
||||||
button.btn.btn-primary.col-sm-4.col-xs-12.challenge-step-btn-next.btn-lg(id='#{index}' class=step[3] && !isCompleted ? 'disabled' : '') Go to my next step
|
|
||||||
.clearfix
|
|
||||||
.spacer
|
|
||||||
#challenge-step-modal.modal(tabindex='-1')
|
|
||||||
.modal-dialog.animated.fadeIn.fast-animation
|
|
||||||
.modal-content
|
|
||||||
.modal-header.challenge-list-header= compliment
|
|
||||||
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
|
|
||||||
.modal-body
|
|
||||||
.text-center
|
|
||||||
#checkmark-container.row
|
|
||||||
#challenge-checkmark.animated.zoomInDown.delay-half
|
|
||||||
span.completion-icon.ion-checkmark-circled.text-primary
|
|
||||||
.spacer
|
|
||||||
.row
|
|
||||||
if (user)
|
|
||||||
#challenge-step-btn-submit.animated.fadeIn.btn.btn-lg.btn-primary.btn-block Submit and go to my next challenge
|
|
||||||
else
|
|
||||||
a.btn.btn-lg.btn-primary.btn-block(href='/challenges/next-challenge?id=' + id) Go to my next challenge
|
|
||||||
script.
|
|
||||||
var common = window.common || { init: [] };
|
|
||||||
|
|
||||||
common.challengeId = !{JSON.stringify(id)};
|
|
||||||
common.challengeName = !{JSON.stringify(name)};
|
|
||||||
common.challengeType = !{JSON.stringify(challengeType)};
|
|
||||||
common.dashedName = !{JSON.stringify(dashedName || '')};
|
|
||||||
common.gaName = !{JSON.stringify(gaName)};
|
|
||||||
common.isHonest = !{JSON.stringify(isHonest || false)};
|
|
||||||
common.isFrontEndCert = !{JSON.stringify(isFrontEndCert || false)};
|
|
||||||
common.isFullStackCert = !{JSON.stringify(isFullStackCert || false)};
|
|
||||||
common.challengeSeed = !{JSON.stringify(challengeSeed || [])};
|
|
||||||
include ../partials/challenge-footer
|
|
@ -1,94 +0,0 @@
|
|||||||
extends ../layout-wide
|
|
||||||
block content
|
|
||||||
include ../partials/flyer
|
|
||||||
.row
|
|
||||||
.col-xs-12.col-sm-12.col-md-4
|
|
||||||
h4.text-center.challenge-instructions-title= name
|
|
||||||
if (isCompleted)
|
|
||||||
|
|
|
||||||
i.ion-checkmark-circled.text-primary(title="Completed")
|
|
||||||
hr
|
|
||||||
ol
|
|
||||||
for step, index in description
|
|
||||||
.row.checklist-element(id="#{dashedName + index}")
|
|
||||||
.col-xs-2.col-sm-1.col-md-2.padded-ionic-icon.text-right
|
|
||||||
input(type='checkbox' class='challenge-list-checkbox')
|
|
||||||
.col-xs-10.col-sm-11.col-md-10
|
|
||||||
li.step-text.wrappable!= step
|
|
||||||
.col-xs-12.col-sm-12.col-md-8
|
|
||||||
.embed-responsive.embed-responsive-16by9
|
|
||||||
iframe.embed-responsive-item(src='//www.youtube.com/embed/#{video}?rel=0&showinfo=0')
|
|
||||||
.spacer
|
|
||||||
if (user)
|
|
||||||
a.btn.btn-primary.btn-big.btn-block#completed-courseware-editorless I've completed this challenge (ctrl + enter)
|
|
||||||
else
|
|
||||||
a.btn.btn-big.btn-primary.btn-block(href='/challenges/next-challenge?id=' + id) I've completed this challenge (ctrl + enter)
|
|
||||||
script.
|
|
||||||
var userLoggedIn = true;
|
|
||||||
.button-spacer
|
|
||||||
.btn-group.input-group.btn-group-justified
|
|
||||||
.btn.btn-primary.btn-big#challenge-help-btn Get help
|
|
||||||
.btn.btn-primary.btn-big#trigger-issue-modal Report a bug
|
|
||||||
if (!user)
|
|
||||||
.button-spacer
|
|
||||||
a.btn.btn-big.signup-btn.btn-block(href='/signin') Sign in so you can save your progress
|
|
||||||
script.
|
|
||||||
var userLoggedIn = false;
|
|
||||||
br
|
|
||||||
|
|
||||||
script(type="text/javascript").
|
|
||||||
|
|
||||||
#complete-courseware-editorless-dialog.modal(tabindex='-1')
|
|
||||||
.modal-dialog.animated.fadeIn.fast-animation
|
|
||||||
.modal-content
|
|
||||||
.modal-header.challenge-list-header= compliment
|
|
||||||
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
|
|
||||||
.modal-body
|
|
||||||
.text-center
|
|
||||||
.animated.zoomInDown
|
|
||||||
span.completion-icon.ion-checkmark-circled.text-primary
|
|
||||||
if (user)
|
|
||||||
a.btn.btn-lg.btn-primary.btn-block#next-courseware-button(name='_csrf', value=_csrf) I've completed this challenge (ctrl + enter)
|
|
||||||
else
|
|
||||||
a.animated.fadeIn.btn.btn-lg.btn-primary.btn-block(href='/challenges/next-challenge?id=' + id) I've completed this challenge (ctrl + enter)
|
|
||||||
|
|
||||||
include ../partials/challenge-modals
|
|
||||||
script.
|
|
||||||
var common = window.common || { init: [] };
|
|
||||||
|
|
||||||
common.challengeId = !{JSON.stringify(id)};
|
|
||||||
common.challengeName = !{JSON.stringify(name)};
|
|
||||||
common.challengeType = !{JSON.stringify(challengeType)};
|
|
||||||
common.dashedName = !{JSON.stringify(dashedName)};
|
|
||||||
common.gaName = !{JSON.stringify(gaName)};
|
|
||||||
common.init.push(function($) {
|
|
||||||
function controlEnterHandler(e) {
|
|
||||||
if (
|
|
||||||
e.keyCode === 13 &&
|
|
||||||
(e.ctrlKey || e.metaKey)
|
|
||||||
) {
|
|
||||||
$('body').unbind('keydown');
|
|
||||||
$('#complete-courseware-editorless-dialog').modal('show');
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
function modalControlEnterHandler(e) {
|
|
||||||
if (
|
|
||||||
e.keyCode === 13 &&
|
|
||||||
(e.ctrlKey || e.metaKey)
|
|
||||||
) {
|
|
||||||
$('#complete-courseware-editorless-dialog').unbind('keydown');
|
|
||||||
$('#next-courseware-button').click();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
if (!{JSON.stringify(user && user.username ? true : false)}) {
|
|
||||||
$('#complete-courseware-editorless-dialog').bind('keydown', modalControlEnterHandler);
|
|
||||||
}
|
|
||||||
$('body').bind('keydown', controlEnterHandler);
|
|
||||||
|
|
||||||
$('#completed-courseware-editorless').on('click', function() {
|
|
||||||
$('#complete-courseware-editorless-dialog').modal('show');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
include ../partials/challenge-footer
|
|
@ -1,110 +0,0 @@
|
|||||||
extends ../layout-wide
|
|
||||||
block content
|
|
||||||
include ../partials/flyer
|
|
||||||
.row
|
|
||||||
.col-md-4
|
|
||||||
h4.text-center.challenge-instructions-title= name
|
|
||||||
if (isCompleted)
|
|
||||||
|
|
|
||||||
i.ion-checkmark-circled.text-primary(title="Completed")
|
|
||||||
hr
|
|
||||||
ol
|
|
||||||
for step, index in description
|
|
||||||
.row.checklist-element(id="#{dashedName + index}")
|
|
||||||
.col-xs-3.col-sm-1.col-md-2.padded-ionic-icon.text-center
|
|
||||||
input(type='checkbox' class='challenge-list-checkbox')
|
|
||||||
.col-xs-9.col-sm-11.col-md-10
|
|
||||||
li.step-text.wrappable!= step
|
|
||||||
.col-xs-12.col-sm-12.col-md-8
|
|
||||||
.embed-responsive.embed-responsive-16by9
|
|
||||||
iframe.embed-responsive-item(src='//www.youtube.com/embed/#{video}?rel=0&showinfo=0')
|
|
||||||
br
|
|
||||||
if (user)
|
|
||||||
a.btn.btn-primary.btn-big.btn-block#completed-zipline-or-basejump I've completed this challenge (ctrl + enter)
|
|
||||||
script.
|
|
||||||
var userLoggedIn = true;
|
|
||||||
else
|
|
||||||
a.btn.btn-big.btn-primary.btn-block(href='/challenges/next-challenge?id=' + id) Go to my next challenge (ctrl + enter)
|
|
||||||
.button-spacer
|
|
||||||
.btn-group.input-group.btn-group-justified
|
|
||||||
.btn.btn-primary.btn-primary-ghost.btn-big#challenge-help-btn Help
|
|
||||||
.btn.btn-primary.btn-primary-ghost.btn-big#trigger-issue-modal Bug
|
|
||||||
if (!user)
|
|
||||||
.button-spacer
|
|
||||||
a.btn.btn-big.signup-btn.btn-block(href='/signin') Sign in so you can save your progress
|
|
||||||
script.
|
|
||||||
var userLoggedIn = false;
|
|
||||||
br
|
|
||||||
script(type="text/javascript").
|
|
||||||
|
|
||||||
#complete-zipline-or-basejump-dialog.modal(tabindex='-1')
|
|
||||||
.modal-dialog.animated.fadeIn.fast-animation
|
|
||||||
.modal-content
|
|
||||||
.modal-header.challenge-list-header= compliment
|
|
||||||
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
|
|
||||||
.modal-body
|
|
||||||
.text-center
|
|
||||||
.animated.zoomInDown
|
|
||||||
span.completion-icon.ion-checkmark-circled.text-primary
|
|
||||||
if (user)
|
|
||||||
form.form-horizontal(name='completedWithForm', id='basejump-or-zipline-submit-form')
|
|
||||||
.form-group.text-center
|
|
||||||
.col-xs-10.col-xs-offset-1.col-sm-8.col-sm-offset-2.col-md-8.col-md-offset-2
|
|
||||||
// extra field to distract password tools like lastpass from injecting css into our username field
|
|
||||||
input.form-control.hidden
|
|
||||||
if (challengeType === "3")
|
|
||||||
input.form-control#public-url(type="url", name="solutionUrl", placeholder="http://codepen.io/your-pen-here", autofocus, required)
|
|
||||||
else
|
|
||||||
input.form-control#public-url(type="url", name="solutionUrl", placeholder="http://yourapp.com", autofocus, required)
|
|
||||||
input.form-control#github-url(name="githubUrl", placeholder="http://github.com/camper/project")
|
|
||||||
|
|
||||||
if (user)
|
|
||||||
a.btn.btn-lg.btn-primary.btn-block#next-courseware-button(name='_csrf', value=_csrf) Submit and go to my next challenge
|
|
||||||
else
|
|
||||||
a.btn.btn-lg.btn-primary.btn-block(href='/challenges/next-challenge?id=' + id) Go to my next challenge
|
|
||||||
|
|
||||||
include ../partials/challenge-modals
|
|
||||||
script.
|
|
||||||
var common = window.common || { init: [] };
|
|
||||||
common.challengeId = !{JSON.stringify(id)};
|
|
||||||
common.challengeName = !{JSON.stringify(name)};
|
|
||||||
common.dashedName = !{JSON.stringify(dashedName)};
|
|
||||||
common.gaName = !{JSON.stringify(gaName)};
|
|
||||||
common.challengeType = !{JSON.stringify(challengeType)};
|
|
||||||
|
|
||||||
common.controlEnterHandler = function (e) {
|
|
||||||
$('body').unbind('keydown');
|
|
||||||
if (
|
|
||||||
e.keyCode === 13 &&
|
|
||||||
(e.metaKey || e.ctrlKey)
|
|
||||||
) {
|
|
||||||
$('#complete-zipline-or-basejump-dialog').modal('show');
|
|
||||||
} else {
|
|
||||||
$('body').bind('keydown', common.controlEnterHandler);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
common.modalControlEnterHandler = function (e) {
|
|
||||||
$('#complete-zipline-or-basejump-dialog').unbind('keydown');
|
|
||||||
if (
|
|
||||||
e.keyCode === 13 &&
|
|
||||||
(e.metaKey || e.ctrlKey)
|
|
||||||
) {
|
|
||||||
$('#next-courseware-button').click();
|
|
||||||
} else {
|
|
||||||
$('#complete-zipline-or-basejump-dialog').on('keydown', common.modalControlEnterHandler);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
common.init.push(function() {
|
|
||||||
$('body').on('keydown', common.controlEnterHandler);
|
|
||||||
|
|
||||||
if (!!{ JSON.stringify(user ? true : false)}) {
|
|
||||||
$('#complete-zipline-or-basejump-dialog').on('keydown', common.modalControlEnterHandler);
|
|
||||||
}
|
|
||||||
|
|
||||||
$('#completed-zipline-or-basejump').on('click', function() {
|
|
||||||
$('#complete-zipline-or-basejump-dialog').modal('show');
|
|
||||||
});
|
|
||||||
});
|
|
||||||
include ../partials/challenge-footer
|
|
@ -1,127 +0,0 @@
|
|||||||
extends ../layout-wide
|
|
||||||
block content
|
|
||||||
.mapWrapper
|
|
||||||
.text-center.map-fixed-header
|
|
||||||
p Challenges required for certifications are marked with a *
|
|
||||||
.row.map-buttons
|
|
||||||
button.center-block.btn.btn-block.btn-primary.active#showAll Collapse all challenges
|
|
||||||
.row.map-buttons
|
|
||||||
.input-group
|
|
||||||
input#map-filter.form-control(type="text" placeholder="Type a challenge name" autocomplete="off" value="")
|
|
||||||
span.input-group-addon
|
|
||||||
i.fa.fa-search
|
|
||||||
hr
|
|
||||||
include ../partials/flash
|
|
||||||
#accordion.map-accordion
|
|
||||||
#noneFound No results found. Happy Coding!
|
|
||||||
for superBlock, index in superBlocks
|
|
||||||
h2
|
|
||||||
a(data-toggle='collapse', data-parent='#accordion', href='#collapse'+superBlock.name.split(' ').join('-'))
|
|
||||||
span.no-link-underline
|
|
||||||
i.fa.fa-caret-down
|
|
||||||
| #{superBlock.name}
|
|
||||||
div.margin-left-10(id = 'collapse'+superBlock.name.split(' ').join('-') class = "collapse in map-collapse no-transition certBlock")
|
|
||||||
#nested
|
|
||||||
for challengeBlock in superBlock.blocks
|
|
||||||
h3
|
|
||||||
a(data-toggle='collapse', data-parent='#nested', href='#nested-collapse'+challengeBlock.name.replace(/(\W)/gi, '').split(' ').join('-'))
|
|
||||||
span.no-link-underline
|
|
||||||
i.fa.fa-caret-down
|
|
||||||
| #{challengeBlock.name}
|
|
||||||
span.challengeBlockTime (#{challengeBlock.time})
|
|
||||||
div.margin-left-10(id = "nested-collapse"+challengeBlock.name.replace(/\W/gi, '').split(' ').join('-') class = "collapse in map-collapse no-transition chapterBlock")
|
|
||||||
for challenge in challengeBlock.challenges
|
|
||||||
if challenge.completed
|
|
||||||
p.challenge-title.faded.text-primary.ion-checkmark-circled.padded-ionic-icon.negative-15(name="#{challenge.dashedName}")
|
|
||||||
a(href="#{challenge.url}" target='_parent')
|
|
||||||
= challenge.title
|
|
||||||
span.sr-only= " Complete"
|
|
||||||
span.text-primary    
|
|
||||||
strong *
|
|
||||||
else if challenge.isRequired
|
|
||||||
p.challenge-title.ion-ios-circle-outline.padded-ionic-icon.negative-15(name="#{challenge.dashedName}")
|
|
||||||
a(name="#{challenge.dashedName}" target='_parent' href="#{challenge.url}" class=challenge.isComingSoon ? 'disabled' : '')
|
|
||||||
span= challenge.title
|
|
||||||
span.sr-only= " Incomplete"
|
|
||||||
if challenge.markNew
|
|
||||||
span.text-info.small    
|
|
||||||
strong
|
|
||||||
em New
|
|
||||||
if challengeBlock.isComingSoon
|
|
||||||
span.text-info.small    
|
|
||||||
strong
|
|
||||||
em Coming Soon
|
|
||||||
span.text-primary    
|
|
||||||
strong *
|
|
||||||
else
|
|
||||||
p.challenge-title.ion-ios-circle-outline.padded-ionic-icon.negative-15(name="#{challenge.dashedName}")
|
|
||||||
a(name="#{challenge.dashedName}" target='_parent' href="#{challenge.url}" class=challenge.isComingSoon ? 'disabled' : '')
|
|
||||||
span= challenge.title
|
|
||||||
span.sr-only= " Incomplete"
|
|
||||||
if challenge.markNew
|
|
||||||
span.text-info.small    
|
|
||||||
strong
|
|
||||||
em New
|
|
||||||
if challengeBlock.isComingSoon
|
|
||||||
span.text-info.small    
|
|
||||||
strong
|
|
||||||
em Coming Soon
|
|
||||||
h2
|
|
||||||
a(data-toggle='collapse', data-parent='#accordion', href='#collapse-full-stack-development-certification')
|
|
||||||
span.no-link-underline
|
|
||||||
i.fa.fa-caret-down  
|
|
||||||
| Full Stack Development Certification
|
|
||||||
div.margin-left-10(id = 'collapse-full-stack-development-certification' class = "collapse in map-collapse no-transition certBlock")
|
|
||||||
#nested
|
|
||||||
h3
|
|
||||||
a(data-toggle='collapse', data-parent='#nested', href='#nested-collapse-nonprofit-projects')
|
|
||||||
span.no-link-underline
|
|
||||||
i.fa.fa-caret-down  
|
|
||||||
| Nonprofit Projects
|
|
||||||
span.challengeBlockTime (800 hours)
|
|
||||||
div.margin-left-10(id = "nested-collapse-nonprofit-projects" class = "collapse in map-collapse no-transition chapterBlock")
|
|
||||||
.challengeBlockDescription To qualify for these nonprofit projects, you must first earn all three foundational certifications: Front End, Data Visualization, and Back End
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Greenfield Nonprofit Project #1") Greenfield Nonprofit Project #1
|
|
||||||
span.text-primary    
|
|
||||||
strong *
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Greenfield Nonprofit Project #2") Greenfield Nonprofit Project #2
|
|
||||||
span.text-primary    
|
|
||||||
strong *
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Legacy Code Nonprofit Project #1") Legacy Code Nonprofit Project #1
|
|
||||||
span.text-primary    
|
|
||||||
strong *
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Legacy Code Nonprofit Project #2") Legacy Code Nonprofit Project #2
|
|
||||||
span.text-primary    
|
|
||||||
strong *
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Claim your Full Stack Development Certification") Claim your Full Stack Development Certification
|
|
||||||
h2
|
|
||||||
a(data-toggle='collapse', data-parent='#accordion', href='#collapse-coding-interview-preparation')
|
|
||||||
span.no-link-underline
|
|
||||||
i.fa.fa-caret-down  
|
|
||||||
| Coding Interview Preparation
|
|
||||||
div.margin-left-10(id = 'collapse-coding-interview-preparation' class = "collapse in map-collapse no-transition certBlock")
|
|
||||||
#nested
|
|
||||||
h3
|
|
||||||
a(data-toggle='collapse', data-parent='#nested', href='#nested-collapse-coding-interview-training')
|
|
||||||
span.no-link-underline
|
|
||||||
i.fa.fa-caret-down  
|
|
||||||
| Coding Interview Training
|
|
||||||
span.challengeBlockTime (70 hours)
|
|
||||||
div.margin-left-10(id = "nested-collapse-coding-interview-training" class = "collapse in map-collapse no-transition chapterBlock")
|
|
||||||
.challengeBlockDescription To qualify for this coding interview training, you must first earn all four certifications: Front End, Data Visualization, Back End, and Full Stack
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Soft Skill Training") Soft Skill Training
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Critical Thinking Training") Critical Thinking Training
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Whiteboard Coding Training") Whiteboard Coding Training
|
|
||||||
h3
|
|
||||||
a(data-toggle='collapse', data-parent='#nested', href='#nested-collapse-mock-interviews')
|
|
||||||
span.no-link-underline
|
|
||||||
i.fa.fa-caret-down  
|
|
||||||
| Mock Interviews
|
|
||||||
span.challengeBlockTime (10 hours)
|
|
||||||
div.margin-left-10(id = "nested-collapse-mock-interviews" class = "collapse in map-collapse no-transition chapterBlock")
|
|
||||||
.challengeBlockDescription To qualify for these mock interviews, you must first earn all four certifications: Front End, Data Visualization, Back End, and Full Stack
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Mock Interview #1") Mock Interview #1
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Mock Interview #2") Mock Interview #2
|
|
||||||
p.challenge-title.disabled.text-primary.ion-locked.padded-ionic-icon.negative-15(name="Mock Interview #3") Mock Interview #3
|
|
||||||
.spacer
|
|
||||||
include ../partials/flash
|
|
Reference in New Issue
Block a user