diff --git a/.travis.yml b/.travis.yml index e2fe43667..3486ab76b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,7 +25,7 @@ before_script: - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start - "node index.js --unittest &" - - "sleep 10" # to give node a chance to start + - "sleep 15" # to give node a chance to start script: - "./node_modules/karma/bin/karma start --browsers Firefox --single-run --reporters progress" diff --git a/app/core/services/stripe.coffee b/app/core/services/stripe.coffee index 7bdab0231..8a77e5dca 100644 --- a/app/core/services/stripe.coffee +++ b/app/core/services/stripe.coffee @@ -7,7 +7,6 @@ if StripeCheckout? email: me.get('email') image: "https://codecombat.com/images/pages/base/logo_square_250.png" token: (token) -> - console.log 'trigger?', handler.trigger handler.trigger 'received-token', { token: token } Backbone.Mediator.publish 'stripe:received-token', { token: token } locale: 'auto' @@ -15,4 +14,4 @@ if StripeCheckout? else module.exports = {} console.error "Failure loading StripeCheckout API, returning empty object." -_.extend(handler, Backbone.Events) \ No newline at end of file +_.extend(handler, Backbone.Events) diff --git a/app/core/social-handlers/FacebookHandler.coffee b/app/core/social-handlers/FacebookHandler.coffee index c53d5f0d2..666dad1d3 100644 --- a/app/core/social-handlers/FacebookHandler.coffee +++ b/app/core/social-handlers/FacebookHandler.coffee @@ -15,7 +15,7 @@ userPropsToSave = module.exports = FacebookHandler = class FacebookHandler extends CocoClass subscriptions: 'auth:logged-in-with-facebook': 'onFacebookLoggedIn' - + loggedIn: false onFacebookLoggedIn: (e) -> @@ -27,19 +27,19 @@ module.exports = FacebookHandler = class FacebookHandler extends CocoClass unless me.get(userProp) @loggedIn = true break - + if @waitingForLogin and @loggedIn @fetchMeForLogin() - + loginThroughFacebook: -> if @loggedIn @fetchMeForLogin() else FB.login() @waitingForLogin = true - + fetchMeForLogin: -> - FB.api('/me', @onReceiveMeInfo) + FB.api('/me', {fields: 'email,last_name,first_name,gender'}, @onReceiveMeInfo) onReceiveMeInfo: (r) => unless r.email diff --git a/app/styles/sales-view.sass b/app/styles/sales-view.sass index decdfbe3d..33dc210c0 100644 --- a/app/styles/sales-view.sass +++ b/app/styles/sales-view.sass @@ -147,8 +147,9 @@ .teacher-quote font-family: Merriweather font-weight: 300 - font-size: 18px + font-size: 15px line-height: 20px + padding-top: 5px .teacher-name font-family: Helvetica, sans-serif @@ -178,7 +179,7 @@ background-repeat: no-repeat background-size: 100% auto height: 265px - padding: 12px + padding: 20px 12px 12px 12px margin-left: 10px .teacher-quote diff --git a/app/templates/sales-view.jade b/app/templates/sales-view.jade index 5c045755a..068c8b3a3 100644 --- a/app/templates/sales-view.jade +++ b/app/templates/sales-view.jade @@ -47,13 +47,13 @@ block content .col-md-5 img#img-game(src='/images/pages/sales/screen1.png') .text-center - i + i small Students learn by writing code to complete levels in the game. .col-md-7 #blurb1 //- 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 - p + p 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 strong.spr real, typed code @@ -83,7 +83,7 @@ block content .col-md-5 img.img-game(src='/images/pages/sales/screen2.png') .text-center - i + i small Teachers can monitor progress, manage classrooms and more. if me.isAnonymous() @@ -102,13 +102,14 @@ block content td #quote1-container .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 - strong - I think they actually forgot that they were actually learning something." + 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 forgot that they were actually learning something.” .row .col-md-4 .col-md-8 .hero-quote-attribution .teacher-name Tim M. + a(href='https://twitter.com/timmaki',target='_blank') @timmaki .teacher-location Director of Technology, Tilton School td #quote2-container @@ -120,8 +121,8 @@ block content .teacher-location.text-right Global Learning Charter Public School .col-md-4 .teacher-quote - 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." + 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.” br .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. .col-md-4 - .well + .well p.text-center.blurb-subtitle Resources for Teachers p a(href='http://codecombat.com/docs/CodeCombatHourofCodeGettingStartedGuide.pdf') diff --git a/app/views/core/SubscribeModal.coffee b/app/views/core/SubscribeModal.coffee index 166a0ef4d..a65c294fc 100644 --- a/app/views/core/SubscribeModal.coffee +++ b/app/views/core/SubscribeModal.coffee @@ -201,13 +201,13 @@ module.exports = class SubscribeModal extends ModalView @state = 'unknown_error' @stateMessage = "Uknown problem occurred while processing Stripe request" - onSubscriptionSuccess: => + onSubscriptionSuccess: -> application.tracker?.trackEvent 'Finished subscription purchase', value: @purchasedAmount Backbone.Mediator.publish 'subscribe-modal:subscribed', {} @playSound 'victory' @hide() - onSubscriptionError: (user, response, options) => + onSubscriptionError: (user, response, options) -> 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 stripe = me.get('stripe') ? {}