Add course membership required error to LevelLoadingView

This commit is contained in:
Scott Erickson 2015-10-06 12:48:39 -07:00
parent 75b9cb50d9
commit 2d2f4814f4
5 changed files with 17 additions and 3 deletions
app
models
schemas/subscriptions
styles/play/level
templates/play/level
views/play/level

View file

@ -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

View file

@ -171,3 +171,5 @@ module.exports =
hero: {type: 'object'}
'level:subscription-required': c.object {}
'level:course-membership-required': c.object {}

View file

@ -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

View file

@ -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.

View file

@ -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')