| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- define [
- "base"
- ], (App)->
- App.controller 'SuccessfulSubscriptionController', ($scope, sixpack) ->
- sixpack.convert 'plans-1610', () ->
- SUBSCRIPTION_URL = "/user/subscription/update"
- setupReturly = _.once ->
- recurly?.configure window.recurlyApiKey
- PRICES = {}
- App.controller "CurrenyDropdownController", ($scope, MultiCurrencyPricing, $q)->
- # $scope.plans = MultiCurrencyPricing.plans
- $scope.currencyCode = MultiCurrencyPricing.currencyCode
- $scope.changeCurrency = (newCurrency)->
- MultiCurrencyPricing.currencyCode = newCurrency
- App.controller "ChangePlanFormController", ($scope, $modal, MultiCurrencyPricing)->
- setupReturly()
- taxRate = window.taxRate
- $scope.changePlan = ->
- $modal.open(
- templateUrl: "confirmChangePlanModalTemplate"
- controller: "ConfirmChangePlanController"
- scope: $scope
- )
- $scope.$watch "pricing.currencyCode", ->
- $scope.currencyCode = MultiCurrencyPricing.currencyCode
- $scope.pricing = MultiCurrencyPricing
- # $scope.plans = MultiCurrencyPricing.plans
- $scope.currencySymbol = MultiCurrencyPricing.plans[MultiCurrencyPricing.currencyCode].symbol
- $scope.currencyCode = MultiCurrencyPricing.currencyCode
- $scope.prices = PRICES
- $scope.refreshPrice = (planCode)->
- if $scope.prices[planCode]?
- return
- $scope.prices[planCode] = "..."
- pricing = recurly.Pricing()
- pricing.plan(planCode, { quantity: 1 }).currency(MultiCurrencyPricing.currencyCode).done (price)->
- totalPriceExTax = parseFloat(price.next.total)
- $scope.$evalAsync () ->
- taxAmmount = totalPriceExTax * taxRate
- if isNaN(taxAmmount)
- taxAmmount = 0
- $scope.prices[planCode] = $scope.currencySymbol + (totalPriceExTax + taxAmmount)
- price = ""
- App.controller "ConfirmChangePlanController", ($scope, $modalInstance, $http)->
- $scope.confirmChangePlan = ->
- body =
- plan_code: $scope.plan.planCode
- _csrf : window.csrfToken
- $scope.inflight = true
- $http.post("#{SUBSCRIPTION_URL}?origin=confirmChangePlan", body)
- .then ->
- location.reload()
- .catch ->
- console.log "something went wrong changing plan"
- $scope.cancel = () ->
- $modalInstance.dismiss('cancel')
- App.controller "LeaveGroupModalController", ($scope, $modalInstance, $http)->
- $scope.confirmLeaveGroup = ->
- $scope.inflight = true
- $http({
- url: "/subscription/group/user",
- method: "DELETE",
- params: {admin_user_id: $scope.admin_id, _csrf: window.csrfToken}
- }).then ->
- location.reload()
- .catch ->
- console.log "something went wrong changing plan"
- $scope.cancel = () ->
- $modalInstance.dismiss('cancel')
- App.controller "UserSubscriptionController", ($scope, MultiCurrencyPricing, $http, sixpack, $modal) ->
- $scope.plans = MultiCurrencyPricing.plans
- freeTrialEndDate = new Date(subscription?.trial_ends_at)
- sevenDaysTime = new Date()
- sevenDaysTime.setDate(sevenDaysTime.getDate() + 7)
- freeTrialInFuture = freeTrialEndDate > new Date()
- freeTrialExpiresUnderSevenDays = freeTrialEndDate < sevenDaysTime
- $scope.view = 'overview'
- $scope.getSuffix = (planCode) ->
- planCode?.match(/(.*?)_(.*)/)?[2] || null
- $scope.subscriptionSuffix = $scope.getSuffix(window?.subscription?.planCode)
- if $scope.subscriptionSuffix == 'free_trial_7_days'
- $scope.subscriptionSuffix = ''
- $scope.isNextGenPlan = $scope.subscriptionSuffix in ['heron', 'ibis']
- $scope.shouldShowPlan = (planCode) ->
- $scope.getSuffix(planCode) not in ['heron', 'ibis']
- isMonthlyCollab = subscription?.planCode?.indexOf("collaborator") != -1 and subscription?.planCode?.indexOf("ann") == -1
- stillInFreeTrial = freeTrialInFuture and freeTrialExpiresUnderSevenDays
- if isMonthlyCollab and stillInFreeTrial
- $scope.showExtendFreeTrial = true
- else if isMonthlyCollab and !stillInFreeTrial
- $scope.showDowngradeToStudent = true
- else
- $scope.showBasicCancel = true
- setupReturly()
- recurly.Pricing().plan('student', { quantity: 1 }).currency(MultiCurrencyPricing.currencyCode).done (price)->
- totalPriceExTax = parseFloat(price.next.total)
- $scope.$evalAsync () ->
- taxAmmount = totalPriceExTax * taxRate
- if isNaN(taxAmmount)
- taxAmmount = 0
- $scope.currencySymbol = MultiCurrencyPricing.plans[MultiCurrencyPricing.currencyCode].symbol
- $scope.studentPrice = $scope.currencySymbol + (totalPriceExTax + taxAmmount)
- $scope.downgradeToStudent = ->
- body =
- plan_code: 'student'
- _csrf : window.csrfToken
- $scope.inflight = true
- $http.post("#{SUBSCRIPTION_URL}?origin=downgradeToStudent", body)
- .then ->
- location.reload()
- .catch ->
- console.log "something went wrong changing plan"
- $scope.cancelSubscription = ->
- body =
- _csrf : window.csrfToken
- $scope.inflight = true
- $http.post("/user/subscription/cancel", body)
- .then ->
- location.reload()
- .catch ->
- console.log "something went wrong changing plan"
- $scope.removeSelfFromGroup = (admin_id)->
- $scope.admin_id = admin_id
- $modal.open(
- templateUrl: "LeaveGroupModalTemplate"
- controller: "LeaveGroupModalController"
- scope: $scope
- )
- $scope.switchToCancelationView = ->
- $scope.view = "cancelation"
- $scope.exendTrial = ->
- body =
- _csrf : window.csrfToken
- $scope.inflight = true
- $http.put("/user/subscription/extend", body)
- .then ->
- location.reload()
- .catch ->
- console.log "something went wrong changing plan"
|