15 minutels and only if > 1 person
This commit is contained in:
parent
c572b0ac27
commit
96a55d9894
|
|
@ -510,6 +510,21 @@ profileUtils = context.JK.ProfileUtils
|
|||
defaultText: () ->
|
||||
'Select Country'
|
||||
|
||||
onStartPaypal: (e) ->
|
||||
e.preventDefault()
|
||||
@paypal = window.recurly.PayPal({ display: { displayName: 'JamKazam Subscriptions' }})
|
||||
@paypal.on('error', this.onPayPalError)
|
||||
@paypal.on('token', this.onPayPalToken)
|
||||
@paypal.start();
|
||||
|
||||
onPayPalToken:(token) ->
|
||||
console.log("OnPayPalToken", token)
|
||||
|
||||
onPayPalError: (err) ->
|
||||
console.error("OnPayPalError", err)
|
||||
|
||||
|
||||
|
||||
openBrowserToPayment: () ->
|
||||
context.JK.popExternalLink("/client#/account/paymentHistory", true)
|
||||
|
||||
|
|
@ -608,6 +623,7 @@ profileUtils = context.JK.ProfileUtils
|
|||
<div className={classNames(leftColumnClasses)}>
|
||||
{uncollectableMessage}
|
||||
<div className="paymethod-header">{header}</div>
|
||||
<a href='#' onClick={this.onStartPaypal}>Pay with Paypal</a>
|
||||
<form autoComplete="on" onSubmit={this.onSubmit} className={classNames(formClasses)} id="user-payment-submit">
|
||||
{firstNameField}
|
||||
{lastNameField}
|
||||
|
|
|
|||
|
|
@ -54,24 +54,25 @@ context = window
|
|||
|
||||
render: () ->
|
||||
content = null
|
||||
if @props.subscription.until.total < 60000
|
||||
content = `<div className="message">
|
||||
<p>You have run out of time.</p>
|
||||
<p><a href="#" onClick={this.openBrowserToPlanComparison}>Compare plans</a> and consider <a href="/client#/account/subscription" onClick={this.openBrowserToPayment}>upgrading your plan</a> for more play time and premium features.</p>
|
||||
</div>`
|
||||
else
|
||||
if @props.subscription.main_concern_type == 'remaining_session_play_time'
|
||||
if @props.subscription.participants > 1
|
||||
if @props.subscription.until.total < 60000
|
||||
content = `<div className="message">
|
||||
<p>You will run out play time for this session in:</p>
|
||||
<p className="time">{this.displayTime()}</p>
|
||||
<p>You have run out of time.</p>
|
||||
<p><a href="#" onClick={this.openBrowserToPlanComparison}>Compare plans</a> and consider <a href="/client#/account/subscription" onClick={this.openBrowserToPayment}>upgrading your plan</a> for more play time and premium features.</p>
|
||||
</div>`
|
||||
else
|
||||
content = `<div className="message">
|
||||
<p>You will run out of monthly play time in:</p>
|
||||
if @props.subscription.main_concern_type == 'remaining_session_play_time'
|
||||
content = `<div className="message">
|
||||
<p>You will run out play time for this session in:</p>
|
||||
<p className="time">{this.displayTime()}</p>
|
||||
<p><a href="#" onClick={this.openBrowserToPlanComparison}>Compare plans</a> and consider <a href="/client#/account/subscription" onClick={this.openBrowserToPayment}>upgrading your plan</a> for more play time and premium features.</p>
|
||||
</div>`
|
||||
<p><a href="#" onClick={this.openBrowserToPlanComparison}>Compare plans</a> and consider <a href="/client#/account/subscription" onClick={this.openBrowserToPayment}>upgrading your plan</a> for more play time and premium features.</p>
|
||||
</div>`
|
||||
else
|
||||
content = `<div className="message">
|
||||
<p>You will run out of monthly play time in:</p>
|
||||
<p className="time">{this.displayTime()}</p>
|
||||
<p><a href="#" onClick={this.openBrowserToPlanComparison}>Compare plans</a> and consider <a href="/client#/account/subscription" onClick={this.openBrowserToPayment}>upgrading your plan</a> for more play time and premium features.</p>
|
||||
</div>`
|
||||
|
||||
if content?
|
||||
`<div className="broadcast-notification subscription">
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;
|
|||
@TopMessageHolder = React.createClass(
|
||||
{
|
||||
displayName: 'Top Message Holder',
|
||||
minimum_time_until_sub_prompt: 1000 * 60 * 30 # 30 minutes
|
||||
minimum_time_until_sub_prompt: 1000 * 60 * 15 # 30 minutes
|
||||
mixins: [Reflux.listenTo(ConfigStore, "onConfig"), Reflux.connect(context.JK.Stores.Broadcast, 'notification')]
|
||||
|
||||
getInitialState: () ->
|
||||
|
|
@ -25,7 +25,7 @@ ReactCSSTransitionGroup = React.addons.CSSTransitionGroup;
|
|||
# only show the subscription concern message if there is a concerpn and due time is less thant 30 minutes away
|
||||
if @state.notification && @state.notification.subscriptionConcern? && @state.notification.subscriptionConcern.until.total < @minimum_time_until_sub_prompt
|
||||
`<div id="broadcast-notification-holder" className="broadcast-notification-holder" >
|
||||
<SubscriptionConcern key="subscriptionconcern" subscription={this.state.notification.subscriptionConcern} />
|
||||
<SubscriptionConcern key="subscriptionconcern" subscription={this.state.notification.subscriptionConcern} />
|
||||
</div>`
|
||||
else if @state.top_message
|
||||
`<div id="broadcast-notification-holder" className="broadcast-notification-holder" >
|
||||
|
|
|
|||
|
|
@ -47,7 +47,7 @@ BroadcastStore = Reflux.createStore(
|
|||
|
||||
subscriptionManagement: () ->
|
||||
@subscriptionConcern.until = @lessonUtils.getTimeRemaining(@subscriptionConcern.main_concern_time)
|
||||
if @subscriptionConcern.until.total < -30000
|
||||
if @session?.participants.length > 1 && @subscriptionConcern.until.total < -30000
|
||||
leaveBehavior =
|
||||
location: "/client#/findSession"
|
||||
buttons = []
|
||||
|
|
@ -158,6 +158,7 @@ BroadcastStore = Reflux.createStore(
|
|||
@subscriptionConcern = null
|
||||
else
|
||||
@subscriptionConcern = {}
|
||||
@subscriptionConcern.participants = @session?.participants().length
|
||||
if !@subscriptionRules.remaining_month_until?
|
||||
@subscriptionConcern.main_concern_time = @sessionRules.remaining_session_until
|
||||
@subscriptionConcern.main_concern_type = "remaining_session_play_time"
|
||||
|
|
@ -175,7 +176,7 @@ BroadcastStore = Reflux.createStore(
|
|||
@subscriptionManagement()
|
||||
#logger.debug("BroadcastStore: session can play until: ", @subscriptionConcern.until, @subscriptionConcern.main_concert_time)
|
||||
if !@currentSubscriptionTimer?
|
||||
@currentSubscriptionTimer= setInterval((() => @subscriptionTick()), 1000)
|
||||
@currentSubscriptionTimer = setInterval((() => @subscriptionTick()), 1000)
|
||||
@changed()
|
||||
|
||||
if currentSession.lesson_session?
|
||||
|
|
|
|||
|
|
@ -1094,7 +1094,7 @@ ConfigureTracksActions = @ConfigureTracksActions
|
|||
if sessionData.session_rules
|
||||
@sessionRules = sessionData.session_rules
|
||||
# TESTING:
|
||||
#@sessionRules.remaining_session_play_time = 60 * 30 + 15 # 30 minutes and 15 seconds
|
||||
#@sessionRules.remaining_session_play_time = 60 * 15 + 15 # 15 minutes and 15 seconds
|
||||
|
||||
# compute timestamp due time
|
||||
if @sessionRules.remaining_session_play_time?
|
||||
|
|
@ -1111,7 +1111,7 @@ ConfigureTracksActions = @ConfigureTracksActions
|
|||
#context.jamClient.applySubscriptionPolicy()
|
||||
@subscriptionRules = sessionData.subscription
|
||||
# TESTING:
|
||||
#@subscriptionRules.remaining_month_play_time = 60 * 30 + 15 # 30 minutes and 15 seconds
|
||||
#@subscriptionRules.remaining_month_play_time = 60 * 15 + 15 # 15 minutes and 15 seconds
|
||||
|
||||
if @subscriptionRules.remaining_month_play_time?
|
||||
until_time = new Date()
|
||||
|
|
|
|||
|
|
@ -1161,7 +1161,6 @@
|
|||
|
||||
context.JK.clientType = function () {
|
||||
if (client_type) {
|
||||
console.log("SHORT CUT", client_type);
|
||||
return client_type;
|
||||
}
|
||||
else {
|
||||
|
|
|
|||
|
|
@ -490,5 +490,10 @@ if defined?(Bundler)
|
|||
{id: 'jamsubsilveryearly', name: 'Silver', price: 49.99, cycle: 'year'},
|
||||
{id: 'jamsubgoldyearly', name: 'Gold', price:99.99, cycle: 'year'},
|
||||
{id: 'jamsubplatinumyearly', name: 'Platinum', price:199.99, cycle: 'year'}]
|
||||
|
||||
# sandbox
|
||||
# braintree: merchant id: 5v5rwm94m2vrfbms
|
||||
# braintree: public key: 367d6dtdswvdr87s
|
||||
# braintree: private key: 8309b8f9c669cfa940f617eb9cac56ea
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Reference in New Issue