summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--public/assets/javascripts/ui/site/EditSubscriptionModal.js25
-rw-r--r--server/lib/api/subscription.js20
2 files changed, 28 insertions, 17 deletions
diff --git a/public/assets/javascripts/ui/site/EditSubscriptionModal.js b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
index cd3d1bb..3bc1a24 100644
--- a/public/assets/javascripts/ui/site/EditSubscriptionModal.js
+++ b/public/assets/javascripts/ui/site/EditSubscriptionModal.js
@@ -221,14 +221,21 @@ var EditSubscriptionModal = ModalView.extend({
},
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
+ var is_changed = false
+ var diff = {}
+ "plan_type basic_layouts pro_layouts".split(" ").forEach(function(field){
+ if (this.tempSubscriber[field] != this.subscriber[field]) {
+ diff[field] = this.tempSubscriber[field]
+ is_changed = true
+ }
+ }.bind(this))
+
+ if (is_changed) {
+ diff.plan_type = this.tempSubscriber.plan_type
+ this.update(diff)
}
this.subscriber = this.tempSubscriber
this.resetMode()
- // blabla.. save
},
updatePlan: function(e){
@@ -248,12 +255,16 @@ var EditSubscriptionModal = ModalView.extend({
},
update: function(data){
+ data['_csrf'] = $("[name=_csrf]").val()
+ this.$gear.addClass("turning")
$.ajax({
url: this.updateAction,
type: "put",
- data: { _csrf: $("[name=_csrf]").val() },
+ data: data,
success: function(data){
- }
+ console.log("SUCCESS")
+ this.$gear.removeClass("turning")
+ }.bind(this)
})
},
diff --git a/server/lib/api/subscription.js b/server/lib/api/subscription.js
index 6f08e66..362d633 100644
--- a/server/lib/api/subscription.js
+++ b/server/lib/api/subscription.js
@@ -138,26 +138,26 @@ var subscription = module.exports = {
}
var subscriber = req.subscription
- // change..
- // data.plan_code
- // data.subscription_add_ons = []
- // add_on.add_on_code
- // add_on.quantity
- var basic_layouts = max(0, parseInt(req.body.basic_layouts))
- var pro_layouts = max(0, parseInt(req.body.pro_layouts))
+ var plan_type = req.body.plan_type
+ var basic_layouts = Math.max(0, parseInt(req.body.basic_layouts, 10))
+ var pro_layouts = Math.max(0, parseInt(req.body.pro_layouts, 10))
var data = {}
- data.plan_code = req.body.plan_type + "_monthly"
+ data.plan_code = plan_type + "_monthly"
data.subscription_add_ons = []
- if (plan_levels[req.body.plan_type]) {
+ if (plan_levels[plan_type] > 0) {
data.subscription_add_ons.push({ add_on_code: "extra-basic-layout", quantity: basic_layouts })
}
- if (req.body.plan_type == "pro") {
+ if (plan_type == "pro") {
data.subscription_add_ons.push({ add_on_code: "extra-pro-layout", quantity: pro_layouts })
}
+ // data.plan_code
+ // data.subscription_add_ons = []
+ // add_on.add_on_code
+ // add_on.quantity
recurly.subscriptions.update(subscriber.uuid, data, function(){
return res.json(subscriber)
})