basic subscribe page
This commit is contained in:
@@ -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" });
|
||||
});
|
||||
}
|
||||
|
||||
+2
-2
@@ -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>
|
||||
Reference in New Issue
Block a user