_personal_subscription_recurly.pug 7.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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")}
  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.price, collectionDate: personalSubscription.recurly.nextPaymentDueAt}, ['strong', 'strong'])}
  29. include ./../_price_exceptions
  30. p.pull-right
  31. p
  32. a(href=personalSubscription.recurly.billingDetailsLink, target="_blank").btn.btn-info #{translate("update_your_billing_details")}
  33. | &nbsp;
  34. a(href=personalSubscription.recurly.accountManagementLink, target="_blank").btn.btn-info #{translate("view_your_invoices")}
  35. | &nbsp;
  36. a(href, ng-click="switchToCancellationView()", ng-hide="recurlyLoadError").btn.btn-danger !{translate("cancel_your_subscription")}
  37. when "canceled"
  38. p !{translate("currently_subscribed_to_plan", {planName: personalSubscription.plan.name}, ['strong'])}
  39. p !{translate("subscription_canceled_and_terminate_on_x", {terminateDate: personalSubscription.recurly.nextPaymentDueAt}, ['strong'])}
  40. p
  41. a(href=personalSubscription.recurly.accountManagementLink, target="_blank").btn.btn-info #{translate("view_your_invoices")}
  42. p: form(action="/user/subscription/reactivate",method="post")
  43. input(type="hidden", name="_csrf", value=csrfToken)
  44. input(type="submit",value="Reactivate your subscription").btn.btn-success
  45. when "expired"
  46. p !{translate("your_subscription_has_expired")}
  47. p
  48. a(href=personalSubscription.recurly.accountManagementLink, target="_blank").btn.btn-info #{translate("view_your_invoices")}
  49. | &nbsp;
  50. a(href="/user/subscription/plans").btn.btn-success !{translate("create_new_subscription")}
  51. default
  52. p !{translate("problem_with_subscription_contact_us")}
  53. .alert.alert-warning(ng-show="recurlyLoadError")
  54. strong #{translate('payment_provider_unreachable_error')}
  55. include ./_change_plans_mixins
  56. div(ng-show="showChangePlan", ng-cloak)
  57. h2 !{translate("change_plan")}
  58. p: table.table
  59. tr
  60. th !{translate("name")}
  61. th !{translate("price")}
  62. th
  63. +printPlans(plans.studentAccounts)
  64. +printPlans(plans.individualMonthlyPlans)
  65. +printPlans(plans.individualAnnualPlans)
  66. div(ng-controller="ChangePlanToGroupFormController")
  67. h2 #{translate('looking_multiple_licenses')}
  68. div(ng-show="isValidCurrencyForUpgrade")
  69. span #{translate('reduce_costs_group_licenses')}
  70. br
  71. br
  72. a.btn.btn-success(
  73. href="#groups"
  74. ng-click="openGroupPlanModal()"
  75. ) #{translate('change_to_group_plan')}
  76. div(ng-hide="isValidCurrencyForUpgrade")
  77. span #{translate('contact_support_to_upgrade_to_group_subscription')}
  78. .div(ng-controller="RecurlyCancellationController", ng-show="showCancellation").text-center
  79. p
  80. strong #{translate("wed_love_you_to_stay")}
  81. div(ng-show="showExtendFreeTrial")
  82. p !{translate("have_more_days_to_try", {days:14})}
  83. p
  84. button(type="submit", ng-click="extendTrial()", ng-disabled='inflight').btn.btn-success #{translate("ill_take_it")}
  85. p
  86. a(href, ng-click="cancelSubscription()", ng-disabled='inflight') #{translate("no_thanks_cancel_now")}
  87. div(ng-show="showDowngradeToStudent")
  88. div(ng-controller="ChangePlanFormController")
  89. p !{translate("interested_in_cheaper_plan",{price:'{{studentPrice}}'})}
  90. p
  91. button(type="submit", ng-click="downgradeToStudent()", ng-disabled='inflight').btn.btn-success #{translate("yes_move_me_to_student_plan")}
  92. p
  93. a(href, ng-click="cancelSubscription()", ng-disabled='inflight') #{translate("no_thanks_cancel_now")}
  94. div(ng-show="showBasicCancel")
  95. p
  96. a(href, ng-click="switchToDefaultView()").btn.btn-info #{translate("i_want_to_stay")}
  97. p
  98. a(href, ng-click="cancelSubscription()", ng-disabled='inflight').btn.btn-primary #{translate("cancel_my_account")}
  99. script(type='text/ng-template', id='confirmChangePlanModalTemplate')
  100. .modal-header
  101. h3 #{translate("change_plan")}
  102. .modal-body
  103. .alert.alert-warning(ng-show="genericError")
  104. strong #{translate("generic_something_went_wrong")}. #{translate("try_again")}. #{translate("generic_if_problem_continues_contact_us")}.
  105. p !{translate("sure_you_want_to_change_plan", {planName: '{{plan.name}}'}, ['strong'])}
  106. div(ng-show="planChangesAtTermEnd")
  107. p #{translate("existing_plan_active_until_term_end")}
  108. p #{translate("want_change_to_apply_before_plan_end")}
  109. .modal-footer
  110. button.btn.btn-default(
  111. ng-disabled="inflight"
  112. ng-click="cancel()"
  113. ) #{translate("cancel")}
  114. button.btn.btn-success(
  115. ng-disabled="state.inflight"
  116. ng-click="confirmChangePlan()"
  117. )
  118. span(ng-hide="inflight") #{translate("change_plan")}
  119. span(ng-show="inflight") #{translate("processing")}…
  120. script(type='text/ng-template', id='cancelPendingPlanChangeModalTemplate')
  121. .modal-header
  122. h3 #{translate("change_plan")}
  123. .modal-body
  124. .alert.alert-warning(ng-show="genericError")
  125. strong #{translate("generic_something_went_wrong")}. #{translate("try_again")}. #{translate("generic_if_problem_continues_contact_us")}.
  126. p !{translate("sure_you_want_to_cancel_plan_change", {planName: '{{plan.name}}'}, ['strong'])}
  127. .modal-footer
  128. button.btn.btn-default(
  129. ng-disabled="inflight"
  130. ng-click="cancel()"
  131. ) #{translate("cancel")}
  132. button.btn.btn-success(
  133. ng-disabled="state.inflight"
  134. ng-click="confirmCancelPendingPlanChange()"
  135. )
  136. span(ng-hide="inflight") #{translate("revert_pending_plan_change")}
  137. span(ng-show="inflight") #{translate("processing")}…
  138. include ../_plans_page_mixins
  139. include ../_modal_group_upgrade