55 lines
1.3 KiB
JavaScript
55 lines
1.3 KiB
JavaScript
import computed from "ember-addons/ember-computed-decorators";
|
|
import DiscourseURL from "discourse/lib/url";
|
|
|
|
export default Ember.Controller.extend({
|
|
// Also defined in settings.
|
|
currencies: ["AUD", "CAD", "EUR", "GBP", "USD"],
|
|
|
|
@computed("model.plan.isNew")
|
|
planFieldDisabled(isNew) {
|
|
return !isNew;
|
|
},
|
|
|
|
@computed("model.product.id")
|
|
productId(id) {
|
|
return id;
|
|
},
|
|
|
|
redirect(product_id) {
|
|
DiscourseURL.redirectTo(
|
|
`/admin/plugins/discourse-subscriptions/products/${product_id}`
|
|
);
|
|
},
|
|
|
|
actions: {
|
|
cancelPlan(product_id) {
|
|
this.redirect(product_id);
|
|
},
|
|
|
|
createPlan() {
|
|
// TODO: set default group name beforehand
|
|
if (this.get("model.plan.metadata.group_name") === undefined) {
|
|
this.set("model.plan.metadata", {
|
|
group_name: this.get("model.groups.firstObject.name")
|
|
});
|
|
}
|
|
|
|
this.get("model.plan")
|
|
.save()
|
|
.then(() => this.redirect(this.productId))
|
|
.catch(data =>
|
|
bootbox.alert(data.jqXHR.responseJSON.errors.join("\n"))
|
|
);
|
|
},
|
|
|
|
updatePlan() {
|
|
this.get("model.plan")
|
|
.update()
|
|
.then(() => this.redirect(this.productId))
|
|
.catch(data =>
|
|
bootbox.alert(data.jqXHR.responseJSON.errors.join("\n"))
|
|
);
|
|
}
|
|
}
|
|
});
|