2015-04-03 20:05:53 -07:00
|
|
|
|
extends ../layout
|
|
|
|
|
block content
|
2015-05-20 13:07:41 -04:00
|
|
|
|
script.
|
|
|
|
|
var completedChallenges = !{JSON.stringify(completedChallengeList)};
|
2015-06-01 23:27:33 -07:00
|
|
|
|
var challengeList = !{JSON.stringify(challengeList)};
|
2015-04-28 22:29:59 -07:00
|
|
|
|
.panel.panel-info
|
|
|
|
|
.panel-heading.text-center
|
|
|
|
|
h1 Challenge Map
|
|
|
|
|
.panel-body
|
2015-06-04 23:50:59 -07:00
|
|
|
|
if (Math.random() > 0.999)
|
2015-04-28 22:29:59 -07:00
|
|
|
|
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner-dino.png')
|
2015-06-04 23:50:59 -07:00
|
|
|
|
audio(autoplay src='https://s3.amazonaws.com/freecodecamp/t-rex-roar.mp3')
|
2015-04-28 22:29:59 -07:00
|
|
|
|
else
|
|
|
|
|
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner.png')
|
2015-05-24 23:51:56 -07:00
|
|
|
|
.col-xs-12.col-md-10.col-md-offset-1
|
2015-04-28 22:29:59 -07:00
|
|
|
|
h2.text-center
|
|
|
|
|
span.text-primary #{camperCount}  
|
|
|
|
|
| campers have joined our community
|
|
|
|
|
br
|
|
|
|
|
| since we launched  
|
|
|
|
|
span.text-primary #{daysRunning}  
|
|
|
|
|
| days ago.
|
2015-05-24 23:51:56 -07:00
|
|
|
|
.spacer
|
2015-05-31 11:27:16 -07:00
|
|
|
|
.row
|
|
|
|
|
.col-xs-12.col-sm-8.col-sm-offset-2
|
|
|
|
|
h3 800 Hours of Practice:
|
|
|
|
|
ol
|
|
|
|
|
for challengeBlock in challengeList
|
2015-05-25 17:09:49 -07:00
|
|
|
|
.row
|
2015-06-01 23:27:33 -07:00
|
|
|
|
if (user)
|
|
|
|
|
if (challengeBlock.completed.length === challengeBlock.challenges.length)
|
|
|
|
|
.hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.large-p.negative-10
|
2015-06-01 23:34:14 -07:00
|
|
|
|
.col-xs-12.col-sm-9.col-md-10
|
|
|
|
|
li.large-p.faded.negative-10
|
|
|
|
|
a(href='#' + challengeBlock.dashedName)= challengeBlock.name
|
2015-06-01 23:27:33 -07:00
|
|
|
|
else
|
|
|
|
|
.hidden-xs.col-sm-3.col-md-2
|
|
|
|
|
.progress.progress-bar-padding.text-center.thin-progress-bar
|
|
|
|
|
.progress-bar(role='progressbar', aria-valuenow=((challengeBlock.completed.length / challengeBlock.challenges.length) * 100), aria-valuemin='0', aria-valuemax='100', style='width: ' + ((challengeBlock.completed.length / challengeBlock.challenges.length) * 100) + '%;')
|
2015-06-01 23:34:14 -07:00
|
|
|
|
.col-xs-12.col-sm-9.col-md-10
|
|
|
|
|
li.large-p.negative-10
|
|
|
|
|
a(href='#' + challengeBlock.dashedName)= challengeBlock.name
|
2015-06-01 23:27:33 -07:00
|
|
|
|
else
|
|
|
|
|
.hidden-xs.col-sm-3
|
|
|
|
|
span.negative-10
|
2015-06-01 23:34:14 -07:00
|
|
|
|
.col-xs-12.col-sm-9.col-md-10
|
|
|
|
|
li.large-p.negative-10
|
|
|
|
|
a(href='#' + challengeBlock.dashedName)= challengeBlock.name
|
2015-05-31 11:27:16 -07:00
|
|
|
|
|
|
|
|
|
.row
|
|
|
|
|
.col-xs-12.col-sm-8.col-sm-offset-2.negative-28
|
|
|
|
|
h3 800 Hours of  
|
|
|
|
|
a(href="/nonprofits/directory") Real World Work Experience
|
|
|
|
|
| :
|
|
|
|
|
ol
|
|
|
|
|
.row
|
|
|
|
|
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10
|
|
|
|
|
.col-xs-12.col-sm-9.col-md-10
|
|
|
|
|
li.large-p.negative-10 100-hour Nonprofit Project
|
|
|
|
|
.row
|
|
|
|
|
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10
|
|
|
|
|
.col-xs-12.col-sm-9.col-md-10
|
2015-05-31 13:01:53 -07:00
|
|
|
|
li.large-p.negative-10 200-hour Nonprofit Project #1
|
2015-05-31 11:27:16 -07:00
|
|
|
|
.row
|
|
|
|
|
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10
|
|
|
|
|
.col-xs-12.col-sm-9.col-md-10
|
2015-05-31 13:01:53 -07:00
|
|
|
|
li.large-p.negative-10 200-hour Nonprofit Project #2
|
2015-05-31 11:27:16 -07:00
|
|
|
|
.row
|
|
|
|
|
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.large-p.negative-10
|
|
|
|
|
.col-xs-12.col-sm-9.col-md-10
|
|
|
|
|
li.large-p.negative-10 300-hour Nonprofit Project
|
2015-05-31 12:32:09 -07:00
|
|
|
|
hr
|
2015-04-03 20:50:27 -07:00
|
|
|
|
|
2015-05-31 02:01:55 -07:00
|
|
|
|
for challengeBlock in challengeList
|
|
|
|
|
.row
|
2015-05-31 11:27:16 -07:00
|
|
|
|
a(href='#' name=challengeBlock.dashedName)
|
2015-05-31 02:01:55 -07:00
|
|
|
|
.spacer.negative-55
|
|
|
|
|
|
|
|
|
|
.row
|
|
|
|
|
.col-xs-12.col-sm-8.col-sm-offset-2
|
|
|
|
|
h3 #{challengeBlock.name}
|
2015-05-25 17:09:49 -07:00
|
|
|
|
.row
|
|
|
|
|
.col-xs-12
|
2015-05-31 02:01:55 -07:00
|
|
|
|
ol
|
|
|
|
|
for challenge in challengeBlock.challenges
|
2015-06-15 20:53:43 -04:00
|
|
|
|
if completedChallengeList.indexOf(challenge.id || challenge._id) > -1
|
2015-05-31 02:01:55 -07:00
|
|
|
|
.row
|
|
|
|
|
.hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.large-p.negative-10
|
|
|
|
|
.col-xs-12.col-sm-9.col-md-10
|
|
|
|
|
li.faded.large-p.negative-10
|
2015-06-15 08:01:43 -04:00
|
|
|
|
a(href="/challenges/#{challenge.dashedName}")= challenge.name
|
2015-05-31 02:01:55 -07:00
|
|
|
|
|
|
|
|
|
else
|
|
|
|
|
.row
|
|
|
|
|
.hidden-xs.col-sm-3.col-md-2
|
|
|
|
|
span.negative-10
|
|
|
|
|
.col-xs-12.col-sm-9.col-md-10
|
|
|
|
|
li.large-p.negative-10
|
2015-06-15 08:01:43 -04:00
|
|
|
|
a(href="/challenges/#{challenge.dashedName}")= challenge.name
|
2015-04-23 23:46:58 -07:00
|
|
|
|
|
2015-06-11 15:01:21 -07:00
|
|
|
|
#announcementModal.modal(tabindex='-1')
|
|
|
|
|
.modal-dialog.animated.fadeInUp.fast-animation
|
|
|
|
|
.modal-content
|
2015-06-11 15:46:41 -07:00
|
|
|
|
.modal-header.challenge-list-header Add us to your LinkedIn profile
|
2015-06-11 15:01:21 -07:00
|
|
|
|
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
|
|
|
|
|
.modal-body
|
|
|
|
|
h3.text-left LinkedIn now recognizes Free Code Camp as a university.
|
2015-06-11 15:46:41 -07:00
|
|
|
|
img.img-responsive.img-center(src='https://www.evernote.com/l/AHTzkHwtg-BHj57bqqDL7WFF8WgrI5V8cxwB/image.png')
|
|
|
|
|
h3.text-left It takes less than a minute to add Free Code Camp to your LinkedIn profile.
|
|
|
|
|
a.btn.btn-lg.btn-info.btn-block(name='_csrf', value=_csrf, aria-hidden='true', href='/linkedin', target='_blank') Show me how to do this
|
|
|
|
|
a.btn.btn-lg.btn-primary.btn-block(href='#', data-dismiss='modal', aria-hidden='true') Thanks for the heads-up
|
2015-06-11 15:01:21 -07:00
|
|
|
|
script.
|
|
|
|
|
$(document).ready(function () {
|
|
|
|
|
if (!localStorage || !localStorage.linkedIn) {
|
|
|
|
|
$('#announcementModal').modal('show');
|
|
|
|
|
localStorage.linkedIn = "true";
|
|
|
|
|
}
|
|
|
|
|
});
|