dashboard.jade 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. extends ../layout
  2. block scripts
  3. script(src="https://js.recurly.com/v3/recurly.js")
  4. script(type='text/javascript').
  5. window.recomendedCurrency = '#{recomendedCurrency}'
  6. window.recurlyApiKey = "!{settings.apis.recurly.publicKey}"
  7. window.taxRate = #{taxRate}
  8. mixin printPlan(plan)
  9. -if (!plan.hideFromUsers)
  10. tr(ng-controller="ChangePlanFormController")
  11. td(ng-init="plan=#{JSON.stringify(plan)}")
  12. strong #{plan.name}
  13. td {{refreshPrice(plan.planCode)}}
  14. -if (plan.annual)
  15. | {{prices[plan.planCode]}} / #{translate("year")}
  16. -else
  17. | {{prices[plan.planCode]}} / #{translate("month")}
  18. td
  19. -if (subscription.state == "free-trial")
  20. a(href="/user/subscription/new?planCode=#{plan.planCode}").btn.btn-success #{translate("subscribe_to_this_plan")}
  21. -else if (typeof(subscription.planCode) != "undefined" && plan.planCode == subscription.planCode.split("_")[0])
  22. button.btn.disabled #{translate("your_plan")}
  23. -else
  24. form
  25. input(type="hidden", ng-model="plan_code", name="plan_code", value="#{plan.planCode}")
  26. input(type="submit", ng-click="changePlan()", value=translate("change_to_this_plan")).btn.btn-success
  27. mixin printPlans(plans)
  28. -each plan in plans
  29. mixin printPlan(plan)
  30. block content
  31. .content.content-alt
  32. .container
  33. .row
  34. .col-md-8.col-md-offset-2
  35. .card
  36. .page-header
  37. h1 #{translate("your_subscription")}
  38. -if (groups.length != 0)
  39. each groupSubscription in groups
  40. p !{translate("member_of_group_subscription", {admin_email: "<strong>" + groupSubscription.admin_id.email + "</strong>"})}
  41. - else if (subscription)
  42. case subscription.state
  43. when "free-trial"
  44. p !{translate("on_free_trial_expiring_at", {expiresAt:"<strong>" + subscription.expiresAt + "</strong>"})}
  45. p !{translate("choose_a_plan_below")}
  46. when "active"
  47. p !{translate("currently_subscribed_to_plan", {planName:"<strong>" + subscription.name + "</strong>"})}
  48. a(href, ng-click="changePlan = true") !{translate("change_plan")}.
  49. p !{translate("next_payment_of_x_collectected_on_y", {paymentAmmount:"<strong>" + subscription.price + "</strong>", collectionDate:"<strong>" + subscription.nextPaymentDueAt + "</strong>"})}
  50. p.pull-right
  51. p: form(action="/user/subscription/cancel",method="post")
  52. input(type="hidden", name="_csrf", value=csrfToken)
  53. a(href="/user/subscription/billing-details/edit").btn.btn-info #{translate("update_your_billing_details")}
  54. | &nbsp;
  55. input(type="submit", value="Cancel your subscription").btn.btn-primary#cancelSubscription
  56. when "canceled"
  57. p !{translate("currently_subscribed_to_plan", {planName:"<strong>" + subscription.name + "</strong>"})}
  58. p !{translate("subscription_canceled_and_terminate_on_x", {terminateDate:"<strong>" + subscription.nextPaymentDueAt + "</strong>"})}
  59. p: form(action="/user/subscription/reactivate",method="post")
  60. input(type="hidden", name="_csrf", value=csrfToken)
  61. input(type="submit",value="Reactivate your subscription").btn.btn-success
  62. when "expired"
  63. p !{translate("your_subscription_has_expired")}
  64. a(href="/user/subscription/plans") !{translate("create_new_subscription")}
  65. default
  66. -if(groups.length == 0)
  67. p !{translate("problem_with_subscription_contact_us")}
  68. -if(subscription.groupPlan)
  69. a(href="/subscription/group").btn.btn-success !{translate("manage_group")}
  70. div(ng-show="changePlan", ng-cloak)#changePlanSection
  71. h2.col-md-7 !{translate("change_plan")}
  72. span.dropdown.col-md-1.changePlanButton(ng-controller="CurrenyDropdownController", style="display:none", dropdown)
  73. a.btn.btn-primary.dropdown-toggle(
  74. href="#",
  75. data-toggle="dropdown",
  76. dropdown-toggle
  77. )
  78. | {{currencyCode}} ({{plans[currencyCode]['symbol']}})
  79. ul.dropdown-menu(role="menu")
  80. li(ng-repeat="(currency, value) in plans", dropdown-toggle)
  81. a(
  82. href,
  83. ng-click="changeCurrency(currency)"
  84. ) {{currency}} ({{value['symbol']}})
  85. p: table.table
  86. tr
  87. th !{translate("name")}
  88. th !{translate("price")}
  89. th
  90. mixin printPlans(plans.studentAccounts)
  91. mixin printPlans(plans.individualMonthlyPlans)
  92. mixin printPlans(plans.individualAnnualPlans)
  93. script(type="text/javascript").
  94. $('#cancelSubscription').on("click", function() {
  95. ga('send', 'event', 'subscription-funnel', 'cancelation')
  96. })
  97. script(type='text/ng-template', id='confirmChangePlanModalTemplate')
  98. .modal-header
  99. h3 Change plan?
  100. .modal-body
  101. p !{translate("sure_you_want_to_change_plan", {planName:"<strong>{{plan.name}}</strong>"})}
  102. .modal-footer
  103. button.btn.btn-default(
  104. ng-disabled="inflight"
  105. ng-click="cancel()"
  106. ) #{translate("cancel")}
  107. button.btn.btn-success(
  108. ng-disabled="state.inflight"
  109. ng-click="confirmChangePlan()"
  110. )
  111. span(ng-hide="inflight") #{translate("change_plan")}
  112. span(ng-show="inflight") #{translate("processing")}...