2015-01-06 00:38:56 +00:00
|
|
|
extends ../layout
|
|
|
|
block content
|
2016-04-15 02:49:19 +00:00
|
|
|
include ../partials/flyer
|
2017-12-11 20:26:32 +00:00
|
|
|
.app-content.app-centered
|
2015-02-22 05:45:25 +00:00
|
|
|
script.
|
|
|
|
var challengeName = 'Profile View';
|
2015-09-09 05:52:32 +00:00
|
|
|
if (user && user.username === username)
|
2016-03-13 23:57:39 +00:00
|
|
|
.row
|
|
|
|
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
|
|
|
|
.col-xs-12
|
|
|
|
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='/settings')
|
|
|
|
| Update your settings
|
2016-03-21 19:45:41 +00:00
|
|
|
.col-xs-12
|
2016-04-18 15:43:35 +00:00
|
|
|
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='/signout')
|
2017-01-11 09:29:38 +00:00
|
|
|
| Sign me out of freeCodeCamp
|
2016-03-21 19:45:41 +00:00
|
|
|
.col-xs-12
|
2017-08-25 22:07:44 +00:00
|
|
|
a.btn.btn-lg.btn-block.btn-primary.btn-link-social(href='mailto:team@freecodecamp.org')
|
|
|
|
| Email us at team@freecodecamp.org
|
2016-01-13 08:32:50 +00:00
|
|
|
.spacer
|
2016-01-15 13:42:37 +00:00
|
|
|
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
|
2017-12-10 17:23:03 +00:00
|
|
|
img.img-center.img-responsive.public-profile-img.border-radius-5(src=picture)
|
2016-01-15 13:42:37 +00:00
|
|
|
else
|
2017-12-10 17:23:03 +00:00
|
|
|
img.img-center.img-responsive.public-profile-img.border-radius-5(src='https://s3.amazonaws.com/freecodecamp/camper-image-placeholder.png')
|
2016-01-15 13:42:37 +00:00
|
|
|
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')
|
|
|
|
h1.flat-top.wrappable= name
|
|
|
|
h1.flat-top.wrappable= location
|
2016-06-18 17:57:36 +00:00
|
|
|
p.flat-top.bio= bio
|
2016-01-15 13:42:37 +00:00
|
|
|
h1.flat-top.text-primary= "[ " + (progressTimestamps.length) + " ]"
|
|
|
|
if pledge
|
|
|
|
.spacer
|
|
|
|
h4
|
|
|
|
| This camper has committed to giving $#{pledge.amount} to
|
2017-08-25 22:07:44 +00:00
|
|
|
a(href='#{pledge.donateUrl}?ref=freecodecamp.org' target='_blank') #{pledge.displayName}
|
2016-01-15 13:42:37 +00:00
|
|
|
| each month until they have completed their #{pledge.goal}.
|
|
|
|
.spacer
|
|
|
|
.row
|
|
|
|
.col-xs-12.col-sm-10.col-sm-offset-1.col-md-8.col-md-offset-2
|
|
|
|
if isFrontEndCert
|
|
|
|
a.btn.btn-primary.btn-block(href='/' + username + '/front-end-certification') View My Front End Development Certification
|
|
|
|
if isDataVisCert
|
|
|
|
.button-spacer
|
|
|
|
a.btn.btn-primary.btn-block(href='/' + username + '/data-visualization-certification') View My Data Visualization Certification
|
|
|
|
if isBackEndCert
|
|
|
|
.button-spacer
|
|
|
|
a.btn.btn-primary.btn-block(href='/' + username + '/back-end-certification') View My Back End Development Certification
|
2016-12-14 21:24:59 +00:00
|
|
|
if (user && user.username != username)
|
|
|
|
.button-spacer
|
|
|
|
a.btn.btn-primary.btn-block(href='/' + username + '/report-user/') Report this user's profile for abuse
|
2016-10-28 08:18:18 +00:00
|
|
|
.row
|
|
|
|
.col-xs-12.text-center
|
|
|
|
if (badges.coreTeam && badges.coreTeam.length)
|
|
|
|
h4 Core Team #{badges.coreTeam.reverse().join(', ')}
|
2016-01-15 12:03:31 +00:00
|
|
|
|
2016-01-15 13:42:37 +00:00
|
|
|
.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)};
|
2017-11-29 11:40:04 +00:00
|
|
|
var rectSelector = "#cal-heatmap > svg > svg.graph-legend > g > rect.r";
|
|
|
|
var calLegendTitles = ["0 items", "1 item", "2 items", "3 or more items"]
|
2016-01-15 13:42:37 +00:00
|
|
|
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"
|
2016-01-09 21:32:52 +00:00
|
|
|
}
|
|
|
|
});
|
2017-11-29 11:40:04 +00:00
|
|
|
calLegendTitles.forEach(function(title, i) {
|
|
|
|
document.querySelector(rectSelector + (i + 1).toString() + '> title').innerHTML = title;
|
|
|
|
});
|
2016-01-15 13:42:37 +00:00
|
|
|
});
|
|
|
|
.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'}
|
2015-09-28 04:52:13 +00:00
|
|
|
|
2015-04-05 07:01:51 +00:00
|
|
|
|
2016-01-15 13:42:37 +00:00
|
|
|
if (user && user.username == username || !isLocked)
|
2016-01-18 23:15:09 +00:00
|
|
|
if (projects .length > 0)
|
2016-01-15 13:42:37 +00:00
|
|
|
.col-sm-12
|
|
|
|
table.table.table-striped
|
|
|
|
thead
|
|
|
|
tr
|
2016-01-20 06:30:01 +00:00
|
|
|
th.col-xs-5 Projects
|
|
|
|
th.col-xs-2.hidden-xs Completed
|
|
|
|
th.col-xs-2.hidden-xs Last Updated
|
|
|
|
th.col-xs-2.hidden-xs Link
|
2016-01-18 23:15:09 +00:00
|
|
|
for challenge in projects
|
2016-01-15 13:42:37 +00:00
|
|
|
tr
|
2016-01-20 06:30:01 +00:00
|
|
|
td.col-xs-5.hidden-xs
|
2016-08-01 23:54:33 +00:00
|
|
|
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}', target='_blank')= challenge.name
|
2016-01-26 23:11:33 +00:00
|
|
|
td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available'
|
|
|
|
td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : ''
|
2016-01-20 06:30:01 +00:00
|
|
|
td.col-xs-2.hidden-xs
|
2016-03-28 16:44:18 +00:00
|
|
|
a(href=challenge.solution, target='_blank') View project
|
2016-01-15 13:42:37 +00:00
|
|
|
td.col-xs-12.visible-xs
|
2016-08-01 23:54:33 +00:00
|
|
|
a(href=challenge.solution, target='_blank')= challenge.name
|
2016-02-09 22:33:25 +00:00
|
|
|
if (algorithms.length > 0)
|
2016-01-15 13:42:37 +00:00
|
|
|
.col-sm-12
|
|
|
|
table.table.table-striped
|
|
|
|
thead
|
|
|
|
tr
|
2016-01-19 08:02:21 +00:00
|
|
|
th.col-xs-5 Algorithms
|
|
|
|
th.col-xs-2.hidden-xs Completed
|
|
|
|
th.col-xs-2.hidden-xs Last Updated
|
|
|
|
th.col-xs-2.hidden-xs Solution
|
2016-02-09 22:33:25 +00:00
|
|
|
for challenge in algorithms
|
2016-01-15 13:42:37 +00:00
|
|
|
tr
|
2016-08-01 23:54:33 +00:00
|
|
|
td.col-xs-5.hidden-xs= challenge.name
|
2016-01-20 02:11:20 +00:00
|
|
|
td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available'
|
|
|
|
td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : ''
|
2016-01-19 08:02:21 +00:00
|
|
|
td.col-xs-2.hidden-xs
|
2016-01-18 23:15:09 +00:00
|
|
|
if (challenge.solution)
|
2016-08-01 23:54:33 +00:00
|
|
|
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank') View solution
|
2016-01-18 23:15:09 +00:00
|
|
|
else
|
2016-08-01 23:54:33 +00:00
|
|
|
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}') View this challenge
|
2016-01-15 13:42:37 +00:00
|
|
|
td.col-xs-12.visible-xs
|
2016-01-18 23:15:09 +00:00
|
|
|
if (challenge.solution)
|
2016-08-01 23:54:33 +00:00
|
|
|
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank')= challenge.name
|
2016-01-18 23:15:09 +00:00
|
|
|
else
|
2016-08-01 23:54:33 +00:00
|
|
|
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}')= challenge.name
|
2016-01-18 23:15:09 +00:00
|
|
|
if (challenges.length > 0)
|
2016-01-15 13:42:37 +00:00
|
|
|
.col-sm-12
|
|
|
|
table.table.table-striped
|
|
|
|
thead
|
|
|
|
tr
|
2016-01-19 08:02:21 +00:00
|
|
|
th.col-xs-5 Challenges
|
|
|
|
th.col-xs-2.hidden-xs Completed
|
|
|
|
th.col-xs-2.hidden-xs Last Updated
|
|
|
|
th.col-xs-2.hidden-xs Solution
|
2016-01-18 23:15:09 +00:00
|
|
|
for challenge in challenges
|
2016-01-15 13:42:37 +00:00
|
|
|
tr
|
2016-08-01 23:54:33 +00:00
|
|
|
td.col-xs-5.hidden-xs= challenge.name
|
2016-01-20 02:11:20 +00:00
|
|
|
td.col-xs-2.hidden-xs= challenge.completedDate ? challenge.completedDate : 'Not Available'
|
|
|
|
td.col-xs-2.hidden-xs= challenge.lastUpdated ? challenge.lastUpdated : ''
|
2016-01-19 08:02:21 +00:00
|
|
|
td.col-xs-2.hidden-xs
|
2016-06-14 10:18:20 +00:00
|
|
|
if (challenge.solution && challenge.name)
|
2016-08-01 23:54:33 +00:00
|
|
|
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank') View solution
|
2016-06-14 10:18:20 +00:00
|
|
|
else if (challenge.name)
|
2016-08-01 23:54:33 +00:00
|
|
|
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}') View this challenge
|
2016-06-14 10:18:20 +00:00
|
|
|
else
|
|
|
|
span N/A
|
2016-01-15 13:42:37 +00:00
|
|
|
td.col-xs-12.visible-xs
|
2016-06-14 10:18:20 +00:00
|
|
|
if (challenge.solution && challenge.name)
|
2016-08-01 23:54:33 +00:00
|
|
|
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}?solution=#{encodeURIComponent(encodeFcc(challenge.solution))}', target='_blank')= challenge.name
|
2016-06-14 10:18:20 +00:00
|
|
|
else if (challenge.name)
|
2016-08-01 23:54:33 +00:00
|
|
|
a(href='/challenges/#{challenge.block}/#{challenge.dashedName}')= challenge.name
|
2016-06-14 10:18:20 +00:00
|
|
|
else
|
|
|
|
span N/A
|