mirror of
https://github.com/codeninjasllc/codecombat.git
synced 2024-12-14 01:31:15 -05:00
Merge branch 'master' into production
This commit is contained in:
commit
221ece5290
6 changed files with 21 additions and 20 deletions
|
@ -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"
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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')
|
||||||
|
|
|
@ -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') ? {}
|
||||||
|
|
Loading…
Reference in a new issue