2014-07-08 07:02:26 -04:00
|
|
|
define [
|
|
|
|
"base"
|
2018-04-16 05:10:43 -04:00
|
|
|
"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", () ->
|
2016-10-13 08:47:05 -04:00
|
|
|
|
2014-10-13 09:10:15 -04:00
|
|
|
currencyCode = window.recomendedCurrency
|
2014-07-21 06:33:10 -04:00
|
|
|
|
2014-10-13 11:13:31 -04:00
|
|
|
return {
|
|
|
|
currencyCode:currencyCode
|
2016-10-13 08:47:05 -04:00
|
|
|
|
|
|
|
plans:
|
2014-10-13 11:13:31 -04:00
|
|
|
USD:
|
|
|
|
symbol: "$"
|
|
|
|
student:
|
|
|
|
monthly: "$8"
|
|
|
|
annual: "$80"
|
|
|
|
collaborator:
|
|
|
|
monthly: "$15"
|
|
|
|
annual: "$180"
|
|
|
|
professional:
|
|
|
|
monthly: "$30"
|
|
|
|
annual: "$360"
|
|
|
|
|
2016-10-13 08:47:05 -04:00
|
|
|
EUR:
|
2014-10-13 11:13:31 -04:00
|
|
|
symbol: "€"
|
|
|
|
student:
|
|
|
|
monthly: "€7"
|
|
|
|
annual: "€70"
|
|
|
|
collaborator:
|
2014-10-15 11:21:45 -04:00
|
|
|
monthly: "€14"
|
|
|
|
annual: "€168"
|
2014-10-13 11:13:31 -04:00
|
|
|
professional:
|
2014-10-15 11:21:45 -04:00
|
|
|
monthly: "€28"
|
|
|
|
annual: "€336"
|
2016-10-13 08:47:05 -04:00
|
|
|
|
2014-10-13 11:13:31 -04:00
|
|
|
GBP:
|
|
|
|
symbol: "£"
|
|
|
|
student:
|
|
|
|
monthly: "£6"
|
|
|
|
annual: "£60"
|
|
|
|
collaborator:
|
2014-10-15 11:21:45 -04:00
|
|
|
monthly: "£12"
|
|
|
|
annual: "£144"
|
2014-10-13 11:13:31 -04:00
|
|
|
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"
|
2016-10-13 08:47:05 -04:00
|
|
|
|
2014-11-19 16:34:01 -05:00
|
|
|
CHF:
|
|
|
|
symbol: "Fr"
|
|
|
|
student:
|
2014-11-25 08:18:57 -05:00
|
|
|
monthly: "Fr 8"
|
|
|
|
annual: "Fr 80"
|
2014-11-19 16:34:01 -05:00
|
|
|
collaborator:
|
2014-11-25 08:18:57 -05:00
|
|
|
monthly: "Fr 15"
|
|
|
|
annual: "Fr 180"
|
2014-11-19 16:34:01 -05:00
|
|
|
professional:
|
2014-11-25 08:18:57 -05:00
|
|
|
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"
|
2016-10-13 08:47:05 -04:00
|
|
|
|
2014-10-13 11:13:31 -04:00
|
|
|
}
|
2014-09-05 10:47:08 -04:00
|
|
|
|
|
|
|
|
2018-04-12 17:11:52 -04:00
|
|
|
App.controller "PlansController", ($scope, $modal, event_tracking, abTestManager, MultiCurrencyPricing, $http, sixpack, $filter) ->
|
2016-10-13 08:47:05 -04:00
|
|
|
|
2016-10-24 06:24:28 -04:00
|
|
|
$scope.showPlans = false
|
2016-10-13 08:47:05 -04:00
|
|
|
$scope.shouldABTestPlans = window.shouldABTestPlans
|
2014-09-05 10:47:08 -04:00
|
|
|
|
2016-10-13 08:47:05 -04:00
|
|
|
if $scope.shouldABTestPlans
|
2018-04-12 17:11:52 -04:00
|
|
|
sixpack.participate 'plans-details', ['default', 'more-details'], (chosenVariation, rawResponse)->
|
|
|
|
$scope.plansVariant = chosenVariation
|
|
|
|
|
|
|
|
$scope.showPlans = true
|
2014-10-15 11:21:45 -04:00
|
|
|
|
|
|
|
$scope.plans = MultiCurrencyPricing.plans
|
2016-10-13 08:47:05 -04:00
|
|
|
|
2014-10-15 11:21:45 -04:00
|
|
|
$scope.currencyCode = MultiCurrencyPricing.currencyCode
|
|
|
|
|
2014-10-21 08:48:46 -04:00
|
|
|
$scope.trial_len = 7
|
2016-10-13 08:47:05 -04:00
|
|
|
|
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"
|
|
|
|
|
2018-04-12 17:11:52 -04:00
|
|
|
$scope.changeCurreny = (e, newCurrency)->
|
|
|
|
e.preventDefault()
|
2014-09-04 14:03:04 -04:00
|
|
|
$scope.currencyCode = newCurrency
|
|
|
|
|
2016-11-02 05:56:33 -04:00
|
|
|
# because ternary logic in angular bindings is hard
|
|
|
|
$scope.getCollaboratorPlanCode = () ->
|
|
|
|
view = $scope.ui.view
|
|
|
|
if view == "annual"
|
2018-04-12 17:11:52 -04:00
|
|
|
return "collaborator-annual"
|
2016-11-02 05:56:33 -04:00
|
|
|
else
|
2018-04-12 17:11:52 -04:00
|
|
|
return "collaborator#{$scope.planQueryString}"
|
2016-11-02 05:56:33 -04:00
|
|
|
|
2018-04-12 17:11:52 -04:00
|
|
|
$scope.signUpNowClicked = (plan, location)->
|
2014-07-21 06:33:10 -04:00
|
|
|
if $scope.ui.view == "annual"
|
|
|
|
plan = "#{plan}_annual"
|
2018-04-12 17:11:52 -04:00
|
|
|
plan = eventLabel(plan, location)
|
|
|
|
event_tracking.sendMB 'plans-page-start-trial', {plan}
|
|
|
|
event_tracking.send 'subscription-funnel', 'sign_up_now_button', plan
|
|
|
|
if $scope.shouldABTestPlans
|
|
|
|
sixpack.convert 'plans-details'
|
2014-07-21 06:33:10 -04:00
|
|
|
|
2018-04-12 17:11:52 -04:00
|
|
|
$scope.switchToMonthly = (e, location) ->
|
|
|
|
uiView = 'monthly'
|
|
|
|
switchEvent(e, uiView + '-prices', location)
|
|
|
|
$scope.ui.view = uiView
|
2016-10-13 08:47:05 -04:00
|
|
|
|
2018-04-12 17:11:52 -04:00
|
|
|
$scope.switchToStudent = (e, location) ->
|
|
|
|
uiView = 'student'
|
|
|
|
switchEvent(e, uiView + '-prices', location)
|
|
|
|
$scope.ui.view = uiView
|
2014-07-21 06:33:10 -04:00
|
|
|
|
2018-04-12 17:11:52 -04:00
|
|
|
$scope.switchToAnnual = (e, location) ->
|
|
|
|
uiView = 'annual'
|
|
|
|
switchEvent(e, uiView + '-prices', location)
|
|
|
|
$scope.ui.view = uiView
|
2016-10-13 08:47:05 -04:00
|
|
|
|
2014-07-25 07:32:26 -04:00
|
|
|
$scope.openGroupPlanModal = () ->
|
|
|
|
$modal.open {
|
|
|
|
templateUrl: "groupPlanModalTemplate"
|
|
|
|
}
|
2018-03-15 10:21:30 -04:00
|
|
|
event_tracking.send 'subscription-funnel', 'plans-page', 'group-inquiry-potential'
|
2018-04-12 17:11:52 -04:00
|
|
|
|
|
|
|
eventLabel = (label, location) ->
|
2018-06-06 11:05:43 -04:00
|
|
|
if $scope.plansVariant && location && $scope.plansVariant != 'default'
|
2018-04-12 17:11:52 -04:00
|
|
|
label = label + '-' + location
|
2018-06-06 11:05:43 -04:00
|
|
|
if $scope.plansVariant && $scope.plansVariant != 'default'
|
2018-04-12 17:11:52 -04:00
|
|
|
label += '-exp-' + $scope.plansVariant
|
|
|
|
label
|
|
|
|
|
|
|
|
switchEvent = (e, label, location) ->
|
|
|
|
e.preventDefault()
|
|
|
|
gaLabel = eventLabel(label, location)
|
|
|
|
event_tracking.send 'subscription-funnel', 'plans-page', gaLabel
|
|
|
|
|