Merge branch 'master' into production

This commit is contained in:
Nick Winter 2016-01-14 10:23:54 -08:00
commit 221ece5290
6 changed files with 21 additions and 20 deletions

View file

@ -25,7 +25,7 @@ before_script:
- export DISPLAY=:99.0 - export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start - sh -e /etc/init.d/xvfb start
- "node index.js --unittest &" - "node index.js --unittest &"
- "sleep 10" # to give node a chance to start - "sleep 15" # to give node a chance to start
script: script:
- "./node_modules/karma/bin/karma start --browsers Firefox --single-run --reporters progress" - "./node_modules/karma/bin/karma start --browsers Firefox --single-run --reporters progress"

View file

@ -7,7 +7,6 @@ if StripeCheckout?
email: me.get('email') email: me.get('email')
image: "https://codecombat.com/images/pages/base/logo_square_250.png" image: "https://codecombat.com/images/pages/base/logo_square_250.png"
token: (token) -> token: (token) ->
console.log 'trigger?', handler.trigger
handler.trigger 'received-token', { token: token } handler.trigger 'received-token', { token: token }
Backbone.Mediator.publish 'stripe:received-token', { token: token } Backbone.Mediator.publish 'stripe:received-token', { token: token }
locale: 'auto' locale: 'auto'
@ -15,4 +14,4 @@ if StripeCheckout?
else else
module.exports = {} module.exports = {}
console.error "Failure loading StripeCheckout API, returning empty object." console.error "Failure loading StripeCheckout API, returning empty object."
_.extend(handler, Backbone.Events) _.extend(handler, Backbone.Events)

View file

@ -15,7 +15,7 @@ userPropsToSave =
module.exports = FacebookHandler = class FacebookHandler extends CocoClass module.exports = FacebookHandler = class FacebookHandler extends CocoClass
subscriptions: subscriptions:
'auth:logged-in-with-facebook': 'onFacebookLoggedIn' 'auth:logged-in-with-facebook': 'onFacebookLoggedIn'
loggedIn: false loggedIn: false
onFacebookLoggedIn: (e) -> onFacebookLoggedIn: (e) ->
@ -27,19 +27,19 @@ module.exports = FacebookHandler = class FacebookHandler extends CocoClass
unless me.get(userProp) unless me.get(userProp)
@loggedIn = true @loggedIn = true
break break
if @waitingForLogin and @loggedIn if @waitingForLogin and @loggedIn
@fetchMeForLogin() @fetchMeForLogin()
loginThroughFacebook: -> loginThroughFacebook: ->
if @loggedIn if @loggedIn
@fetchMeForLogin() @fetchMeForLogin()
else else
FB.login() FB.login()
@waitingForLogin = true @waitingForLogin = true
fetchMeForLogin: -> fetchMeForLogin: ->
FB.api('/me', @onReceiveMeInfo) FB.api('/me', {fields: 'email,last_name,first_name,gender'}, @onReceiveMeInfo)
onReceiveMeInfo: (r) => onReceiveMeInfo: (r) =>
unless r.email unless r.email

View file

@ -147,8 +147,9 @@
.teacher-quote .teacher-quote
font-family: Merriweather font-family: Merriweather
font-weight: 300 font-weight: 300
font-size: 18px font-size: 15px
line-height: 20px line-height: 20px
padding-top: 5px
.teacher-name .teacher-name
font-family: Helvetica, sans-serif font-family: Helvetica, sans-serif
@ -178,7 +179,7 @@
background-repeat: no-repeat background-repeat: no-repeat
background-size: 100% auto background-size: 100% auto
height: 265px height: 265px
padding: 12px padding: 20px 12px 12px 12px
margin-left: 10px margin-left: 10px
.teacher-quote .teacher-quote

View file

@ -47,13 +47,13 @@ block content
.col-md-5 .col-md-5
img#img-game(src='/images/pages/sales/screen1.png') img#img-game(src='/images/pages/sales/screen1.png')
.text-center .text-center
i i
small Students learn by writing code to complete levels in the game. small Students learn by writing code to complete levels in the game.
.col-md-7 .col-md-7
#blurb1 #blurb1
//- TODO: why don't jade inline tags work here? //- TODO: why don't jade inline tags work here?
//- http://stackoverflow.com/questions/10953326/what-is-a-concise-way-to-create-inline-elements-in-jade //- http://stackoverflow.com/questions/10953326/what-is-a-concise-way-to-create-inline-elements-in-jade
p p
strong.spr CodeCombat strong.spr CodeCombat
span.spr is a platform for students to learn programming all while playing a game with their classmates. We believe in encouraging span.spr is a platform for students to learn programming all while playing a game with their classmates. We believe in encouraging
strong.spr real, typed code strong.spr real, typed code
@ -83,7 +83,7 @@ block content
.col-md-5 .col-md-5
img.img-game(src='/images/pages/sales/screen2.png') img.img-game(src='/images/pages/sales/screen2.png')
.text-center .text-center
i i
small Teachers can monitor progress, manage classrooms and more. small Teachers can monitor progress, manage classrooms and more.
if me.isAnonymous() if me.isAnonymous()
@ -102,13 +102,14 @@ block content
td td
#quote1-container #quote1-container
.teacher-quote .teacher-quote
span.spr "My class had been struggling with the basics of Python all year. Today they were having fun and getting into it span.spr “My class had been struggling with the basics of Python all year. Today they were having fun and getting into it
strong - I think they actually forgot that they were actually learning something." strong - I think they forgot that they were actually learning something.”
.row .row
.col-md-4 .col-md-4
.col-md-8 .col-md-8
.hero-quote-attribution .hero-quote-attribution
.teacher-name Tim M. .teacher-name Tim M.
a(href='https://twitter.com/timmaki',target='_blank') @timmaki
.teacher-location Director of Technology, Tilton School .teacher-location Director of Technology, Tilton School
td td
#quote2-container #quote2-container
@ -120,8 +121,8 @@ block content
.teacher-location.text-right Global Learning Charter Public School .teacher-location.text-right Global Learning Charter Public School
.col-md-4 .col-md-4
.teacher-quote .teacher-quote
span.spr "My girls, who were apprehensive about taking a coding class, are some of my top students. span.spr “My girls, who were apprehensive about taking a coding class, are some of my top students.
strong They work together and explain the code to each other to make sure each understands." strong They work together and explain the code to each other to make sure each understands.”
br br
.text-center.section-subheader Students play CodeCombat during #HourOfCode 2015 .text-center.section-subheader Students play CodeCombat during #HourOfCode 2015
@ -192,7 +193,7 @@ block content
p Per-student pricing allows us to better support flexibility for both large and small schools. Contact us if you are interested in purchasing paid course enrollments for your classroom or school. Free trials are also available upon request. p Per-student pricing allows us to better support flexibility for both large and small schools. Contact us if you are interested in purchasing paid course enrollments for your classroom or school. Free trials are also available upon request.
.col-md-4 .col-md-4
.well .well
p.text-center.blurb-subtitle Resources for Teachers p.text-center.blurb-subtitle Resources for Teachers
p p
a(href='http://codecombat.com/docs/CodeCombatHourofCodeGettingStartedGuide.pdf') a(href='http://codecombat.com/docs/CodeCombatHourofCodeGettingStartedGuide.pdf')

View file

@ -201,13 +201,13 @@ module.exports = class SubscribeModal extends ModalView
@state = 'unknown_error' @state = 'unknown_error'
@stateMessage = "Uknown problem occurred while processing Stripe request" @stateMessage = "Uknown problem occurred while processing Stripe request"
onSubscriptionSuccess: => onSubscriptionSuccess: ->
application.tracker?.trackEvent 'Finished subscription purchase', value: @purchasedAmount application.tracker?.trackEvent 'Finished subscription purchase', value: @purchasedAmount
Backbone.Mediator.publish 'subscribe-modal:subscribed', {} Backbone.Mediator.publish 'subscribe-modal:subscribed', {}
@playSound 'victory' @playSound 'victory'
@hide() @hide()
onSubscriptionError: (user, response, options) => onSubscriptionError: (user, response, options) ->
console.error 'We got an error subscribing with Stripe from our server:', response console.error 'We got an error subscribing with Stripe from our server:', response
application.tracker?.trackEvent 'Failed to finish subscription purchase', status: options.xhr?.status, value: @purchasedAmount application.tracker?.trackEvent 'Failed to finish subscription purchase', status: options.xhr?.status, value: @purchasedAmount
stripe = me.get('stripe') ? {} stripe = me.get('stripe') ? {}