overleaf/services/web/public/coffee/main/plans.coffee

231 lines
5.1 KiB
CoffeeScript
Raw Normal View History

2014-07-08 07:02:26 -04:00
define [
"base"
"libs/recurly-4.8.5"
2014-09-04 14:03:04 -04:00
], (App, recurly) ->
2014-09-05 10:47:08 -04:00
App.factory "MultiCurrencyPricing", () ->
currencyCode = window.recomendedCurrency
return {
currencyCode:currencyCode
plans:
USD:
symbol: "$"
student:
monthly: "$8"
annual: "$80"
collaborator:
monthly: "$15"
annual: "$180"
professional:
monthly: "$30"
annual: "$360"
EUR:
symbol: ""
student:
monthly: "€7"
annual: "€70"
collaborator:
2014-10-15 11:21:45 -04:00
monthly: "€14"
annual: "€168"
professional:
2014-10-15 11:21:45 -04:00
monthly: "€28"
annual: "€336"
GBP:
symbol: "£"
student:
monthly: "£6"
annual: "£60"
collaborator:
2014-10-15 11:21:45 -04:00
monthly: "£12"
annual: "£144"
professional:
2014-10-15 11:21:45 -04:00
monthly: "£24"
annual: "£288"
2014-11-19 09:52:59 -05:00
SEK:
symbol: "kr"
student:
monthly: "60 kr"
annual: "600 kr"
collaborator:
monthly: "110 kr"
annual: "1320 kr"
professional:
monthly: "220 kr"
annual: "2640 kr"
CAD:
symbol: "$"
student:
monthly: "$9"
annual: "$90"
collaborator:
monthly: "$17"
annual: "$204"
professional:
monthly: "$34"
annual: "$408"
2014-11-19 16:34:01 -05:00
NOK:
symbol: "kr"
student:
monthly: "60 kr"
annual: "600 kr"
collaborator:
monthly: "110 kr"
annual: "1320 kr"
professional:
monthly: "220 kr"
annual: "2640 kr"
DKK:
symbol: "kr"
student:
monthly: "50 kr"
annual: "500 kr"
collaborator:
monthly: "90 kr"
annual: "1080 kr"
professional:
monthly: "180 kr"
annual: "2160 kr"
AUD:
symbol: "$"
student:
monthly: "$10"
annual: "$100"
collaborator:
monthly: "$18"
annual: "$216"
professional:
monthly: "$35"
annual: "$420"
NZD:
symbol: "$"
student:
monthly: "$10"
annual: "$100"
collaborator:
monthly: "$18"
annual: "$216"
professional:
monthly: "$35"
annual: "$420"
2014-11-19 16:34:01 -05:00
CHF:
symbol: "Fr"
student:
monthly: "Fr 8"
annual: "Fr 80"
2014-11-19 16:34:01 -05:00
collaborator:
monthly: "Fr 15"
annual: "Fr 180"
2014-11-19 16:34:01 -05:00
professional:
monthly: "Fr 30"
annual: "Fr 360"
2014-11-19 16:34:01 -05:00
SGD:
symbol: "$"
student:
monthly: "$12"
annual: "$120"
collaborator:
2014-11-25 08:14:38 -05:00
monthly: "$20"
2014-11-19 16:34:01 -05:00
annual: "$240"
professional:
monthly: "$40"
annual: "$480"
}
2014-09-05 10:47:08 -04:00
App.controller "PlansController", ($scope, $modal, event_tracking, abTestManager, MultiCurrencyPricing, $http, sixpack, $filter, ipCookie) ->
2016-10-24 06:24:28 -04:00
$scope.showPlans = false
$scope.shouldABTestPlans = window.shouldABTestPlans
2014-09-05 10:47:08 -04:00
if $scope.shouldABTestPlans
sixpack.participate 'plans-details', ['default', 'more-details'], (chosenVariation, rawResponse)->
if rawResponse?.status != 'failed'
$scope.plansVariant = chosenVariation
expiration = new Date();
expiration.setDate(expiration.getDate() + 5);
ipCookie('plansVariant', chosenVariation, {expires: expiration})
event_tracking.send 'subscription-funnel', 'plans-page-loaded', chosenVariation
else
$scope.timeout = true
$scope.showPlans = true
2014-10-15 11:21:45 -04:00
$scope.plans = MultiCurrencyPricing.plans
2014-10-15 11:21:45 -04:00
$scope.currencyCode = MultiCurrencyPricing.currencyCode
2014-10-21 08:48:46 -04:00
$scope.trial_len = 7
2014-10-21 08:48:46 -04:00
$scope.planQueryString = '_free_trial_7_days'
2014-09-05 10:47:08 -04:00
$scope.ui =
view: "monthly"
$scope.changeCurreny = (e, newCurrency)->
e.preventDefault()
2014-09-04 14:03:04 -04:00
$scope.currencyCode = newCurrency
# because ternary logic in angular bindings is hard
$scope.getCollaboratorPlanCode = () ->
view = $scope.ui.view
if view == "annual"
return "collaborator-annual"
else
return "collaborator#{$scope.planQueryString}"
$scope.signUpNowClicked = (plan, location)->
if $scope.ui.view == "annual"
plan = "#{plan}_annual"
plan = eventLabel(plan, location)
event_tracking.sendMB 'plans-page-start-trial', {plan, variant: $scope.plansVariant}
event_tracking.send 'subscription-funnel', 'sign_up_now_button', plan
if $scope.plansVariant
sixpack.convert 'plans-details'
$scope.switchToMonthly = (e, location) ->
uiView = 'monthly'
switchEvent(e, uiView + '-prices', location)
$scope.ui.view = uiView
$scope.switchToStudent = (e, location) ->
uiView = 'student'
switchEvent(e, uiView + '-prices', location)
$scope.ui.view = uiView
$scope.switchToAnnual = (e, location) ->
uiView = 'annual'
switchEvent(e, uiView + '-prices', location)
$scope.ui.view = uiView
2014-07-25 07:32:26 -04:00
$scope.openGroupPlanModal = () ->
$modal.open {
templateUrl: "groupPlanModalTemplate"
}
event_tracking.send 'subscription-funnel', 'plans-page', 'group-inquiry-potential'
eventLabel = (label, location) ->
if $scope.plansVariant && location && $scope.plansVariant != 'default'
label = label + '-' + location
if $scope.plansVariant && $scope.plansVariant != 'default'
label += '-exp-' + $scope.plansVariant
label
switchEvent = (e, label, location) ->
e.preventDefault()
gaLabel = eventLabel(label, location)
event_tracking.send 'subscription-funnel', 'plans-page', gaLabel