summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/ui/site/EditSubscriptionModal.js44
1 files changed, 32 insertions, 12 deletions
diff --git a/public/assets/javascripts/ui/site/EditSubscriptionModal.js b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
index 619bff8..af3b99e 100644
--- a/public/assets/javascripts/ui/site/EditSubscriptionModal.js
+++ b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
@@ -15,14 +15,30 @@ var EditSubscriptionModal = ModalView.extend({
"click [data-role='cancelSubscription']": 'destroy',
"click .gear": 'sync',
"click .planList button": 'followLink',
+
+ "click [data-role=showLayoutsMenu]": "layoutsMode",
+ "click [data-role=showPlanMenu]": "planMode",
+
+ "click [data-role=closeMenu]": "reset",
+
+ "input [data-role=basicLayoutInput]": "updateQuantity",
+ "input [data-role=proLayoutInput]": "updateQuantity",
+ "click [data-role=buyLayouts]": "saveLayouts",
+
+ "input [name=planRadio]": "updatePlan",
+ "click [data-role=changePlan]": "savePlan",
},
initialize: function(){
// this.parent = opt.parent
this.__super__.initialize.call(this)
+ // two sections
this.$freePlan = this.$(".freePlan")
this.$paidPlan = this.$(".paidPlan")
+
+ // subscription table
+ this.$planInfo = this.$(".planInfo")
this.$planRow = this.$(".planRow")
this.$basicLayoutRow = this.$(".basicLayoutRow")
this.$proLayoutRow = this.$(".proLayoutRow")
@@ -31,15 +47,18 @@ var EditSubscriptionModal = ModalView.extend({
this.$billingInterval = this.$("[data-role=billingInterval]")
+ // plan stuff
this.$planName = this.$("[data-role=planName]")
this.$planCost = this.$("[data-role=planCost]")
this.$planTotal = this.$("[data-role=planTotal]")
this.$basicPlanName = this.$("[data-role=basicPlanName]")
- this.$proPlanName = this.$("[data-role=proPlanName]")
this.$basicPlanCost = this.$("[data-role=basicPlanCost]")
+
+ this.$proPlanName = this.$("[data-role=proPlanName]")
this.$proPlanCost = this.$("[data-role=proPlanCost]")
+ // basic + pro layout stuff
this.$basicLayoutCost = this.$("[data-role=basicLayoutCost]")
this.$basicLayoutQuantity = this.$("[data-role=basicLayoutQuantity]")
this.$basicLayoutTotal = this.$("[data-role=basicLayoutTotal]")
@@ -48,24 +67,24 @@ var EditSubscriptionModal = ModalView.extend({
this.$proLayoutQuantity = this.$("[data-role=proLayoutQuantity]")
this.$proLayoutTotal = this.$("[data-role=proLayoutTotal]")
+ // menus.. main menu
this.$showLayoutsMenu = this.$("[data-role=showLayoutsMenu]")
this.$showPlanMenu = this.$("[data-role=showPlanMenu]")
+ this.$cancelSubscription = this.$("[data-role=cancelSubscription]")
+ // three submenus
this.$layoutsMenu = this.$("[data-role=layoutsMenu]")
this.$planMenu = this.$("[data-role=planMenu]")
- this.$closeMenu = this.$("[data-role=closeMenu]")
this.$buyLayouts = this.$("[data-role=buyLayouts]")
-
+ this.$closeMenu = this.$("[data-role=closeMenu]")
this.$changePlan = this.$("[data-role=changePlan]")
+ // input fields
this.$basicLayoutInput = this.$("[data-role=basicLayoutInput]")
this.$proLayoutInput = this.$("[data-role=proLayoutInput]")
this.$planRadio = this.$("[name=planRadio]")
- this.$upgradeSubscription = this.$("[data-role=upgradeSubscription]")
- this.$cancelSubscription = this.$("[data-role=cancelSubscription]")
-
this.$gear = this.$(".gear")
},
@@ -112,11 +131,15 @@ var EditSubscriptionModal = ModalView.extend({
this.$freePlan.hide()
this.$paidPlan.show()
- this.updateTotals()
+ this.reset()
this.__super__.show.call(this)
},
-
+ reset: function(){
+ var subscriber = this.subscriber
+ var plan = this.plans[ this.plan_levels[ subscriber.plan_type ] ]
+ this.displayTotals(subscriber)
+ },
calculateTotals: function(subscriber, plan){
var t = {}
t.is_pro = plan.name == "pro"
@@ -129,10 +152,7 @@ var EditSubscriptionModal = ModalView.extend({
t.plan_total = t.plan_price + t.basic_layout_total + t.pro_layout_total
return t
},
-
- updateTotals: function(){
- var subscriber = this.subscriber
- var plan = this.plans[ this.plan_levels[ subscriber.plan_type ] ]
+ displayTotals: function(subscriber, plan){
var totals = this.calculateTotals(subscriber, plan)
this.$basicPlanName.html ( this.plans[1].name )