Refactor(views): remove old challenge/map jade files

This commit is contained in:
Berkeley Martinez
2016-06-27 19:21:26 -07:00
parent 4815f98e8c
commit 2461530944
7 changed files with 0 additions and 694 deletions

View File

@ -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

View File

@ -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

View File

@ -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)
| &nbsp;
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');
});

View File

@ -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 &nbsp;
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

View File

@ -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)
| &nbsp;
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&amp;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

View File

@ -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)
| &nbsp;
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&amp;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

View File

@ -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 &thinsp; &thinsp;
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 &thinsp; &thinsp;
strong
em New
if challengeBlock.isComingSoon
span.text-info.small &thinsp; &thinsp;
strong
em Coming Soon
span.text-primary &thinsp; &thinsp;
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 &thinsp; &thinsp;
strong
em New
if challengeBlock.isComingSoon
span.text-info.small &thinsp; &thinsp;
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 &thinsp;
| 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 &thinsp;
| 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 &thinsp; &thinsp;
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 &thinsp; &thinsp;
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 &thinsp; &thinsp;
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 &thinsp; &thinsp;
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 &thinsp;
| 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 &thinsp;
| 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 &thinsp;
| 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