start simplifying views
This commit is contained in:
committed by
Berkeley Martinez
parent
b157fa3095
commit
4101a6c34a
@ -26,7 +26,7 @@
|
||||
//## Settings for some of the most global styles.
|
||||
|
||||
//** Background color for `<body>`.
|
||||
@body-bg: #457E86;
|
||||
@body-bg: #fefefe;
|
||||
//** Global text color on `<body>`.
|
||||
@text-color: @gray-dark;
|
||||
|
||||
|
@ -42,13 +42,17 @@ html {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
input[type=checkbox] {
|
||||
/* Double-sized Checkboxes */
|
||||
-ms-transform: scale(2); /* IE */
|
||||
-moz-transform: scale(2); /* FF */
|
||||
-webkit-transform: scale(2); /* Safari and Chrome */
|
||||
-o-transform: scale(2); /* Opera */
|
||||
padding: 10px;
|
||||
//input[type=checkbox] {
|
||||
// /* Double-sized Checkboxes */
|
||||
// -ms-transform: scale(2); /* IE */
|
||||
// -moz-transform: scale(2); /* FF */
|
||||
// -webkit-transform: scale(2); /* Safari and Chrome */
|
||||
// -o-transform: scale(2); /* Opera */
|
||||
// padding: 10px;
|
||||
//}
|
||||
|
||||
.btn-group {
|
||||
border-color: @brand-primary;
|
||||
}
|
||||
|
||||
body.full-screen-body-background {
|
||||
@ -327,13 +331,13 @@ ul {
|
||||
}
|
||||
|
||||
.navbar {
|
||||
background-color: #4a2b0f;
|
||||
background-color: #215f1e;
|
||||
}
|
||||
|
||||
.navbar-nav > li > a {
|
||||
color: @gray-lighter;
|
||||
&:hover {
|
||||
color: #4a2b0f;
|
||||
color: #215f1e;
|
||||
}
|
||||
}
|
||||
|
||||
@ -441,7 +445,7 @@ thead {
|
||||
}
|
||||
|
||||
.navbar-right {
|
||||
background-color: #4a2b0f;
|
||||
background-color: #215f1e;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@ -586,7 +590,7 @@ thead {
|
||||
width: 100%;
|
||||
height: 50px;
|
||||
text-align: center;
|
||||
background-color: #4a2b0f;
|
||||
background-color: #215f1e;
|
||||
padding: 12px;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
@ -601,7 +605,7 @@ thead {
|
||||
padding-top: 14px;
|
||||
padding-bottom: 12px;
|
||||
&:hover {
|
||||
color: #4a2b0f;
|
||||
color: #215f1e;
|
||||
background-color: @gray-lighter;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
@ -4,185 +4,181 @@ block content
|
||||
script.
|
||||
var challengeName = 'Profile View';
|
||||
if (user && user.username === username)
|
||||
.panel.panel-info
|
||||
.panel-heading.text-center Update your code portfolio
|
||||
.panel-body
|
||||
.row
|
||||
.col-xs-12
|
||||
if (!user.isGithubCool)
|
||||
a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/link/github')
|
||||
i.fa.fa-github
|
||||
| Link my GitHub to unlock my portfolio
|
||||
else
|
||||
a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/link/github')
|
||||
i.fa.fa-github
|
||||
| Update my name, username, and location with data from my GitHub account
|
||||
if (!user.twitter)
|
||||
a.btn.btn-lg.btn-block.btn-twitter.btn-link-social(href='/link/twitter')
|
||||
i.fa.fa-twitter
|
||||
| Add my Twitter to my portfolio
|
||||
if (!user.facebook)
|
||||
a.btn.btn-lg.btn-block.btn-facebook.btn-link-social(href='/link/facebook')
|
||||
i.fa.fa-facebook
|
||||
| Add my Facebook to my portfolio
|
||||
if (!user.linkedin)
|
||||
a.btn.btn-lg.btn-block.btn-linkedin.btn-link-social(href='/link/linkedin')
|
||||
i.fa.fa-linkedin
|
||||
| Add my LinkedIn to my portfolio
|
||||
if (!user.google)
|
||||
a.btn.btn-lg.btn-block.btn-google-plus.btn-link-social(href='/link/google')
|
||||
i.fa.fa-google-plus
|
||||
| Add my Google+ to my portfolio
|
||||
h1.text-center Update your code portfolio
|
||||
.row
|
||||
.col-xs-12
|
||||
if (!user.isGithubCool)
|
||||
a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/link/github')
|
||||
i.fa.fa-github
|
||||
| Link my GitHub to unlock my portfolio
|
||||
else
|
||||
a.btn.btn-lg.btn-block.btn-github.btn-link-social(href='/link/github')
|
||||
i.fa.fa-github
|
||||
| Update my portfolio from GitHub
|
||||
if (!user.twitter)
|
||||
a.btn.btn-lg.btn-block.btn-twitter.btn-link-social(href='/link/twitter')
|
||||
i.fa.fa-twitter
|
||||
| Add my Twitter to my portfolio
|
||||
if (!user.facebook)
|
||||
a.btn.btn-lg.btn-block.btn-facebook.btn-link-social(href='/link/facebook')
|
||||
i.fa.fa-facebook
|
||||
| Add my Facebook to my portfolio
|
||||
if (!user.linkedin)
|
||||
a.btn.btn-lg.btn-block.btn-linkedin.btn-link-social(href='/link/linkedin')
|
||||
i.fa.fa-linkedin
|
||||
| Add my LinkedIn to my portfolio
|
||||
if (!user.google)
|
||||
a.btn.btn-lg.btn-block.btn-google-plus.btn-link-social(href='/link/google')
|
||||
i.fa.fa-google-plus
|
||||
| Add my Google+ to my portfolio
|
||||
|
||||
.panel.panel-info
|
||||
.panel-heading.text-center
|
||||
h1 #{username}'s code portfolio
|
||||
.panel-body
|
||||
h1.text-center #{username}'s code portfolio
|
||||
hr
|
||||
.row
|
||||
.col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2.text-center
|
||||
if picture
|
||||
img.img-center.img-responsive.public-profile-img(src=picture)
|
||||
else
|
||||
img.img-center.img-responsive.public-profile-img(src='https://s3.amazonaws.com/freecodecamp/camper-image-placeholder.png')
|
||||
h1.text-center.negative-5.profile-social-icons
|
||||
if (twitter)
|
||||
a.fa.fa-twitter-square.text-primary(title="@#{username}'s Twitter Profile", href='https://twitter.com/' + twitter, target='_blank')
|
||||
if (github)
|
||||
a.fa.fa-github-square.text-primary(title="@#{username}'s GitHub Profile", href=github, target='_blank')
|
||||
if (linkedin)
|
||||
a.fa.fa-linkedin-square.text-primary(title="@#{username}'s LinkedIn Profile", href=linkedin, target='_blank')
|
||||
if (facebook)
|
||||
a.fa.fa-facebook-square.text-primary(title="@#{username}'s Facebook Profile", href='https://facebook.com/' + facebook, target='_blank')
|
||||
if (google)
|
||||
a.fa.fa-google-plus-square.text-primary(title="@#{username}'s Google Profile", href='https://plus.google.com/' + google, target='_blank')
|
||||
h1.flat-top.wrappable= name
|
||||
h1.flat-top.wrappable= location
|
||||
h1.flat-top.text-primary= "[ " + (progressTimestamps.length) + " ]"
|
||||
if pledge
|
||||
.spacer
|
||||
h4
|
||||
| This camper has committed to giving $#{pledge.amount} to
|
||||
a(href='#{pledge.donateUrl}?ref=freecodecamp.com' target='_blank') #{pledge.displayName}
|
||||
| each month until they have completed their #{pledge.goal}.
|
||||
.spacer
|
||||
if isFrontEndCert
|
||||
a.btn.btn-primary(href='/' + username + '/front-end-certification') View My Front End Development Certification
|
||||
if isDataVisCert
|
||||
.button-spacer
|
||||
a.btn.btn-success(href='/' + username + '/data-visualization-certification') View My Data Visualization Certification
|
||||
if isBackEndCert
|
||||
.button-spacer
|
||||
a.btn.btn-success(href='/' + username + '/back-end-certification') View My Back End Development Certification
|
||||
//if (user && user.username !== username)
|
||||
// a.btn.btn-lg.btn-block.btn-twitter.btn-link-social(href='/leaderboard/add?username=#{username}')
|
||||
// i.fa.fa-plus-square
|
||||
// | Add them to my personal leaderboard
|
||||
.spacer
|
||||
.col-md-12
|
||||
#cal-heatmap.hidden-xs.hidden-sm.d3-centered
|
||||
script.
|
||||
$(document).ready(function () {
|
||||
var cal = new CalHeatMap();
|
||||
var calendar = !{JSON.stringify(calender)};
|
||||
/*
|
||||
var estUTCOffset = -5;
|
||||
// moment returns the utc offset in minutes
|
||||
var userUTCOffset = moment().utcOffset() / 60;
|
||||
var secondsToOffset =
|
||||
(estUTCOffset - userUTCOffset) * 3600;
|
||||
var offsetCalendar = {};
|
||||
for (var prop in calendar) {
|
||||
if (calendar.hasOwnProperty(prop)) {
|
||||
var offsetProp = prop + secondsToOffset;
|
||||
offsetCalendar[offsetProp] = calendar[prop];
|
||||
}
|
||||
}
|
||||
*/
|
||||
cal.init({
|
||||
itemSelector: "#cal-heatmap",
|
||||
domain: "month",
|
||||
subDomain: "x_day",
|
||||
domainGutter: 10,
|
||||
data: calendar,
|
||||
cellSize: 15,
|
||||
align: 'center',
|
||||
cellRadius: 3,
|
||||
cellPadding: 2,
|
||||
tooltip: true,
|
||||
range: 6,
|
||||
start: new Date().setDate(new Date().getDate() - 150),
|
||||
legendColors: ["#cccccc", "#215f1e"],
|
||||
legend: [1, 2, 3],
|
||||
label: {
|
||||
position: "top"
|
||||
}
|
||||
});
|
||||
});
|
||||
.row
|
||||
.col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2.text-center
|
||||
if picture
|
||||
img.img-center.img-responsive.public-profile-img(src=picture)
|
||||
else
|
||||
img.img-center.img-responsive.public-profile-img(src='https://s3.amazonaws.com/freecodecamp/camper-image-placeholder.png')
|
||||
h1.text-center.negative-5.profile-social-icons
|
||||
if (twitter)
|
||||
a.fa.fa-twitter-square.text-primary(title="@#{username}'s Twitter Profile", href='https://twitter.com/' + twitter, target='_blank')
|
||||
if (github)
|
||||
a.fa.fa-github-square.text-primary(title="@#{username}'s GitHub Profile", href=github, target='_blank')
|
||||
if (linkedin)
|
||||
a.fa.fa-linkedin-square.text-primary(title="@#{username}'s LinkedIn Profile", href=linkedin, target='_blank')
|
||||
if (facebook)
|
||||
a.fa.fa-facebook-square.text-primary(title="@#{username}'s Facebook Profile", href='https://facebook.com/' + facebook, target='_blank')
|
||||
if (google)
|
||||
a.fa.fa-google-plus-square.text-primary(title="@#{username}'s Google Profile", href='https://plus.google.com/' + google, target='_blank')
|
||||
h1.flat-top.wrappable= name
|
||||
h1.flat-top.wrappable= location
|
||||
h1.flat-top.text-primary= "[ " + (progressTimestamps.length) + " ]"
|
||||
if pledge
|
||||
.spacer
|
||||
h4
|
||||
| This camper has committed to giving $#{pledge.amount} to
|
||||
a(href='#{pledge.donateUrl}?ref=freecodecamp.com' target='_blank') #{pledge.displayName}
|
||||
| each month until they have completed their #{pledge.goal}.
|
||||
.spacer
|
||||
if isFrontEndCert
|
||||
a.btn.btn-primary(href='/' + username + '/front-end-certification') View My Front End Development Certification
|
||||
if isDataVisCert
|
||||
.button-spacer
|
||||
a.btn.btn-success(href='/' + username + '/data-visualization-certification') View My Data Visualization Certification
|
||||
if isBackEndCert
|
||||
.button-spacer
|
||||
a.btn.btn-success(href='/' + username + '/back-end-certification') View My Back End Development Certification
|
||||
//if (user && user.username !== username)
|
||||
// a.btn.btn-lg.btn-block.btn-twitter.btn-link-social(href='/leaderboard/add?username=#{username}')
|
||||
// i.fa.fa-plus-square
|
||||
// | Add them to my personal leaderboard
|
||||
|
||||
.spacer
|
||||
.col-md-12
|
||||
#cal-heatmap.hidden-xs.hidden-sm.d3-centered
|
||||
script.
|
||||
$(document).ready(function () {
|
||||
var cal = new CalHeatMap();
|
||||
var calendar = !{JSON.stringify(calender)};
|
||||
/*
|
||||
var estUTCOffset = -5;
|
||||
// moment returns the utc offset in minutes
|
||||
var userUTCOffset = moment().utcOffset() / 60;
|
||||
var secondsToOffset =
|
||||
(estUTCOffset - userUTCOffset) * 3600;
|
||||
var offsetCalendar = {};
|
||||
for (var prop in calendar) {
|
||||
if (calendar.hasOwnProperty(prop)) {
|
||||
var offsetProp = prop + secondsToOffset;
|
||||
offsetCalendar[offsetProp] = calendar[prop];
|
||||
}
|
||||
}
|
||||
*/
|
||||
cal.init({
|
||||
itemSelector: "#cal-heatmap",
|
||||
domain: "month",
|
||||
subDomain: "x_day",
|
||||
domainGutter: 10,
|
||||
data: calendar,
|
||||
cellSize: 15,
|
||||
align: 'center',
|
||||
cellRadius: 3,
|
||||
cellPadding: 2,
|
||||
tooltip: true,
|
||||
range: 6,
|
||||
start: new Date().setDate(new Date().getDate() - 150),
|
||||
legendColors: ["#cccccc", "#215f1e"],
|
||||
legend: [1, 2, 3],
|
||||
label: {
|
||||
position: "top"
|
||||
}
|
||||
});
|
||||
});
|
||||
.row
|
||||
.hidden-xs.col-sm-12.text-center
|
||||
.row.text-primary
|
||||
h4.col-sm-6.text-right Longest Streak: #{longestStreak} #{longestStreak === 1 ? ' day' : ' days'}
|
||||
h4.col-sm-6.text-left Current Streak: #{currentStreak} #{currentStreak === 1 ? ' day' : ' days'}
|
||||
.hidden-xs.col-sm-12.text-center
|
||||
.row.text-primary
|
||||
h4.col-sm-6.text-right Longest Streak: #{longestStreak} #{longestStreak === 1 ? ' day' : ' days'}
|
||||
h4.col-sm-6.text-left Current Streak: #{currentStreak} #{currentStreak === 1 ? ' day' : ' days'}
|
||||
|
||||
|
||||
if (user && user.username == username || !isLocked)
|
||||
if (baseAndZip.length > 0)
|
||||
.col-sm-12
|
||||
table.table.table-striped
|
||||
thead
|
||||
tr
|
||||
th.col-xs-6 Projects
|
||||
th.col-xs-3.hidden-xs Completed
|
||||
th.col-xs-3.hidden-xs Link
|
||||
for challenge in baseAndZip
|
||||
tr
|
||||
td.col-xs-4.hidden-xs
|
||||
a(href='/challenges/' + challenge.name, target='_blank')= challenge.name
|
||||
td.col-xs-2.hidden-xs= challenge.completedDate ? moment(challenge.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available'
|
||||
td.col-xs-6.hidden-xs
|
||||
a(href=challenge.solution, target='_blank') View my project
|
||||
td.col-xs-12.visible-xs
|
||||
a(href=challenge.solution, target='_blank')=challenge.name
|
||||
if (bonfires.length > 0)
|
||||
.col-sm-12
|
||||
table.table.table-striped
|
||||
thead
|
||||
tr
|
||||
th.col-xs-6 Bonfires
|
||||
th.col-xs-3.hidden-xs Completed
|
||||
th.col-xs-3.hidden-xs Solution
|
||||
for bonfire in bonfires
|
||||
tr
|
||||
td.col-xs-6.hidden-xs= bonfire.name
|
||||
td.col-xs-3.hidden-xs= bonfire.completedDate ? moment(bonfire.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available'
|
||||
td.col-xs-3.hidden-xs
|
||||
a(href='/challenges/' + bonfire.name + '?solution=' + encodeURIComponent(encodeFcc(bonfire.solution)), target='_blank') View my solution
|
||||
td.col-xs-12.visible-xs
|
||||
a(href='/challenges/' + bonfire.name + '?solution=' + encodeURIComponent(encodeFcc(bonfire.solution)), target='_blank')= bonfire.name
|
||||
if (waypoints.length > 0)
|
||||
.col-sm-12
|
||||
table.table.table-striped
|
||||
thead
|
||||
tr
|
||||
th.col-xs-6 Waypoints
|
||||
th.col-xs-3.hidden-xs Completed
|
||||
th.col-xs-3.hidden-xs Solution
|
||||
for challenge in waypoints
|
||||
tr
|
||||
td.col-xs-6.hidden-xs= challenge.name
|
||||
td.col-xs-3.hidden-xs= challenge.completedDate ?moment(challenge.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available'
|
||||
td.col-xs-3.hidden-xs
|
||||
if (challenge.solution)
|
||||
a(href='/challenges/' + challenge.name + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank') View my solution
|
||||
else
|
||||
a(href='/challenges/' + challenge.name) View this challenge
|
||||
td.col-xs-12.visible-xs
|
||||
if (challenge.solution)
|
||||
a(href='/challenges/' + challenge.name + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank')= challenge.name
|
||||
else
|
||||
a(href='/challenges/' + challenge.name)= challenge.name
|
||||
if (user && user.username == username || !isLocked)
|
||||
if (baseAndZip.length > 0)
|
||||
.col-sm-12
|
||||
table.table.table-striped
|
||||
thead
|
||||
tr
|
||||
th.col-xs-6 Projects
|
||||
th.col-xs-3.hidden-xs Completed
|
||||
th.col-xs-3.hidden-xs Link
|
||||
for challenge in baseAndZip
|
||||
tr
|
||||
td.col-xs-4.hidden-xs
|
||||
a(href='/challenges/' + challenge.name, target='_blank')= challenge.name
|
||||
td.col-xs-2.hidden-xs= challenge.completedDate ? moment(challenge.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available'
|
||||
td.col-xs-6.hidden-xs
|
||||
a(href=challenge.solution, target='_blank') View my project
|
||||
td.col-xs-12.visible-xs
|
||||
a(href=challenge.solution, target='_blank')=challenge.name
|
||||
if (bonfires.length > 0)
|
||||
.col-sm-12
|
||||
table.table.table-striped
|
||||
thead
|
||||
tr
|
||||
th.col-xs-6 Bonfires
|
||||
th.col-xs-3.hidden-xs Completed
|
||||
th.col-xs-3.hidden-xs Solution
|
||||
for bonfire in bonfires
|
||||
tr
|
||||
td.col-xs-6.hidden-xs= bonfire.name
|
||||
td.col-xs-3.hidden-xs= bonfire.completedDate ? moment(bonfire.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available'
|
||||
td.col-xs-3.hidden-xs
|
||||
a(href='/challenges/' + bonfire.name + '?solution=' + encodeURIComponent(encodeFcc(bonfire.solution)), target='_blank') View my solution
|
||||
td.col-xs-12.visible-xs
|
||||
a(href='/challenges/' + bonfire.name + '?solution=' + encodeURIComponent(encodeFcc(bonfire.solution)), target='_blank')= bonfire.name
|
||||
if (waypoints.length > 0)
|
||||
.col-sm-12
|
||||
table.table.table-striped
|
||||
thead
|
||||
tr
|
||||
th.col-xs-6 Waypoints
|
||||
th.col-xs-3.hidden-xs Completed
|
||||
th.col-xs-3.hidden-xs Solution
|
||||
for challenge in waypoints
|
||||
tr
|
||||
td.col-xs-6.hidden-xs= challenge.name
|
||||
td.col-xs-3.hidden-xs= challenge.completedDate ?moment(challenge.completedDate, 'x').format("MMM DD, YYYY") : 'Not Available'
|
||||
td.col-xs-3.hidden-xs
|
||||
if (challenge.solution)
|
||||
a(href='/challenges/' + challenge.name + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank') View my solution
|
||||
else
|
||||
a(href='/challenges/' + challenge.name) View this challenge
|
||||
td.col-xs-12.visible-xs
|
||||
if (challenge.solution)
|
||||
a(href='/challenges/' + challenge.name + '?solution=' + encodeURIComponent(encodeFcc(challenge.solution)), target='_blank')= challenge.name
|
||||
else
|
||||
a(href='/challenges/' + challenge.name)= challenge.name
|
||||
if (user && user.username === username)
|
||||
<<<<<<< b157fa3095437bb5d39b91e23581589744f6aca0
|
||||
.panel.panel-info
|
||||
.panel-heading.text-center Manage your account
|
||||
.panel-body
|
||||
@ -242,3 +238,63 @@ block content
|
||||
button.btn.btn-danger.btn-block(type='submit')
|
||||
span.ion-trash-b
|
||||
| I am 100% sure I want to delete my account and all of my progress
|
||||
=======
|
||||
h1.text-center Manage your account
|
||||
hr
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-warning.btn-link-social(href='/logout')
|
||||
span.ion-android-exit
|
||||
| Sign me out of Free Code Camp
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='mailto:team@freecodecamp.com')
|
||||
span.ion-email
|
||||
| Email us at team@freecodecamp.com
|
||||
if (!user.isLocked)
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-info.btn-link-social(href='/toggle-lockdown-mode')
|
||||
span.ion-locked
|
||||
| Hide all my solutions from other people
|
||||
br
|
||||
| (this will disable your certificates)
|
||||
else
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-info.btn-link-social(href='/toggle-lockdown-mode')
|
||||
span.ion-unlocked
|
||||
| Let other people see all my solutions
|
||||
br
|
||||
| (this will enable your certificates)
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-success.btn-link-social(href='/commit')
|
||||
span.ion-edit
|
||||
| Edit my pledge
|
||||
.col-xs-12
|
||||
a.btn.btn-lg.btn-block.btn-danger.btn-link-social.confirm-deletion
|
||||
span.ion-trash-b
|
||||
| Delete my Free Code Camp account
|
||||
script.
|
||||
$('.confirm-deletion').on("click", function () {
|
||||
$('#modal-dialog').modal('show');
|
||||
});
|
||||
#modal-dialog.modal.animated.wobble
|
||||
.modal-dialog
|
||||
.modal-content
|
||||
.modal-header
|
||||
a.close(href='#', data-dismiss='modal', aria-hidden='true') ×
|
||||
h3 You don't really want to delete your account, do you?
|
||||
.modal-body
|
||||
p This will really delete all your data, including all your progress, news stories and brownie points.
|
||||
p We won't be able to recover any of it for you later, even if you change your mind.
|
||||
p If there's something we could do better, send us an email instead and we'll do our best:  
|
||||
a(href="mailto:team@freecodecamp.com") team@freecodecamp.com
|
||||
| .
|
||||
.modal-footer
|
||||
a.btn.btn-success.btn-block(href='#', data-dismiss='modal', aria-hidden='true')
|
||||
span.ion-happy
|
||||
| Nevermind, I don't want to delete all of my progress
|
||||
.spacer
|
||||
form(action='/account/delete', method='POST')
|
||||
input(type='hidden', name='_csrf', value=_csrf)
|
||||
button.btn.btn-danger.btn-block(type='submit')
|
||||
span.ion-trash-b
|
||||
| I am 100% sure I want to delete my account and all of my progress
|
||||
>>>>>>> start simplifying views
|
||||
|
@ -1,201 +1,199 @@
|
||||
extends ../layout
|
||||
block content
|
||||
.panel.panel-info
|
||||
.panel-heading.text-center
|
||||
h1 Challenge Map
|
||||
.panel-body
|
||||
if (Math.random() > 0.999)
|
||||
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner-dino.png')
|
||||
audio(autoplay src='https://s3.amazonaws.com/freecodecamp/t-rex-roar.mp3')
|
||||
else
|
||||
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner.png')
|
||||
.col-xs-12.col-md-8.col-md-offset-2
|
||||
h2
|
||||
table.population-table.img-center
|
||||
tr
|
||||
td Established: 
|
||||
td
|
||||
span.text-primary #{daysRunning} 
|
||||
| days ago
|
||||
tr
|
||||
td Population:   
|
||||
td
|
||||
span.text-primary #{camperCount} 
|
||||
| campers
|
||||
tr
|
||||
td Completed:   
|
||||
td
|
||||
span.text-primary #{globalCompletedCount} 
|
||||
| challenges
|
||||
h1.text-center Challenge Map
|
||||
hr
|
||||
if (Math.random() > 0.999)
|
||||
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner-dino.png')
|
||||
audio(autoplay src='https://s3.amazonaws.com/freecodecamp/t-rex-roar.mp3')
|
||||
else
|
||||
img.img-responsive.img-center.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/wide-social-banner.png')
|
||||
.col-xs-12.col-md-8.col-md-offset-2
|
||||
h2
|
||||
table.population-table.img-center
|
||||
tr
|
||||
td Established: 
|
||||
td
|
||||
span.text-primary #{daysRunning} 
|
||||
| days ago
|
||||
tr
|
||||
td Population:   
|
||||
td
|
||||
span.text-primary #{camperCount} 
|
||||
| campers
|
||||
tr
|
||||
td Completed:   
|
||||
td
|
||||
span.text-primary #{globalCompletedCount} 
|
||||
| challenges
|
||||
|
||||
|
||||
|
||||
.spacer
|
||||
if (user && user.progressTimestamps.length > 100)
|
||||
.row
|
||||
#map-notice.col-xs-12.col-md-8.col-md-offset-2.hidden
|
||||
h2.text-center Reddit or not, here we come
|
||||
img.thumbnail.img-center.img-responsive(src="http://i.imgur.com/lyd0bfM.jpg")
|
||||
h4.text-center Come ask questions and share your thoughts with our entire open source community on our subreddit.
|
||||
a.button.btn.btn-block.btn-primary(href="https://reddit.com/r/freecodecamp" target="_blank") Check it out
|
||||
.button-spacer
|
||||
.text-center
|
||||
a#hide-map-notice-button(href='#') Hide this forever
|
||||
.spacer
|
||||
|
||||
ul
|
||||
for superBlock in superBlocks
|
||||
h2= superBlock.name
|
||||
- var i = 0
|
||||
for challengeBlock in superBlock.blocks
|
||||
- i++
|
||||
.row
|
||||
if (user)
|
||||
if (challengeBlock.completed === 100)
|
||||
.hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-1.col-sm-1.col-md-1.map-row-numbers.negative-5
|
||||
span.map-p.negative-10 #{i}.
|
||||
.col-xs-11.col-sm-8.col-md-9
|
||||
li.map-p.faded.negative-10
|
||||
a(href='#' + challengeBlock.dashedName)= challengeBlock.name
|
||||
if challengeBlock.markNew
|
||||
span.text-info.small    
|
||||
strong
|
||||
em NEW
|
||||
if challengeBlock.isComingSoon
|
||||
span.text-info.small    
|
||||
strong
|
||||
em Coming Soon
|
||||
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), aria-valuemin='0', aria-valuemax='100', style='width: ' + challengeBlock.completed + '%;')
|
||||
.col-xs-1.col-sm-1.col-md-1.map-row-numbers.negative-5
|
||||
span.map-p #{i}.
|
||||
.col-xs-11.col-sm-8.col-md-9
|
||||
li.map-p.negative-10
|
||||
a(href='#' + challengeBlock.dashedName)= challengeBlock.name
|
||||
if challengeBlock.markNew
|
||||
span.text-info.small    
|
||||
strong
|
||||
em NEW
|
||||
if challengeBlock.isComingSoon
|
||||
span.text-info.small    
|
||||
strong
|
||||
em Coming Soon
|
||||
else
|
||||
.hidden-xs.col-sm-3.col-md-2
|
||||
.col-xs-1.col-sm-1.col-md-1.map-row-numbers
|
||||
span.map-p.negative-10 #{i}.
|
||||
.col-xs-10.col-sm-8.col-md-9
|
||||
span.map-p.negative-10
|
||||
a(href='#' + challengeBlock.dashedName)= challengeBlock.name
|
||||
if challengeBlock.markNew
|
||||
span.text-info.small    
|
||||
strong
|
||||
em NEW
|
||||
if challengeBlock.isComingSoon
|
||||
span.text-info.small    
|
||||
strong
|
||||
em Coming Soon
|
||||
h2 Full Stack Development Certification
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Greenfield Nonprofit Project 1
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Greenfield Nonprofit Project 2
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Legacy Nonprofit Project 1
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Legacy Nonprofit Project 2
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Claim your Full Stack Development Certification
|
||||
|
||||
h2 Coding Interview Preparation
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Whiteboard Coding Interview Training
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Critical Thinking Interview Training
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Mock Interview 1
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Mock Interview 2
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Mock Interview 3
|
||||
|
||||
hr
|
||||
|
||||
for superBlock, index in superBlocks
|
||||
for challengeBlock in superBlock.blocks
|
||||
.row
|
||||
a(href='#' name=challengeBlock.dashedName)
|
||||
.spacer.negative-55
|
||||
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2
|
||||
h3.text-primary.text-right.nowrap
|
||||
i.fa.fa-clock-o
|
||||
= challengeBlock.time
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
h3 #{challengeBlock.name}  
|
||||
|
||||
- var i = 0
|
||||
for challenge in challengeBlock.challenges
|
||||
- i++
|
||||
.row
|
||||
if challenge.completed
|
||||
.hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-1.col-sm-1.col-md-1.map-row-numbers
|
||||
span.map-p.negative-10 #{i}.
|
||||
.col-xs-10.col-sm-8.col-md-9
|
||||
span.faded.map-p.negative-10
|
||||
a(href="/challenges/#{challenge.dashedName}")
|
||||
span.capitalize= challenge.type + ': '
|
||||
span= challenge.title
|
||||
span.sr-only= " Complete"
|
||||
|
||||
else
|
||||
.hidden-xs.col-sm-3.col-md-2
|
||||
span.negative-10
|
||||
.col-xs-1.col-sm-1.col-md-1.map-row-numbers
|
||||
span.map-p.negative-10 #{i}.
|
||||
.col-xs-10.col-sm-8.col-md-9
|
||||
span.map-p.negative-10
|
||||
a(href="/challenges/#{challenge.dashedName}" class=challenge.isComingSoon ? 'disabled' : '')
|
||||
span.capitalize= challenge.type + ': '
|
||||
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
|
||||
.spacer
|
||||
if (user && user.progressTimestamps.length > 100)
|
||||
.row
|
||||
#map-notice.col-xs-12.col-md-8.col-md-offset-2.hidden
|
||||
h2.text-center Reddit or not, here we come
|
||||
img.thumbnail.img-center.img-responsive(src="http://i.imgur.com/lyd0bfM.jpg")
|
||||
h4.text-center Come ask questions and share your thoughts with our entire open source community on our subreddit.
|
||||
a.button.btn.btn-block.btn-primary(href="https://reddit.com/r/freecodecamp" target="_blank") Check it out
|
||||
.button-spacer
|
||||
.text-center
|
||||
a#hide-map-notice-button(href='#') Hide this forever
|
||||
.spacer
|
||||
|
||||
ul
|
||||
for superBlock in superBlocks
|
||||
h2= superBlock.name
|
||||
- var i = 0
|
||||
for challengeBlock in superBlock.blocks
|
||||
- i++
|
||||
.row
|
||||
if (user)
|
||||
if (challengeBlock.completed === 100)
|
||||
.button-spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-md-6.col-sm-offset-3.col-md-offset-2.hidden
|
||||
a.btn.btn-lg.btn-block.signup-btn.map-challenge-block-share Section complete. Share your code portfolio with your friends.
|
||||
.hidden(id="#{challengeBlock.name}")
|
||||
.hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-1.col-sm-1.col-md-1.map-row-numbers.negative-5
|
||||
span.map-p.negative-10 #{i}.
|
||||
.col-xs-11.col-sm-8.col-md-9
|
||||
li.map-p.faded.negative-10
|
||||
a(href='#' + challengeBlock.dashedName)= challengeBlock.name
|
||||
if challengeBlock.markNew
|
||||
span.text-info.small    
|
||||
strong
|
||||
em NEW
|
||||
if challengeBlock.isComingSoon
|
||||
span.text-info.small    
|
||||
strong
|
||||
em Coming Soon
|
||||
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), aria-valuemin='0', aria-valuemax='100', style='width: ' + challengeBlock.completed + '%;')
|
||||
.col-xs-1.col-sm-1.col-md-1.map-row-numbers.negative-5
|
||||
span.map-p #{i}.
|
||||
.col-xs-11.col-sm-8.col-md-9
|
||||
li.map-p.negative-10
|
||||
a(href='#' + challengeBlock.dashedName)= challengeBlock.name
|
||||
if challengeBlock.markNew
|
||||
span.text-info.small    
|
||||
strong
|
||||
em NEW
|
||||
if challengeBlock.isComingSoon
|
||||
span.text-info.small    
|
||||
strong
|
||||
em Coming Soon
|
||||
else
|
||||
.hidden-xs.col-sm-3.col-md-2
|
||||
.col-xs-1.col-sm-1.col-md-1.map-row-numbers
|
||||
span.map-p.negative-10 #{i}.
|
||||
.col-xs-10.col-sm-8.col-md-9
|
||||
span.map-p.negative-10
|
||||
a(href='#' + challengeBlock.dashedName)= challengeBlock.name
|
||||
if challengeBlock.markNew
|
||||
span.text-info.small    
|
||||
strong
|
||||
em NEW
|
||||
if challengeBlock.isComingSoon
|
||||
span.text-info.small    
|
||||
strong
|
||||
em Coming Soon
|
||||
h2 Full Stack Development Certification
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Greenfield Nonprofit Project 1
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Greenfield Nonprofit Project 2
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Legacy Nonprofit Project 1
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Legacy Nonprofit Project 2
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Claim your Full Stack Development Certification
|
||||
|
||||
if (index < superBlocks.length - 1)
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h2 Coding Interview Preparation
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Whiteboard Coding Interview Training
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Critical Thinking Interview Training
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Mock Interview 1
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Mock Interview 2
|
||||
.hidden-xs.col-sm-3.col-md-2.ion-locked.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
li.map-p.negative-10 Mock Interview 3
|
||||
|
||||
hr
|
||||
|
||||
for superBlock, index in superBlocks
|
||||
for challengeBlock in superBlock.blocks
|
||||
.row
|
||||
a(href='#' name=challengeBlock.dashedName)
|
||||
.spacer.negative-55
|
||||
|
||||
.row
|
||||
.hidden-xs.col-sm-3.col-md-2
|
||||
h3.text-primary.text-right.nowrap
|
||||
i.fa.fa-clock-o
|
||||
= challengeBlock.time
|
||||
.col-xs-12.col-sm-9.col-md-10
|
||||
h3 #{challengeBlock.name}  
|
||||
|
||||
- var i = 0
|
||||
for challenge in challengeBlock.challenges
|
||||
- i++
|
||||
.row
|
||||
if challenge.completed
|
||||
.hidden-xs.col-sm-3.col-md-2.text-primary.ion-checkmark-circled.padded-ionic-icon.text-center.map-p.negative-10
|
||||
.col-xs-1.col-sm-1.col-md-1.map-row-numbers
|
||||
span.map-p.negative-10 #{i}.
|
||||
.col-xs-10.col-sm-8.col-md-9
|
||||
span.faded.map-p.negative-10
|
||||
a(href="/challenges/#{challenge.dashedName}")
|
||||
span.capitalize= challenge.type + ': '
|
||||
span= challenge.title
|
||||
span.sr-only= " Complete"
|
||||
|
||||
else
|
||||
.hidden-xs.col-sm-3.col-md-2
|
||||
span.negative-10
|
||||
.col-xs-1.col-sm-1.col-md-1.map-row-numbers
|
||||
span.map-p.negative-10 #{i}.
|
||||
.col-xs-10.col-sm-8.col-md-9
|
||||
span.map-p.negative-10
|
||||
a(href="/challenges/#{challenge.dashedName}" class=challenge.isComingSoon ? 'disabled' : '')
|
||||
span.capitalize= challenge.type + ': '
|
||||
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
|
||||
|
||||
if (challengeBlock.completed === 100)
|
||||
.button-spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-md-6.col-sm-offset-3.col-md-offset-2.hidden
|
||||
a.btn.btn-lg.btn-block.signup-btn.map-challenge-block-share Section complete. Share your code portfolio with your friends.
|
||||
.hidden(id="#{challengeBlock.name}")
|
||||
|
||||
if (index < superBlocks.length - 1)
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
|
||||
script.
|
||||
var username = !{JSON.stringify(user && user.username || '')};
|
||||
|
@ -9,7 +9,7 @@ block content
|
||||
.col-md-4.col-lg-3
|
||||
.scroll-locker(id = "scroll-locker")
|
||||
.innerMarginFix(style=' width: 99%')
|
||||
#testCreatePanel.well
|
||||
#testCreatePanel
|
||||
h3.text-center.negative-10= name
|
||||
if (isCompleted)
|
||||
|
|
||||
@ -36,13 +36,13 @@ block content
|
||||
| Run tests (ctrl + enter)
|
||||
.button-spacer
|
||||
.btn-group.input-group.btn-group-justified
|
||||
label.btn.btn-success#trigger-reset-modal
|
||||
label.btn.btn-primary.btn-primary-ghost#trigger-reset-modal
|
||||
i.fa.fa-refresh
|
||||
| Reset
|
||||
label.btn.btn-success#challenge-help-btn
|
||||
label.btn.btn-primary.btn-primary-ghost#challenge-help-btn
|
||||
i.fa.fa-medkit
|
||||
| Help
|
||||
label.btn.btn-success#trigger-issue-modal
|
||||
label.btn.btn-primary.btn-primary-ghost#trigger-issue-modal
|
||||
i.fa.fa-bug
|
||||
| Bug
|
||||
if (!user)
|
||||
|
@ -8,33 +8,33 @@ block content
|
||||
.col-md-3.col-lg-3
|
||||
.scroll-locker(id = "scroll-locker")
|
||||
.innerMarginFix(style = "width: 99%;")
|
||||
.well
|
||||
.row
|
||||
.col-xs-12
|
||||
h3.text-center.negative-10= name
|
||||
if (isCompleted)
|
||||
|
|
||||
i.ion-checkmark-circled.text-primary(title="Completed")
|
||||
.bonfire-instructions
|
||||
for sentence in details
|
||||
p.wrappable.negative-10!= sentence
|
||||
.negative-bottom-margin-30
|
||||
.row
|
||||
.col-xs-12
|
||||
h3.text-center.negative-10= name
|
||||
if (isCompleted)
|
||||
|
|
||||
i.ion-checkmark-circled.text-primary(title="Completed")
|
||||
hr
|
||||
.bonfire-instructions
|
||||
for sentence in details
|
||||
p.wrappable.negative-10!= sentence
|
||||
.negative-bottom-margin-30
|
||||
label.negative-10.btn.btn-primary.btn-lg.btn-block#submitButton
|
||||
i.fa.fa-play
|
||||
| Run tests (ctrl + enter)
|
||||
.button-spacer
|
||||
.btn-group.input-group.btn-group-justified
|
||||
label.btn.btn-success#trigger-reset-modal
|
||||
label.btn.btn-primary.btn-primary-ghost#trigger-reset-modal
|
||||
i.fa.fa-refresh
|
||||
| Reset
|
||||
label.btn.btn-success.hidden-sm.hidden-md.hidden-lg
|
||||
label.btn.btn-primary.btn-primary-ghost.hidden-sm.hidden-md.hidden-lg
|
||||
a(href='//gitter.im/freecodecamp/help')
|
||||
i.fa.fa-medkit
|
||||
| Help
|
||||
label.btn.btn-success.hidden-xs#challenge-help-btn
|
||||
label.btn.btn-primary.btn-primary-ghost.hidden-xs#challenge-help-btn
|
||||
i.fa.fa-medkit
|
||||
| Help
|
||||
label.btn.btn-success#trigger-issue-modal
|
||||
label.btn.btn-primary.btn-primary-ghost#trigger-issue-modal
|
||||
i.fa.fa-bug
|
||||
| Bug
|
||||
script.
|
||||
|
@ -3,9 +3,9 @@ block content
|
||||
.row
|
||||
.col-md-8.col-md-offset-2
|
||||
for step, index in description
|
||||
.thumbnail.challenge-step(class=index !== 0 ? 'hidden': '')
|
||||
.challenge-step(class=index !== 0 ? 'hidden': '')
|
||||
a(href=step[0] data-lightbox='img-enlarge')
|
||||
img.gif-block.img-center.img-responsive.thumbnail(src='#{step[0]}' alt='#{step[1]}')
|
||||
img.gif-block.img-center.img-responsive(src='#{step[0]}' alt='#{step[1]}')
|
||||
.caption
|
||||
p.large-p!= step[2]
|
||||
.challenge-button-block
|
||||
@ -15,7 +15,7 @@ block content
|
||||
if index === 0
|
||||
.col-sm-5.hidden-xs
|
||||
else
|
||||
.btn.btn-warning.col-sm-5.col-xs-12.challenge-step-btn-prev(id='#{index - 1}') Go to my previous step
|
||||
.btn.btn-primary.btn-primary-ghost.col-sm-5.col-xs-12.challenge-step-btn-prev(id='#{index - 1}') Go to my previous step
|
||||
.challenge-step-counter.large-p.col-sm-2.col-xs-12.text-center (#{index + 1} / #{description.length})
|
||||
if index + 1 === description.length
|
||||
.btn.btn-primary.col-sm-5.col-xs-12.challenge-step-btn-finish(id='last' class=step[3] && !isCompleted ? 'disabled' : '') Finish challenge
|
||||
|
@ -3,15 +3,15 @@ block content
|
||||
.row
|
||||
.col-md-4.bonfire-top
|
||||
h1.text-center= name
|
||||
.well
|
||||
h4
|
||||
ol
|
||||
for step, index in details
|
||||
.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
|
||||
hr
|
||||
h4
|
||||
ol
|
||||
for step, index in details
|
||||
.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-md-8
|
||||
.embed-responsive.embed-responsive-16by9
|
||||
iframe.embed-responsive-item(src='//player.vimeo.com/video/#{video}')
|
||||
@ -24,10 +24,10 @@ block content
|
||||
a.btn.btn-big.btn-primary.btn-block(href='/challenges/next-challenge?id=' + challengeId) Go to my next challenge (ctrl + enter)
|
||||
.button-spacer
|
||||
.btn-group.input-group.btn-group-justified
|
||||
.btn.btn-success.btn-big#challenge-help-btn
|
||||
.btn.btn-primary.btn-primary-ghost.btn-big#challenge-help-btn
|
||||
i.fa.fa-medkit
|
||||
| Help
|
||||
.btn.btn-success.btn-big#trigger-issue-modal
|
||||
.btn.btn-primary.btn-primary-ghost.btn-big#trigger-issue-modal
|
||||
i.fa.fa-bug
|
||||
| Bug
|
||||
if (!user)
|
||||
|
@ -1,107 +1,106 @@
|
||||
extends layout
|
||||
block content
|
||||
.jumbotron
|
||||
.text-center
|
||||
h1.landing-heading Learn to code and help nonprofits.
|
||||
.spacer
|
||||
.row
|
||||
.text-center
|
||||
h1.landing-heading Learn to code and help nonprofits.
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
h3.nowrap Get connected
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='Get great references and connections to start your software engineer career')
|
||||
p.landing-p Join a community of 100,000+ motivated people.
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
h3.nowrap Learn JavaScript
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_learn.svg.gz', alt='Learn to code and learn full stack JavaScript')
|
||||
p.landing-p Work together on Full Stack JavaScript coding challenges.
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
h3.nowrap Build your portfolio
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', alt='Build a portfolio of apps for nonprofits')
|
||||
p.landing-p Build apps that solve real problems for real people.
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
h3.nowrap Help nonprofits
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', alt='Help empower nonprofits with code')
|
||||
p.landing-p Give nonprofits a boost by empowering them with code.
|
||||
.big-break
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start learning to code (it's free)
|
||||
.button-spacer
|
||||
a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/nonprofits") My nonprofit needs coding help
|
||||
.spacer
|
||||
h2 As featured in:
|
||||
img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png')
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h2 Launch your career as a software engineer:
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/nsvNixW.jpg", alt="Meta's testimonial image")
|
||||
p.testimonial-copy Through Free Code Camp, I built a robust and highly functional web app for a nonprofit. This led me to getting a fantastic job.
|
||||
h3 - Meta Hirschl
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/QPpjPac.jpg", alt="Brian's testimonial image")
|
||||
p.testimonial-copy Free Code Camp's a great way for disabled veterans like me to retrain. I'm receiving engineering job offers, and I haven't even finished yet.
|
||||
h3 - Brian Grant
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/wjlDigg.jpg", alt="Maxim Orlov's testimonial image")
|
||||
p.testimonial-copy I started Free Code Camp with zero knowledge of web development. 6 months later, I landed my first job as a back end engineer.
|
||||
h3 - Maxim Orlov
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href='/stories') Hear from more of our campers
|
||||
.spacer
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h2 Skills you'll learn:
|
||||
.spacer
|
||||
.row
|
||||
.text-center.negative-35
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
h3.nowrap Get connected
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='Get great references and connections to start your software engineer career')
|
||||
p.landing-p Join a community of 100,000+ motivated people.
|
||||
.landing-skill-icon.ion-social-html5
|
||||
h2.black-text HTML5
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
h3.nowrap Learn JavaScript
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_learn.svg.gz', alt='Learn to code and learn full stack JavaScript')
|
||||
p.landing-p Work together on Full Stack JavaScript coding challenges.
|
||||
.landing-skill-icon.ion-social-css3
|
||||
h2.black-text CSS3
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
h3.nowrap Build your portfolio
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_portfolio.svg.gz', alt='Build a portfolio of apps for nonprofits')
|
||||
p.landing-p Build apps that solve real problems for real people.
|
||||
.landing-skill-icon.ion-social-javascript
|
||||
h2.black-text JavaScript
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
h3.nowrap Help nonprofits
|
||||
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_nonprofits.svg.gz', alt='Help empower nonprofits with code')
|
||||
p.landing-p Give nonprofits a boost by empowering them with code.
|
||||
.big-break
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/signin") Start learning to code (it's free)
|
||||
.button-spacer
|
||||
a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href="/nonprofits") My nonprofit needs coding help
|
||||
.spacer
|
||||
h2 As featured in:
|
||||
img.img-center.img-responsive(src='https://s3.amazonaws.com/freecodecamp/as-seen-on.png')
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h2 Launch your career as a software engineer:
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/nsvNixW.jpg", alt="Meta's testimonial image")
|
||||
p.testimonial-copy Through Free Code Camp, I built a robust and highly functional web app for a nonprofit. This led me to getting a fantastic job.
|
||||
h3 - Meta Hirschl
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/QPpjPac.jpg", alt="Brian's testimonial image")
|
||||
p.testimonial-copy Free Code Camp's a great way for disabled veterans like me to retrain. I'm receiving engineering job offers, and I haven't even finished yet.
|
||||
h3 - Brian Grant
|
||||
.col-xs-12.col-sm-12.col-md-4
|
||||
img.img-responsive.testimonial-image.img-center(src="http://i.imgur.com/wjlDigg.jpg", alt="Maxim Orlov's testimonial image")
|
||||
p.testimonial-copy I started Free Code Camp with zero knowledge of web development. 6 months later, I landed my first job as a back end engineer.
|
||||
h3 - Maxim Orlov
|
||||
.spacer
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
a.btn.btn-lg.btn-primary.btn-primary-ghost.btn-block(href='/stories') Hear from more of our campers
|
||||
.spacer
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
h2 Skills you'll learn:
|
||||
.spacer
|
||||
.row
|
||||
.text-center.negative-35
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.ion-social-html5
|
||||
h2.black-text HTML5
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.ion-social-css3
|
||||
h2.black-text CSS3
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.ion-social-javascript
|
||||
h2.black-text JavaScript
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.fa.fa-database.font-awesome-padding
|
||||
h2.black-text Databases
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.ion-social-github
|
||||
h2.black-text Git & GitHub
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.ion-social-nodejs
|
||||
h2.black-text Node.js
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.custom-landing-skill-icon
|
||||
img(src='https://s3.amazonaws.com/freecodecamp/react.svg')
|
||||
h2.black-text React.js
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.custom-landing-skill-icon
|
||||
img(src='https://s3.amazonaws.com/freecodecamp/d3-logo.svg')
|
||||
h2.black-text D3.js
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
.col-xs-offset-0.col-sm-offset-1.text-left
|
||||
h2 Here's why you should join our open source community right now:
|
||||
ul.large-li
|
||||
li.ion-code   You'll get help in real time from our community chat rooms.
|
||||
li.ion-code   You'll meet up with other coders in your city.
|
||||
li.ion-code   You'll learn to code at your own pace, in your browser or on your phone.
|
||||
li.ion-code   You'll work through our focused, interactive courses and tutorials.
|
||||
li.ion-code   You'll learn state-of-the-art full stack JavaScript technologies.
|
||||
li.ion-code   You'll build projects that help nonprofits carry out their missions more effectively.
|
||||
li.ion-code   You'll assemble a portfolio of real apps used by real people.
|
||||
.big-break
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/signin") Learn to code today (it's free)
|
||||
script.
|
||||
challengeName = 'Home'
|
||||
.landing-skill-icon.fa.fa-database.font-awesome-padding
|
||||
h2.black-text Databases
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.ion-social-github
|
||||
h2.black-text Git & GitHub
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.ion-social-nodejs
|
||||
h2.black-text Node.js
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.custom-landing-skill-icon
|
||||
img(src='https://s3.amazonaws.com/freecodecamp/react.svg')
|
||||
h2.black-text React.js
|
||||
.col-xs-12.col-sm-12.col-md-3
|
||||
.landing-skill-icon.custom-landing-skill-icon
|
||||
img(src='https://s3.amazonaws.com/freecodecamp/d3-logo.svg')
|
||||
h2.black-text D3.js
|
||||
.spacer
|
||||
hr
|
||||
.spacer
|
||||
.col-xs-offset-0.col-sm-offset-1.text-left
|
||||
h2 Here's why you should join our open source community right now:
|
||||
ul.large-li
|
||||
li.ion-code   You'll get help in real time from our community chat rooms.
|
||||
li.ion-code   You'll meet up with other coders in your city.
|
||||
li.ion-code   You'll learn to code at your own pace, in your browser or on your phone.
|
||||
li.ion-code   You'll work through our focused, interactive courses and tutorials.
|
||||
li.ion-code   You'll learn state-of-the-art full stack JavaScript technologies.
|
||||
li.ion-code   You'll build projects that help nonprofits carry out their missions more effectively.
|
||||
li.ion-code   You'll assemble a portfolio of real apps used by real people.
|
||||
.big-break
|
||||
.row
|
||||
.col-xs-12.col-sm-8.col-sm-offset-2
|
||||
a.btn.btn-cta.signup-btn.btn-block(href="/signin") Learn to code today (it's free)
|
||||
script.
|
||||
challengeName = 'Home'
|
||||
|
@ -11,22 +11,22 @@ block content
|
||||
script.
|
||||
var challengeName = 'Camper News';
|
||||
var page = !{JSON.stringify(page)};
|
||||
.panel.panel-info
|
||||
.panel-heading.text-center Camper News
|
||||
.panel-body
|
||||
include news-nav
|
||||
h1.text-center Camper News
|
||||
hr
|
||||
.spacer
|
||||
include news-nav
|
||||
.spacer
|
||||
if (page === 'hot')
|
||||
include hot-stories
|
||||
if (page === 'submit')
|
||||
if (user)
|
||||
include preliminary-submit
|
||||
else
|
||||
.spacer
|
||||
if (page === 'hot')
|
||||
include hot-stories
|
||||
if (page === 'submit')
|
||||
if (user)
|
||||
include preliminary-submit
|
||||
else
|
||||
.spacer
|
||||
.text-center
|
||||
a.btn.btn-cta.signup-btn.btn-primary(href="/login") Sign in to post your story (it's free)
|
||||
.spacer
|
||||
if (page === 'storySubmission')
|
||||
include submit-story
|
||||
if (page === 'show')
|
||||
include show
|
||||
.text-center
|
||||
a.btn.btn-cta.signup-btn.btn-primary(href="/login") Sign in to post your story (it's free)
|
||||
.spacer
|
||||
if (page === 'storySubmission')
|
||||
include submit-story
|
||||
if (page === 'show')
|
||||
include show
|
||||
|
@ -7,11 +7,17 @@
|
||||
.spacer
|
||||
.col-xs-12.col-sm-3
|
||||
span
|
||||
a.btn.btn-primary.btn-big.btn-block.btn-responsive(href='/stories/submit' class="#{ page === 'hot' ? '' : 'hidden' }") Submit
|
||||
a.btn.btn-primary.btn-big.btn-block.btn-responsive(href='/stories/submit' class="#{ page === 'hot' ? '' : 'hidden' }") Submit a link
|
||||
span
|
||||
a.btn.btn-success.btn-big.btn-block.btn-responsive(href='/news/' class="#{ (page !== 'hot') ? '' : 'hidden' }") All
|
||||
.visible-xs
|
||||
.button-spacer
|
||||
.col-xs-12.col-sm-9
|
||||
.input-group
|
||||
input#searchArea.big-text-field.field-responsive.form-control(type='text', placeholder='Search our links')
|
||||
span.input-group-btn
|
||||
button#searchbutton.btn.btn-big.btn-primary.btn-responsive(type='button') Search
|
||||
.spacer
|
||||
|
||||
#search-results
|
||||
|
||||
|
Reference in New Issue
Block a user