basic subscribe page

This commit is contained in:
Rimian Perkins
2019-10-10 13:52:55 +11:00
parent 91045583ad
commit bb31deae89
23 changed files with 182 additions and 40 deletions
@@ -10,7 +10,7 @@ export default Ember.Component.extend({
this._super(...arguments);
const settings = Discourse.SiteSettings;
const amounts = Discourse.SiteSettings.discourse_patrons_amounts.split("|");
const amounts = settings.discourse_patrons_amounts.split("|");
this.setProperties({
confirmation: false,
@@ -0,0 +1,11 @@
export default Ember.Controller.extend({
actions: {
stripePaymentHandler(/* data */) {
// console.log('stripePaymentHandler', data);
},
paymentSuccessHandler(/* paymentIntentId */) {
// console.log('paymentSuccessHandler');
}
}
});
@@ -0,0 +1,15 @@
import { ajax } from "discourse/lib/ajax";
const AdminPlan = Discourse.Model.extend({
destroy() {}
});
AdminPlan.reopenClass({
find() {
return ajax("/patrons/admin/plans", { method: "get" }).then(result =>
result.plans.map(plan => AdminPlan.create(plan))
);
}
});
export default AdminPlan;
@@ -0,0 +1,18 @@
import { ajax } from "discourse/lib/ajax";
const Group = Discourse.Model.extend({});
Group.reopenClass({
subscriptionGroup:
Discourse.SiteSettings.discourse_patrons_subscription_group,
find() {
return ajax(`/groups/${this.subscriptionGroup}`, { method: "get" }).then(
result => {
return Group.create(result.group);
}
);
}
});
export default Group;
@@ -1,12 +1,10 @@
import { ajax } from "discourse/lib/ajax";
const Plan = Discourse.Model.extend({
destroy() {}
});
const Plan = Discourse.Model.extend({});
Plan.reopenClass({
find() {
return ajax("/patrons/admin/plans", { method: "get" }).then(result =>
return ajax("/patrons/plans", { method: "get" }).then(result =>
result.plans.map(plan => Plan.create(plan))
);
}
@@ -1,5 +1,6 @@
export default function() {
this.route("patrons", function() {
this.route("subscribe");
this.route("show", { path: ":pid" });
});
}
@@ -1,8 +1,8 @@
import Plan from "discourse/plugins/discourse-patrons/discourse/models/plan";
import AdminPlan from "discourse/plugins/discourse-patrons/discourse/models/admin-plan";
export default Discourse.Route.extend({
model() {
return Plan.find();
return AdminPlan.find();
},
actions: {
@@ -0,0 +1,11 @@
import Group from "discourse/plugins/discourse-patrons/discourse/models/group";
import Plan from "discourse/plugins/discourse-patrons/discourse/models/plan";
export default Discourse.Route.extend({
model() {
const group = Group.find();
const plans = Plan.find().then(results => results.map(p => p.id));
return Ember.RSVP.hash({ group, plans });
}
});
@@ -0,0 +1,4 @@
{{#link-to 'patrons.subscribe' class='discourse-patrons-subscribe'}}
{{i18n 'discourse_patrons.navigation.subscribe'}}
{{/link-to}}
@@ -0,0 +1,20 @@
<h3>
{{i18n 'discourse_patrons.subscribe.title'}}
</h3>
<div class="discourse-patrons-section-columns">
<div class="section-column discourse-patrons-confirmation-billing">
<h4>{{model.group.full_name}}</h4>
<p>
{{{model.group.bio_cooked}}}
</p>
</div>
<div class="section-column">
{{combo-box valueAttribute="id" content=model.plans value=model.plan}}
{{#d-button class="btn btn-primary btn-payment btn-discourse-patrons"}}
{{i18n 'discourse_patrons.subscribe.buttons.subscribe'}}
{{/d-button}}
</div>
</div>