Merge remote-tracking branch 'upstream/staging'

Conflicts:
	views/account/show.jade
This commit is contained in:
Quincy Larson
2015-05-05 16:41:28 -07:00
45 changed files with 352 additions and 34052 deletions

View File

@@ -1,5 +1,6 @@
extends ../layout
block content
script(src="/bower_components/cal-heatmap/cal-heatmap.min.js")
script.
var challengeName = 'Profile View';
.panel.panel-info
@@ -10,7 +11,7 @@ block content
.row.text-center
.col-xs-12.col-sm-10.col-sm-offset-1
a.btn.btn-big.btn-primary.btn-block(href="/account") Update my portfolio page or manage my account
.spacer
.button-spacer
.col-xs-12.col-sm-10.col-sm-offset-1
a.btn.btn-big.btn-success.btn-block(href="/signout") Sign out of Free Code Camp
.spacer
@@ -43,7 +44,7 @@ block content
.col-xs-12.col-sm-12.col-md-3.text-center
.background-svg.img-center
.points-on-top
= "[ " + (user ? user.progressTimestamps.length : 0) + " ]"
= "[ " + (user ? progressTimestamps.length : 0) + " ]"
.row
@@ -98,29 +99,32 @@ block content
i.fa.icon-beaker
| Try it out
.hidden-xs.col-sm-12
script(src="//d3js.org/d3.v3.min.js")
script(src="//cdn.jsdelivr.net/cal-heatmap/3.3.10/cal-heatmap.min.js")
#cal-heatmap.img-center
.spacer
.hidden-xs.hidden-sm.col-md-12
#cal-heatmap.d3-centered
script.
$(document).ready(function() {
setTimeout(function() {
$(document).ready(function () {
setTimeout(function () {
var cal = new CalHeatMap();
var calendar = !{JSON.stringify(calender)};
cal.init({
itemSelector: "#cal-heatmap",
domain: "month",
subDomain: "day",
subDomain: "x_day",
domainGutter: 10,
data: calendar,
cellSize: 15,
align: 'center',
cellRadius: 3,
cellPadding: 2,
tooltip: true,
range: 4,
start: new Date().setDate(new Date().getDate() - 90),
range: 6,
start: new Date().setDate(new Date().getDate() - 150),
legendColors: ["#cccccc", "#215f1e"],
legend: [1, 2, 3]
legend: [1, 2, 3],
label: {
position: "top"
}
});
}, 300);
});
@@ -130,6 +134,7 @@ block content
h4.col-sm-6.text-right Longest Streak: #{longestStreak}
h4.col-sm-6.text-left Current Streak: #{currentStreak}
- if (challenges.length > 0)
.col-sm-12
table.table.table-striped
@@ -145,7 +150,7 @@ block content
td.col-xs-6
a(href=challenge.solution) View my solution
br
br
- if (bonfires.length > 0)
.col-sm-12
table.table.table-striped

View File

@@ -60,6 +60,9 @@ block content
i.ion-ios-flame
i.ion-ios-flame
i.ion-ios-flame
p.text-center Tips: Use 
a(href='/field-guide/how-do-i-get-help-when-I-get-stuck') RSAP
| . Try to pair program. Write your own code.
.well
.row
.col-xs-12

View File

@@ -110,21 +110,21 @@ block content
a(href="/nonprofits/directory") Browse our nonprofit projects
p * Complete all Waypoints, Bonfires, Ziplines and Basejumps to be assigned your first nonprofit project
#announcementModal.modal(tabindex='-1')
.modal-dialog.animated.fadeInUp.fast-animation
.modal-content
.modal-header.challenge-list-header Join our Saturday Summit!
a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
.modal-body
h3.text-left Saturday at Noon EDT: We'll live-stream our Saturday Summit on Twitch.tv. Join us as our community turns 200 days old. We'll have Nonprofit Project demos from 6 of our campers.  
a(href='http://www.freecodecamp.com/twitch', target='_blank') Add it to your calendar here
| .
a.btn.btn-lg.btn-info.btn-block(name='_csrf', value=_csrf, aria-hidden='true', href='http://twitch.tv/freecodecamp', target='_blank') Follow us on Twitch.tv
a.btn.btn-lg.btn-primary.btn-block(href='#', data-dismiss='modal', aria-hidden='true') Thanks for the heads-up!
script.
$(document).ready(function () {
if (!localStorage || !localStorage.day200) {
$('#announcementModal').modal('show');
localStorage.day200 = "true";
}
});
//#announcementModal.modal(tabindex='-1')
// .modal-dialog.animated.fadeInUp.fast-animation
// .modal-content
// .modal-header.challenge-list-header Join our Saturday Summit!
// a.close.closing-x(href='#', data-dismiss='modal', aria-hidden='true') ×
// .modal-body
// h3.text-left Saturday at Noon EDT: We'll live-stream our Saturday Summit on Twitch.tv. Join us as our community turns 200 days old. We'll have Nonprofit Project demos from 6 of our campers.  
// a(href='http://www.freecodecamp.com/twitch', target='_blank') Add it to your calendar here
// | .
// a.btn.btn-lg.btn-info.btn-block(name='_csrf', value=_csrf, aria-hidden='true', href='http://twitch.tv/freecodecamp', target='_blank') Follow us on Twitch.tv
// a.btn.btn-lg.btn-primary.btn-block(href='#', data-dismiss='modal', aria-hidden='true') Thanks for the heads-up!
//script.
// $(document).ready(function () {
// if (!localStorage || !localStorage.day200) {
// $('#announcementModal').modal('show');
// localStorage.day200 = "true";
// }
// });

View File

@@ -7,19 +7,19 @@ block content
.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', title='Get great references and connections to help you get a job')
img.img-responsive.landing-icon.img-center(src= 'https://s3.amazonaws.com/freecodecamp/landingIcons_connect.svg.gz', alt='Get great references and connections for your reto help you get a job')
p.landing-p Join a community of busy, motivated professionals.
.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', title='Learn to code')
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', title='Build a portfolio of apps for nonprofits')
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', title='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
@@ -78,15 +78,15 @@ block content
h2 Why you should join our community right now:
h3.col-xs-offset-0.col-sm-offset-1
ul.text-left
li.ion-code   We're thousands of professionals, all learning to code together
li.ion-code   We're building projects for dozens of nonprofits
li.ion-code   Our community is 100% free and open source
li.ion-code   You'll learn Full Stack JavaScript and become a Software Engineer
li.ion-code   You'll work through our focused, interactive courses and tutorials
li.ion-code   You'll learn to code at your own pace, in your browser or on your phone
li.ion-code   You'll become qualified for thousands of jobs currently going unfilled
li.ion-code   You can get help in real time from our community chat rooms
li.ion-code   We all share one common goal: to boost our careers with code
li.ion-code   We're thousands of professionals. We all learn to code together.
li.ion-code   We're building projects for dozens of nonprofits.
li.ion-code   Our community is 100% free and open source.
li.ion-code   You'll learn Full Stack JavaScript and become a Software Engineer.
li.ion-code   You'll work through our focused, interactive courses and tutorials.
li.ion-code   You'll learn to code at your own pace, in your browser or on your phone.
li.ion-code   You'll become qualified for thousands of jobs currently going unfilled.
li.ion-code   You can get help in real time from our community chat rooms.
li.ion-code   We all share one common goal: to boost our careers with code.
.big-break
.row
.col-xs-12.col-sm-8.col-sm-offset-2

View File

@@ -2,12 +2,9 @@ doctype html
html(ng-app='profileValidation', lang='en')
head
include partials/universal-head
!= css('main')
body.no-top-and-bottom-margins.full-screen-body-background
include partials/css-cdns
include partials/navbar
include partials/flash
block content
include partials/footer
!= js('application')

View File

@@ -2,7 +2,6 @@ doctype html
html(ng-app='profileValidation', lang='en')
head
include partials/universal-head
!= css('main')
body.top-and-bottom-margins
include partials/css-cdns
include partials/navbar
@@ -10,4 +9,3 @@ html(ng-app='profileValidation', lang='en')
include partials/flash
block content
include partials/footer
!= js('application')

View File

@@ -1,47 +0,0 @@
script.
var cb = function() {
var l = document.createElement('link');
l.rel = 'stylesheet';
l.href = '//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css';
var h = document.getElementsByTagName('head')[0]; h.parentNode.insertBefore(l, h);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(cb);
else window.addEventListener('load', cb);
var cb = function () {
var l = document.createElement('link');
l.rel = 'stylesheet';
l.href = '//maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css';
var h = document.getElementsByTagName('head')[0];
h.parentNode.insertBefore(l, h);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(cb);
else window.addEventListener('load', cb);
var cb = function () {
var l = document.createElement('link');
l.rel = 'stylesheet';
l.href = 'http://fonts.googleapis.com/css?family=Lato:400|Inconsolata';
var h = document.getElementsByTagName('head')[0];
h.parentNode.insertBefore(l, h);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(cb);
else window.addEventListener('load', cb);
var cb = function () {
var l = document.createElement('link');
l.rel = 'stylesheet';
l.href = '//cdn.jsdelivr.net/cal-heatmap/3.3.10/cal-heatmap.css';
var h = document.getElementsByTagName('head')[0];
h.parentNode.insertBefore(l, h);
};
var raf = requestAnimationFrame || mozRequestAnimationFrame ||
webkitRequestAnimationFrame || msRequestAnimationFrame;
if (raf) raf(cb);
else window.addEventListener('load', cb);

View File

@@ -1,6 +1,47 @@
script(src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js")
script(src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular.min.js")
script(src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.12.0/ui-bootstrap-tpls.min.js")
script.
window.jQuery || document.write('<script src="/bower_components/jquery/dist/jquery.min.js"><\/script>');
script(src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.11/angular.js")
script.
if (typeof window.angular === 'undefined') {
document.write('<script src="/bower_components/angular/angular.min.js"><\/script>')
}
script(src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.13.0/ui-bootstrap.min.js")
script.
try {
angular.module('ui.bootstrap');
} catch (e) {
document.write('<script src="/bower_components/angular-bootstrap/ui-bootstrap.min.js"><\/script>');
}
script(src="//cdnjs.cloudflare.com/ajax/libs/d3/3.5.5/d3.min.js")
script.
window.d3 || document.write('<script src="/bower_components/d3/d3.js"><\/script>');
script(src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.4/js/bootstrap.min.js")
script.
if (typeof($.fn.modal) === 'undefined') {
document.write('<script src="/bower_components/bootstrap/dist/js/bootstrap.min.js"><\/script>');
};
script(src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.2/moment.min.js")
script.
window.moment || document.write('<script src="/bower_components/moment/min/moment.min.js"><\/script>');
// Leave alone below
script(src="/js/main.js")
link(rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Lato:400|Inconsolata")
link(rel="stylesheet" type="text/css" href="/bower_components/cal-heatmap/cal-heatmap.css")
link(rel='stylesheet', href='/bower_components/font-awesome/css/font-awesome.min.css')
link(rel='stylesheet', href='/css/main.css')
include meta
title #{title} | Free Code Camp
meta(charset='utf-8')

View File

@@ -5,32 +5,31 @@ urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
loc http://www.freecodecamp.com/
changefreq weekly
lastmod= now
priority= 0.5
priority= 0.9
url
loc http://www.freecodecamp.com/nonprofits
changefreq weekly
lastmod= now
priority= 0.5
priority= 0.9
url
loc http://www.freecodecamp.com/learn-to-code
loc http://www.freecodecamp.com/pmi-acp-agile-project-managers
changefreq weekly
lastmod= now
priority= 0.5
priority= 0.9
url
loc http://www.freecodecamp.com/map
changefreq weekly
lastmod= now
priority= 0.9
url
loc http://www.freecodecamp.com/twitch
changefreq weekly
lastmod= now
priority= 0.5
//- Home page
url
loc= appUrl
lastmod= now
changefreq daily
priority= 0.8
priority= 0.9
//- User
each user in users
@@ -38,10 +37,8 @@ urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
loc #{appUrl}/#{user}
lastmod= now
changefreq daily
priority= 0.9
priority= 0.5
//- Products
each bonfire in bonfires
url
loc #{appUrl}/bonfires/#{bonfire.replace(/\s/g, '-')}
@@ -49,7 +46,6 @@ urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
changefreq weekly
priority= 0.5
//- Challenges
each challenge in challenges
url
loc #{appUrl}/challenges/#{challenge.replace(/\s/g, '-')}
@@ -57,7 +53,6 @@ urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
changefreq weekly
priority= 0.5
//- Stories
each story in stories
url
loc #{appUrl}/news/#{story.replace(/\s/g, '-')}
@@ -65,7 +60,6 @@ urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
changefreq daily
priority= 0.9
//- Nonprofit
each nonprofit in nonprofits
url
loc #{appUrl}/nonprofits/#{nonprofit.replace(/\s/g, '-')}
@@ -73,7 +67,6 @@ urlset(xmlns="http://www.sitemaps.org/schemas/sitemap/0.9")
changefreq daily
priority= 0.9
//- Nonprofit
each fieldGuide in fieldGuides
url
loc #{appUrl}/field-guide/#{fieldGuide.replace(/\s/g, '-')}

View File

@@ -31,16 +31,16 @@ block content
.col-xs-12
h2 Here are some of our previous shows (you can full-screen them):
.row.negative-20
.col-xs-12.col-sm-12.col-md-6
.embed-responsive.embed-responsive-16by9.big-break
iframe.embed-responsive-item(src='//www.youtube.com/embed/dolG-yRMcPs')
p.wrappable.negative-45 link: &thinsp;
a(href="http://www.youtube.com/watch/Fn9HMn79KH0") http://www.youtube.com/watch/dolG-yRMcPs
.col-xs-12.col-sm-12.col-md-6
.embed-responsive.embed-responsive-16by9.big-break
iframe.embed-responsive-item(src='//www.youtube.com/embed/YMz_vrK_KlQ')
p.wrappable.negative-45 link: &thinsp;
a(href="http://www.youtube.com/watch/_BErpDdmBOw") http://www.youtube.com/watch/YMz_vrK_KlQ
.col-xs-12.col-sm-12.col-md-6
.embed-responsive.embed-responsive-16by9.big-break
iframe.embed-responsive-item(src='//www.youtube.com/embed/vLcuOanKVMw')
p.wrappable.negative-45 link: &thinsp;
a(href="http://www.youtube.com/watch/Fn9HMn79KH0") http://www.youtube.com/watch/vLcuOanKVMw
.col-xs-12.col-sm-12.col-md-6
.embed-responsive.embed-responsive-16by9.big-break
iframe.embed-responsive-item(src='//www.youtube.com/embed/bbFVxaza8Ik')

View File

@@ -27,15 +27,18 @@
"<img class='mobile-story-image img-responsive' src='" + (!!data[i].image ? data[i].image : data[i].author.picture) + "'/>" +
"</a>" +
"</div>" +
"<div class='visible-xs'>" +
"<div class='col-xs-12 text-center'>" +
rank + (rank > 1 ? " points" : " point") + " · posted " +
moment(data[i].timePosted).fromNow() +
" by <a href='/" + data[i].author.username + "'>@" + data[i].author.username + "</a> " +
"</div>" +
"<div class='col-xs-12'>" +
"<br><a class='btn btn-no-shadow btn-primary btn-block btn-primary-ghost' href='/news/" + linkedName + "'>discuss</a>" +
"</div>" +
"<div class='col-xs-12 mobile-story-headline text-center'>" +
"<a href='" + data[i].link + "' target='_blank'>" +
data[i].headline +
"</a>" +
"</div>" +
"<div class='col-xs-12 text-center'>" +
rank + (rank > 1 ? " points" : " point") + " · posted " +
moment(data[i].timePosted).fromNow() +
" by <a href='/" + data[i].author.username + "'>@" + data[i].author.username + "</a> " +
"</div>" +
"<div class='col-xs-12'>" +
"<br><a class='btn btn-no-shadow btn-primary btn-block btn-primary-ghost' href='/news/" + linkedName + "'>discuss</a>" +
"</div>" +
"</div>" +
"<div class='hidden-xs row media-stories'>" +

View File

@@ -60,6 +60,11 @@ script.
"<img class='mobile-story-image img-responsive' src='" + (!!data[i].image ? data[i].image : data[i].author.picture) + "'/>" +
"</a>" +
"</div>" +
"<div class='col-xs-12 mobile-story-headline text-center'>" +
"<a href='" + data[i].link + "' target='_blank'>" +
data[i].headline +
"</a>" +
"</div>" +
"<div class='visible-xs'>" +
"<div class='col-xs-12 text-center'>" +
rank + (rank > 1 ? " points" : " point") + " · posted " +

View File

@@ -26,14 +26,18 @@ h3.row
.col-xs-12
h4= description
.negative-5
a#reply-to-main-post.btn.btn-no-shadow.btn-primary.btn-xs.btn-primary-ghost Reply
| &thinsp;·&thinsp;&thinsp;
if !hasUserVoted
a#upvote.btn.btn-no-shadow.btn-primary.btn-xs.btn-primary-ghost Upvote
if !user
a#upvote.btn.signup-btn.btn-xs(href='/signin') Sign in to reply or upvote
| &thinsp;·&thinsp;
else
a#upvote.btn.disabled.btn-no-shadow.btn-primary.btn-xs.btn-primary-ghost Upvoted!
| &thinsp;·&thinsp;
a#reply-to-main-post.btn.btn-no-shadow.btn-primary.btn-xs.btn-primary-ghost Reply
| &thinsp;·&thinsp;&thinsp;
if !hasUserVoted
a#upvote.btn.btn-no-shadow.btn-primary.btn-xs.btn-primary-ghost Upvote
| &thinsp;·&thinsp;
else
a#upvote.btn.disabled.btn-no-shadow.btn-primary.btn-xs.btn-primary-ghost Upvoted!
| &thinsp;·&thinsp;
span#storyRank= rank + (rank > 1 ? " points" : " point")
| &thinsp;·&thinsp;
span Posted #{timeAgo}
@@ -56,10 +60,6 @@ script.
$('#image-display').removeClass('hidden-element')
}
$('#reply-to-main-post').on('click', function() {
if (!isLoggedIn) {
window.location.href = '/signin';
return;
}
$('#initial-comment-submit').removeClass('hidden-element');
$(this).unbind('click');
$('.comment-to-comment-formgroup').empty();