summaryrefslogtreecommitdiff
path: root/public/assets/javascripts/ui/site/EditSubscriptionModal.js
diff options
context:
space:
mode:
Diffstat (limited to 'public/assets/javascripts/ui/site/EditSubscriptionModal.js')
-rw-r--r--public/assets/javascripts/ui/site/EditSubscriptionModal.js57
1 files changed, 27 insertions, 30 deletions
diff --git a/public/assets/javascripts/ui/site/EditSubscriptionModal.js b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
index 384460d..6e5dc9e 100644
--- a/public/assets/javascripts/ui/site/EditSubscriptionModal.js
+++ b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
@@ -7,6 +7,7 @@ var EditSubscriptionModal = ModalView.extend({
destroyAction: "/api/subscription/destroy",
fixedClose: true,
+ editing: false,
subscriber: null,
tempSubscriber: null,
@@ -17,14 +18,13 @@ var EditSubscriptionModal = ModalView.extend({
"click .gear": 'sync',
"click .planList button": 'followLink',
- "click [data-role=showLayoutsMenu]": "layoutsMode",
- "click [data-role=showPlanMenu]": "planMode",
+ "click [data-role=showEditMenu]": "editMode",
"click [data-role=closeMenu]": "resetMode",
"input [data-role=basicLayoutInput]": "updateQuantity",
"input [data-role=proLayoutInput]": "updateQuantity",
- "click [data-role=saveQuantity]": "saveQuantity",
+ "click [data-role=saveChanges]": "saveChanges",
"change [name=planRadio]": "updatePlan",
"click [data-role=savePlan]": "savePlan",
@@ -186,21 +186,28 @@ var EditSubscriptionModal = ModalView.extend({
this.$planTotal.toDollars ( totals.plan_total )
},
- resetMode: function(e){
- e && e.preventDefault()
- this.$paidPlan.removeClass("editLayouts editPlan")
- this.reset()
- },
-
- layoutsMode: function(e){
+ editMode: function(e){
e && e.preventDefault()
- this.$paidPlan.addClass("editLayouts")
+
+ this.editing = true
+ this.$el.addClass("editing")
this.tempSubscriber = defaults({}, this.subscriber)
this.$basicLayoutInput.val( this.subscriber.basic_layouts )
this.$proLayoutInput.val( this.subscriber.pro_layouts )
this.$basicLayoutRow.show()
this.$proLayoutRow.toggle(this.subscriber.plan_type == "pro")
+ switch (this.subscriber.plan_type) {
+ case 'basic': this.$basicPlanInput.prop('checked', true); break;
+ case 'pro': this.$proPlanInput.prop('checked', true); break;
+ }
},
+ resetMode: function(e){
+ e && e.preventDefault()
+ this.editing = false
+ this.$el.removeClass("editing")
+ this.reset()
+ },
+
updateQuantity: function(e){
e && e.preventDefault()
var plan = this.getPlan( this.tempSubscriber.plan_type )
@@ -213,34 +220,24 @@ var EditSubscriptionModal = ModalView.extend({
this.$basicLayoutRow.show()
this.$proLayoutRow.toggle(this.tempSubscriber.plan_type == "pro")
},
- saveQuantity: function(e){
+ saveChanges: function(e){
e && e.preventDefault()
+ if (this.tempSubscriber.plan_type != this.subscriber.plan_type
+ || this.tempSubscriber.basic_layouts != this.subscriber.basic_layouts
+ || this.tempSubscriber.pro_layouts != this.subscriber.pro_layouts) {
+ // update plan_type
+ }
this.subscriber = this.tempSubscriber
this.resetMode()
// blabla.. save
},
- planMode: function(e){
- e && e.preventDefault()
- this.$paidPlan.addClass("editPlan")
- switch (this.subscriber.plan_type) {
- case 'basic': this.$basicPlanInput.prop('checked', true); break;
- case 'pro': this.$proPlanInput.prop('checked', true); break;
- }
- this.tempSubscriber = defaults({}, this.subscriber)
- },
updatePlan: function(e){
e && e.preventDefault()
- var plan_type = this.$("[name=planRadio]:checked").val()
- var plan = this.getPlan( plan_type )
- this.displayTotals(this.tempSubscriber, plan)
- },
- savePlan: function(e){
- e && e.preventDefault()
- this.subscriber.plan_type = this.$("[name=planRadio]:checked").val()
- this.resetMode()
- // blabla.. save
+ this.tempSubscriber.plan_type = this.$("[name=planRadio]:checked").val()
+ this.updateQuantity()
},
+
sync: function(){
this.$gear.addClass("turning")
$.ajax({