diff --git a/app/models/CocoModel.coffee b/app/models/CocoModel.coffee index 94cffaea0..b75491871 100644 --- a/app/models/CocoModel.coffee +++ b/app/models/CocoModel.coffee @@ -51,7 +51,10 @@ class CocoModel extends Backbone.Model @loading = false @jqxhr = null if jqxhr.status is 402 - Backbone.Mediator.publish 'level:subscription-required', {} + if _.contains(jqxhr.responseText, 'be in a course') + Backbone.Mediator.publish 'level:course-membership-required', {} + else + Backbone.Mediator.publish 'level:subscription-required', {} onLoaded: -> @loaded = true diff --git a/app/schemas/subscriptions/play.coffee b/app/schemas/subscriptions/play.coffee index d4f967578..303e0bd2a 100644 --- a/app/schemas/subscriptions/play.coffee +++ b/app/schemas/subscriptions/play.coffee @@ -171,3 +171,5 @@ module.exports = hero: {type: 'object'} 'level:subscription-required': c.object {} + + 'level:course-membership-required': c.object {} diff --git a/app/styles/play/level/loading.sass b/app/styles/play/level/loading.sass index afbf6c6ec..10c62bee3 100644 --- a/app/styles/play/level/loading.sass +++ b/app/styles/play/level/loading.sass @@ -111,13 +111,13 @@ font-variant: small-caps text-transform: none - .subscription-required + .subscription-required, .course-membership-required display: none margin-top: -160px color: black font-size: 24px - .start-subscription-button + .btn width: 100% margin: 0px auto font-size: 40px diff --git a/app/templates/play/level/level_loading.jade b/app/templates/play/level/level_loading.jade index 236f07d69..96930956c 100644 --- a/app/templates/play/level/level_loading.jade +++ b/app/templates/play/level/level_loading.jade @@ -24,6 +24,10 @@ span(data-i18n="subscribe.subscription_required_to_play") You'll need a subscription to play this level. button.start-subscription-button.btn.btn-lg.btn-warning(data-i18n="subscribe.subscribe") Subscribe + .course-membership-required + span(data-i18n="courses.course_membership_required_to_play") You'll need to join a course to play this level. + a.btn.btn-lg.btn-warning(data-i18n="courses.go_to_courses", href="/courses") Go To Courses + #tip-wrapper strong.tip(data-i18n='play_level.tip_toggle_play') Toggle play/paused with Ctrl+P. strong.tip(data-i18n='play_level.tip_scrub_shortcut') Ctrl+[ and Ctrl+] rewind and fast-forward. diff --git a/app/views/play/level/LevelLoadingView.coffee b/app/views/play/level/LevelLoadingView.coffee index f95791231..3a7211d9a 100644 --- a/app/views/play/level/LevelLoadingView.coffee +++ b/app/views/play/level/LevelLoadingView.coffee @@ -15,6 +15,7 @@ module.exports = class LevelLoadingView extends CocoView subscriptions: 'level:loaded': 'onLevelLoaded' # If Level loads after level loading view. 'level:subscription-required': 'onSubscriptionRequired' # If they'd need a subscription to start playing. + 'level:course-membership-required': 'onCourseMembershipRequired' # If they'd need a subscription to start playing. 'subscribe-modal:subscribed': 'onSubscribed' shortcuts: @@ -109,6 +110,10 @@ module.exports = class LevelLoadingView extends CocoView @$el.find('.level-loading-goals, .tip, .load-progress').hide() @$el.find('.subscription-required').show() + onCourseMembershipRequired: (e) -> + @$el.find('.level-loading-goals, .tip, .load-progress').hide() + @$el.find('.course-membership-required').show() + onClickStartSubscription: (e) -> @openModalView new SubscribeModal() window.tracker?.trackEvent 'Show subscription modal', category: 'Subscription', label: 'level loading', level: @level?.get('slug') or @options.level?.get('slug')