templates, plans

This commit is contained in:
Rimian Perkins
2019-10-21 15:28:45 +11:00
parent 2dbcda49c3
commit c6dd47d328
11 changed files with 96 additions and 20 deletions
@@ -1,23 +1,31 @@
export default {
resource: "admin.adminPlugins",
path: "/plugins",
map() {
this.route("discourse-patrons", function() {
this.route("dashboard");
this.route("products", function() {
this.route("plans", { path: "/:product-id/plans" }, function() {
this.route("show", { path: "/:plan-id" });
});
this.route("show", { path: "/:product-id" });
});
// this.route("products", function() {
// this.route("plans", { path: "/:product-id/plans" }, function() {
// this.route("show", { path: ":plan-id" });
// });
// this.route("show", { path: "/:product-id" });
// });
this.route("products", function() {
this.route("show", { path: "/:product-id" }, function() {
// this.route("plans");
this.route("plans", function() {
this.route("show", { path: "/:plan-id" });
});
});
});
// this.route("plans", function() {
// this.route("show", { path: "/:plan-id" });
// });
this.route("subscriptions");
});
}
@@ -23,8 +23,8 @@ const AdminPlan = Discourse.Model.extend({
});
AdminPlan.reopenClass({
findAll() {
return ajax("/patrons/admin/plans", { method: "get" }).then(result =>
findAll(data) {
return ajax("/patrons/admin/plans", { method: "get", data }).then(result =>
result.map(plan => AdminPlan.create(plan))
);
},
@@ -0,0 +1,24 @@
import AdminPlan from "discourse/plugins/discourse-patrons/discourse/models/admin-plan";
import AdminProduct from "discourse/plugins/discourse-patrons/discourse/models/admin-product";
export default Discourse.Route.extend({
templateName: 'admin-plugins-discourse-patrons-plans-show',
model(params) {
console.log('product plans', params);
// const id = params['plan-id'];
// let plan;
//
// if(id === 'new') {
// plan = AdminPlan.create();
// }
// else {
// plan = AdminPlan.find(id);
// }
//
// const products = AdminProduct.findAll();
//
// return Ember.RSVP.hash({ plan, products });
}
});
@@ -1,20 +1,25 @@
import AdminProduct from "discourse/plugins/discourse-patrons/discourse/models/admin-product";
import AdminPlan from "discourse/plugins/discourse-patrons/discourse/models/admin-plan";
import Group from "discourse/models/group";
export default Discourse.Route.extend({
model(params) {
const id = params['product-id'];
let product;
console.log('products show', params);
if(id === 'new') {
const product_id = params['product-id'];
let product;
let plans = [];
if(product_id === 'new') {
product = AdminProduct.create({ active: true, isNew: true });
}
else {
product = AdminProduct.find(id);
product = AdminProduct.find(product_id);
plans = AdminPlan.findAll({ product_id });
}
const groups = Group.findAll({ ignore_automatic: true });
return Ember.RSVP.hash({ product, groups });
return Ember.RSVP.hash({ plans, product, groups });
}
});
@@ -28,6 +28,33 @@
</p>
</form>
<h4>{{i18n 'discourse_patrons.admin.plans.title'}}</h4>
<p>
<table class="table discourse-patrons-admin">
<thead>
<th>{{i18n 'discourse_patrons.admin.plans.plan.plan_id'}}</th>
<th>{{i18n 'discourse_patrons.admin.plans.plan.nickname.title'}}</th>
<th>{{i18n 'discourse_patrons.admin.plans.plan.interval'}}</th>
<th class="td-right">
{{#link-to "adminPlugins.discourse-patrons.products.show.plans.show" model.product.id "new" class="btn"}}
{{i18n 'discourse_patrons.admin.plans.operations.add'}}
{{/link-to}}
</th>
</thead>
{{#each model.plans as |plan|}}
<tr>
<td>{{plan.id}}</td>
<td>{{plan.nickname}}</td>
<td>{{plan.interval}}</td>
<td>{{plan.amount}}</td>
</tr>
{{/each}}
</table>
</p>
<hr>
<div class="buttons">
{{#if model.product.isNew}}
{{d-button label="discourse_patrons.admin.products.operations.create" action="createProduct" icon="plus"}}