_personal_subscription_recurly.pug 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. div(ng-controller="RecurlySubscriptionController")
  2. div(ng-show="!showCancellation")
  3. if (personalSubscription.recurly.account.has_past_due_invoice && personalSubscription.recurly.account.has_past_due_invoice._ == 'true')
  4. .alert.alert-danger #{translate("account_has_past_due_invoice_change_plan_warning")}
  5. |  
  6. a(href=personalSubscription.recurly.accountManagementLink, target="_blank") #{translate("view_your_invoices")}.
  7. case personalSubscription.recurly.state
  8. when "active"
  9. p !{translate("currently_subscribed_to_plan", {planName: personalSubscription.plan.name}, ['strong'])}
  10. if (personalSubscription.pendingPlan)
  11. if (personalSubscription.pendingPlan.name != personalSubscription.plan.name)
  12. |
  13. | !{translate("your_plan_is_changing_at_term_end", {pendingPlanName: personalSubscription.pendingPlan.name}, ['strong'])}
  14. if (personalSubscription.recurly.pendingAdditionalLicenses > 0 || personalSubscription.recurly.additionalLicenses > 0)
  15. |
  16. | !{translate("pending_additional_licenses", {pendingAdditionalLicenses: personalSubscription.recurly.pendingAdditionalLicenses, pendingTotalLicenses: personalSubscription.recurly.pendingTotalLicenses}, ['strong', 'strong'])}
  17. else if (personalSubscription.recurly.additionalLicenses > 0)
  18. |
  19. | !{translate("additional_licenses", {additionalLicenses: personalSubscription.recurly.additionalLicenses, totalLicenses: personalSubscription.recurly.totalLicenses}, ['strong', 'strong'])}
  20. |  
  21. a(href, ng-click="switchToChangePlanView()", ng-if="showChangePlanButton") !{translate("change_plan")}.
  22. if (personalSubscription.pendingPlan)
  23. p #{translate("want_change_to_apply_before_plan_end")}
  24. else if (personalSubscription.plan.groupPlan)
  25. p !{translate("contact_support_to_change_group_subscription", {}, [{ name: "a", attrs: { href: "/contact"}}])}
  26. if (personalSubscription.recurly.trialEndsAtFormatted && personalSubscription.recurly.trial_ends_at > Date.now())
  27. p You're on a free trial which ends on <strong ng-non-bindable>#{personalSubscription.recurly.trialEndsAtFormatted}</strong>
  28. p !{translate("next_payment_of_x_collectected_on_y", {paymentAmmount: personalSubscription.recurly.displayPrice, collectionDate: personalSubscription.recurly.nextPaymentDueAt}, ['strong', 'strong'])}
  29. include ../_premium_features_link
  30. include ./../_price_exceptions
  31. p.pull-right
  32. p
  33. a(href=personalSubscription.recurly.billingDetailsLink, target="_blank").btn.btn-info #{translate("update_your_billing_details")}
  34. | &nbsp;
  35. a(href=personalSubscription.recurly.accountManagementLink, target="_blank").btn.btn-info #{translate("view_your_invoices")}
  36. | &nbsp;
  37. unless (cancelButtonNewCopy)
  38. a(href, ng-click="switchToCancellationView()", ng-hide="recurlyLoadError", event-tracking='subscription-page-cancel-button-click', event-tracking-mb="true", event-tracking-trigger="click").btn.btn-danger !{translate("stop_your_subscription")}
  39. if (cancelButtonNewCopy)
  40. p
  41. a(href, ng-click="switchToCancellationView()", ng-hide="recurlyLoadError", event-tracking='subscription-page-cancel-button-click', event-tracking-mb="true", event-tracking-trigger="click").btn.btn-danger !{translate("cancel_your_subscription")}
  42. unless (personalSubscription.recurly.trialEndsAtFormatted && personalSubscription.recurly.trial_ends_at > Date.now())
  43. p
  44. i !{translate("subscription_will_remain_active_until_end_of_billing_period_x", {terminationDate: personalSubscription.recurly.nextPaymentDueAt}, ['strong'])}
  45. when "canceled"
  46. p !{translate("currently_subscribed_to_plan", {planName: personalSubscription.plan.name}, ['strong'])}
  47. p !{translate("subscription_canceled_and_terminate_on_x", {terminateDate: personalSubscription.recurly.nextPaymentDueAt}, ['strong'])}
  48. include ../_premium_features_link
  49. p
  50. a(href=personalSubscription.recurly.accountManagementLink, target="_blank").btn.btn-info #{translate("view_your_invoices")}
  51. p: form(action="/user/subscription/reactivate",method="post")
  52. input(type="hidden", name="_csrf", value=csrfToken)
  53. input(type="submit",value="Reactivate your subscription").btn.btn-success
  54. when "expired"
  55. p !{translate("your_subscription_has_expired")}
  56. p
  57. a(href=personalSubscription.recurly.accountManagementLink, target="_blank").btn.btn-info #{translate("view_your_invoices")}
  58. | &nbsp;
  59. a(href="/user/subscription/plans").btn.btn-success !{translate("create_new_subscription")}
  60. default
  61. p !{translate("problem_with_subscription_contact_us")}
  62. .alert.alert-warning(ng-show="recurlyLoadError")
  63. strong #{translate('payment_provider_unreachable_error')}
  64. include ./_change_plans_mixins
  65. div(ng-show="showChangePlan", ng-cloak)
  66. h2 !{translate("change_plan")}
  67. p: table.table
  68. tr
  69. th !{translate("name")}
  70. th !{translate("price")}
  71. th
  72. +printPlans(plans.studentAccounts)
  73. +printPlans(plans.individualMonthlyPlans)
  74. +printPlans(plans.individualAnnualPlans)
  75. div(ng-controller="ChangePlanToGroupFormController")
  76. h2 #{translate('looking_multiple_licenses')}
  77. div(ng-show="isValidCurrencyForUpgrade")
  78. span #{translate('reduce_costs_group_licenses')}
  79. br
  80. br
  81. a.btn.btn-success(
  82. href="#groups"
  83. ng-click="openGroupPlanModal()"
  84. ) #{translate('change_to_group_plan')}
  85. div(ng-hide="isValidCurrencyForUpgrade")
  86. span !{translate('contact_support_to_upgrade_to_group_subscription', {}, [{ name: "a", attrs: { href: "/contact"}}])}
  87. .div(ng-controller="RecurlyCancellationController", ng-show="showCancellation").text-center
  88. p
  89. strong #{translate("wed_love_you_to_stay")}
  90. div(ng-show="showExtendFreeTrial")
  91. p !{translate("have_more_days_to_try", {days:14})}
  92. p
  93. button(type="submit", ng-click="extendTrial()", ng-disabled='inflight').btn.btn-success #{translate("ill_take_it")}
  94. p
  95. a(href, ng-click="cancelSubscription()", ng-disabled='inflight') #{translate("no_thanks_cancel_now")}
  96. div(ng-show="showDowngradeToStudent")
  97. div(ng-controller="ChangePlanFormController")
  98. p !{translate("interested_in_cheaper_plan",{price:'{{studentDisplayPrice}}'})}
  99. p
  100. button(type="submit", ng-click="downgradeToStudent()", ng-disabled='inflight').btn.btn-success #{translate("yes_move_me_to_student_plan")}
  101. p
  102. a(href, ng-click="cancelSubscription()", ng-disabled='inflight') #{translate("no_thanks_cancel_now")}
  103. div(ng-show="showBasicCancel")
  104. p
  105. a(href, ng-click="switchToDefaultView()").btn.btn-info #{translate("i_want_to_stay")}
  106. p
  107. a(href, ng-click="cancelSubscription()", ng-disabled='inflight').btn.btn-primary #{translate("cancel_my_account")}
  108. script(type='text/ng-template', id='confirmChangePlanModalTemplate')
  109. .modal-header
  110. h3 #{translate("change_plan")}
  111. .modal-body
  112. .alert.alert-warning(ng-show="genericError")
  113. strong #{translate("generic_something_went_wrong")}. #{translate("try_again")}. #{translate("generic_if_problem_continues_contact_us")}.
  114. p !{translate("sure_you_want_to_change_plan", {planName: '{{plan.name}}'}, ['strong'])}
  115. div(ng-show="planChangesAtTermEnd")
  116. p #{translate("existing_plan_active_until_term_end")}
  117. p #{translate("want_change_to_apply_before_plan_end")}
  118. .modal-footer
  119. button.btn.btn-default(
  120. ng-disabled="inflight"
  121. ng-click="cancel()"
  122. ) #{translate("cancel")}
  123. button.btn.btn-success(
  124. ng-disabled="inflight"
  125. ng-click="confirmChangePlan()"
  126. )
  127. span(ng-hide="inflight") #{translate("change_plan")}
  128. span(ng-show="inflight") #{translate("processing")}…
  129. script(type='text/ng-template', id='cancelPendingPlanChangeModalTemplate')
  130. .modal-header
  131. h3 #{translate("change_plan")}
  132. .modal-body
  133. .alert.alert-warning(ng-show="genericError")
  134. strong #{translate("generic_something_went_wrong")}. #{translate("try_again")}. #{translate("generic_if_problem_continues_contact_us")}.
  135. p !{translate("sure_you_want_to_cancel_plan_change", {planName: '{{plan.name}}'}, ['strong'])}
  136. .modal-footer
  137. button.btn.btn-default(
  138. ng-disabled="inflight"
  139. ng-click="cancel()"
  140. ) #{translate("cancel")}
  141. button.btn.btn-success(
  142. ng-disabled="inflight"
  143. ng-click="confirmCancelPendingPlanChange()"
  144. )
  145. span(ng-hide="inflight") #{translate("revert_pending_plan_change")}
  146. span(ng-show="inflight") #{translate("processing")}…
  147. include ../_plans_page_mixins
  148. include ../_modal_group_upgrade