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-04-28 22:29:59 -07:00
|
|
|
|
.panel.panel-info
|
|
|
|
|
.panel-heading.text-center
|
|
|
|
|
h1 Challenge Map
|
|
|
|
|
.panel-body
|
|
|
|
|
if (Math.random() > 0.99)
|
|
|
|
|
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner-dino.png')
|
|
|
|
|
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-05-31 11:27:16 -07:00
|
|
|
|
.hidden-xs.col-sm-3.col-md-2
|
|
|
|
|
span.negative-10
|
2015-05-31 02:01:55 -07:00
|
|
|
|
.col-xs-12.col-sm-9.col-md-10
|
2015-05-31 11:27:16 -07:00
|
|
|
|
li.large-p.negative-10
|
|
|
|
|
a(href='#' + challengeBlock.dashedName)= challengeBlock.name
|
|
|
|
|
|
|
|
|
|
.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
|
|
|
|
|
if completedChallengeList.indexOf(challenge._id) > -1
|
|
|
|
|
.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
|
|
|
|
|
a(href="/challenges/#{challenge.name}")= challenge.name
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
a(href="/challenges/#{challenge.name}")= challenge.name
|
2015-04-23 23:46:58 -07:00
|
|
|
|
|
2015-05-21 23:55:47 -07:00
|
|
|
|
#announcementModal.modal(tabindex='-1')
|
|
|
|
|
.modal-dialog.animated.fadeInUp.fast-animation
|
|
|
|
|
.modal-content
|
2015-05-28 01:32:56 -07:00
|
|
|
|
.modal-header.challenge-list-header We're adding new languages!
|
2015-05-21 23:55:47 -07:00
|
|
|
|
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
|
|
|
|
|
.modal-body
|
2015-05-28 01:32:56 -07:00
|
|
|
|
.spacer
|
|
|
|
|
h4.text-left 我們正在研究將Free Code Camp翻成中文!  
|
|
|
|
|
a(href='https://freecode.slack.com/messages/chinese') 請按這裡來參觀我們的中文聊天室
|
|
|
|
|
| .
|
|
|
|
|
h4.text-left Estamos trabajando a traducir Free Code Camp en español!  
|
2015-05-28 08:58:01 -07:00
|
|
|
|
a(href='https://freecode.slack.com/messages/espanol') Haz clic aquí para ir a nuestra sala de chat español
|
2015-05-28 01:32:56 -07:00
|
|
|
|
| .
|
|
|
|
|
h4.text-left Nós estamos trabalhando para traduzir o Free Code Camp para o Português!  
|
|
|
|
|
a(href='https://freecode.slack.com/messages/portugues') Clique aqui para visitar nossa sala de bate-papo em Português
|
|
|
|
|
| .
|
|
|
|
|
h4.text-left Nous travaillons pour traduire Free Code Camp en Français!  
|
|
|
|
|
a(href='https://freecode.slack.com/messages/francais') Cliquez ici pour visiter notre salle de chat Français
|
|
|
|
|
| .
|
|
|
|
|
h4.text-left Мы работаем над переводом Free Code Camp на русский язык!  
|
|
|
|
|
a(href='https://freecode.slack.com/messages/russian') Нажмите здесь, чтобы посетить русский чат
|
|
|
|
|
| .
|
2015-05-21 23:55:47 -07:00
|
|
|
|
a.btn.btn-lg.btn-primary.btn-block(href='#', data-dismiss='modal', aria-hidden='true') Thanks for the heads-up!
|
|
|
|
|
script.
|
|
|
|
|
$(document).ready(function () {
|
2015-05-28 01:32:56 -07:00
|
|
|
|
if (!localStorage || !localStorage.multiLingual) {
|
2015-05-21 23:55:47 -07:00
|
|
|
|
$('#announcementModal').modal('show');
|
2015-05-28 01:32:56 -07:00
|
|
|
|
localStorage.multiLingual = "true";
|
2015-05-21 23:55:47 -07:00
|
|
|
|
}
|
|
|
|
|
});
|