extends ../layout
block scripts
script(src="https://js.recurly.com/v3/recurly.js")
script(type='text/javascript').
window.recomendedCurrency = '#{recomendedCurrency}'
window.recurlyApiKey = "!{settings.apis.recurly.publicKey}"
window.taxRate = #{taxRate}
window.subscription = !{JSON.stringify(subscription)}
mixin printPlan(plan)
-if (!plan.hideFromUsers)
tr(ng-controller="ChangePlanFormController", ng-init="plan="+JSON.stringify(plan), ng-show="shouldShowPlan(plan.planCode)")
td
strong #{plan.name}
td {{refreshPrice(plan.planCode)}}
-if (plan.annual)
| {{prices[plan.planCode]}} / #{translate("year")}
-else
| {{prices[plan.planCode]}} / #{translate("month")}
td
-if (subscription.state == "free-trial")
a(href="/user/subscription/new?planCode="+plan.planCode).btn.btn-success #{translate("subscribe_to_this_plan")}
-else if (typeof(subscription.planCode) != "undefined" && plan.planCode == subscription.planCode.split("_")[0])
button.btn.disabled #{translate("your_plan")}
-else
form
input(type="hidden", ng-model="plan_code", name="plan_code", value=plan.planCode)
input(type="submit", ng-click="changePlan()", value=translate("change_to_this_plan")).btn.btn-success
mixin printPlans(plans)
each plan in plans
+printPlan(plan)
block content
.content.content-alt(ng-cloak)
.container(ng-controller="UserSubscriptionController")
.row
.col-md-8.col-md-offset-2
if saved_billing_details
.alert.alert-success
i.fa.fa-check
|
| #{translate("your_billing_details_were_saved")}
.card(ng-if="view == 'overview'")
.page-header(x-current-plan=subscription.planCode)
h1 #{translate("your_subscription")}
- if (subscription && user._id+'' == subscription.admin_id+'')
case subscription.state
when "free-trial"
p !{translate("on_free_trial_expiring_at", {expiresAt:"" + subscription.expiresAt + ""})}
when "active"
p !{translate("currently_subscribed_to_plan", {planName:"" + subscription.name + ""})}
span(ng-show="!isNextGenPlan")
a(href, ng-click="changePlan = true") !{translate("change_plan")}.
p !{translate("next_payment_of_x_collectected_on_y", {paymentAmmount:"" + subscription.price + "", collectionDate:"" + subscription.nextPaymentDueAt + ""})}
p.pull-right
p
if billingDetailsLink
a(href=billingDetailsLink, target="_blank").btn.btn-info #{translate("update_your_billing_details")}
else
a(href=billingDetailsLink, disabled).btn.btn-info.btn-disabled #{translate("update_your_billing_details")}
|
a(href, ng-click="switchToCancelationView()").btn.btn-primary !{translate("cancel_your_subscription")}
when "canceled"
p !{translate("currently_subscribed_to_plan", {planName:"" + subscription.name + ""})}
p !{translate("subscription_canceled_and_terminate_on_x", {terminateDate:"" + subscription.nextPaymentDueAt + ""})}
p: form(action="/user/subscription/reactivate",method="post")
input(type="hidden", name="_csrf", value=csrfToken)
input(type="submit",value="Reactivate your subscription").btn.btn-success
when "expired"
p !{translate("your_subscription_has_expired")}
a(href="/user/subscription/plans") !{translate("create_new_subscription")}
default
-if(groupSubscriptions.length == 0)
p !{translate("problem_with_subscription_contact_us")}
div(ng-show="changePlan", ng-cloak)#changePlanSection
h2.col-md-7 !{translate("change_plan")}
span.dropdown.col-md-1.changePlanButton(ng-controller="CurrenyDropdownController", style="display:none", dropdown)
a.btn.btn-primary.dropdown-toggle(
href="#",
data-toggle="dropdown",
dropdown-toggle
)
| {{currencyCode}} ({{plans[currencyCode]['symbol']}})
ul.dropdown-menu(role="menu")
li(ng-repeat="(currency, value) in plans", dropdown-toggle)
a(
href,
ng-click="changeCurrency(currency)"
) {{currency}} ({{value['symbol']}})
p: table.table
tr
th !{translate("name")}
th !{translate("price")}
th
+printPlans(plans.studentAccounts)
+printPlans(plans.individualMonthlyPlans)
+printPlans(plans.individualAnnualPlans)
hr
each groupSubscription in groupSubscriptions
- if (user._id+'' != groupSubscription.admin_id._id+'')
div
p !{translate("member_of_group_subscription", {admin_email: "" + groupSubscription.admin_id.email + ""})}
span
button.btn.btn-danger.text-capitalise(ng-click="removeSelfFromGroup('"+groupSubscription.admin_id._id+"')") #{translate("leave_group")}
hr
-if(subscription.groupPlan && user._id+'' == subscription.admin_id+'')
div
a(href="/subscription/group").btn.btn-primary !{translate("manage_group")}
hr
if v1Subscriptions.has_subscription
p
| You are subscribed to Overleaf through Overleaf v1
p
a.btn.btn-primary(href=settings.overleaf.host+"/users/edit#status") Manage v1 Subscription
hr
if v1Subscriptions.teams && v1Subscriptions.teams.length > 0
for team in v1Subscriptions.teams
p
| You are a member of the Overleaf v1 team: #{team.name}
p
a.btn.btn-primary(href=settings.overleaf.host+"/teams") Manage v1 Team Membership
hr
.card(ng-if="view == 'cancelation'")
.page-header
h1 #{translate("Cancel Subscription")}
div(ng-show="showExtendFreeTrial", style="text-align: center")
p !{translate("have_more_days_to_try", {days:14})}
button(type="submit", ng-click="exendTrial()", ng-disabled='inflight').btn.btn-success #{translate("ill_take_it")}
p
|
p
a(href, ng-click="cancelSubscription()", ng-disabled='inflight') #{translate("no_thanks_cancel_now")}
div(ng-show="showDowngradeToStudent", style="text-align: center")
span(ng-controller="ChangePlanFormController")
p !{translate("interested_in_cheaper_plan",{price:'{{studentPrice}}'})}
button(type="submit", ng-click="downgradeToStudent()", ng-disabled='inflight').btn.btn-success #{translate("yes_please")}
p
|
p
a(href, ng-click="cancelSubscription()", ng-disabled='inflight') #{translate("no_thanks_cancel_now")}
div(ng-show="showBasicCancel")
p #{translate("sure_you_want_to_cancel")}
a(href="/project").btn.btn-info #{translate("i_want_to_stay")}
|
a(ng-click="cancelSubscription()", ng-disabled='inflight').btn.btn-primary #{translate("cancel_my_account")}
script(type="text/javascript").
$('#cancelSubscription').on("click", function() {
ga('send', 'event', 'subscription-funnel', 'cancelation')
})
script(type='text/ng-template', id='confirmChangePlanModalTemplate')
.modal-header
h3 #{translate("change_plan")}
.modal-body
p !{translate("sure_you_want_to_change_plan", {planName:"{{plan.name}}"})}
.modal-footer
button.btn.btn-default(
ng-disabled="inflight"
ng-click="cancel()"
) #{translate("cancel")}
button.btn.btn-success(
ng-disabled="state.inflight"
ng-click="confirmChangePlan()"
)
span(ng-hide="inflight") #{translate("change_plan")}
span(ng-show="inflight") #{translate("processing")}...
script(type='text/ng-template', id='LeaveGroupModalTemplate')
.modal-header
h3 #{translate("leave_group")}
.modal-body
p #{translate("sure_you_want_to_leave_group")}
.modal-footer
button.btn.btn-default(
ng-disabled="inflight"
ng-click="cancel()"
) #{translate("cancel")}
button.btn.btn-danger(
ng-disabled="state.inflight"
ng-click="confirmLeaveGroup()"
)
span(ng-hide="inflight") #{translate("leave_now")}
span(ng-show="inflight") #{translate("processing")}...