diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show.js.es6 b/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show.js.es6 index d07d0d1..2f15386 100644 --- a/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show.js.es6 +++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-patrons-products-show.js.es6 @@ -1,7 +1,15 @@ import { popupAjaxError } from "discourse/lib/ajax-error"; export default Ember.Controller.extend({ + redirect() { + this.transitionToRoute("adminPlugins.discourse-patrons.products"); + }, + actions: { + cancelProduct() { + this.redirect(); + }, + createProduct() { // TODO: set default group name beforehand if (this.get("model.product.metadata.group_name") === undefined) { @@ -13,18 +21,14 @@ export default Ember.Controller.extend({ this.get("model.product") .save() - .then(() => { - this.transitionToRoute("adminPlugins.discourse-patrons.products"); - }) + .then(() => this.redirect()) .catch(popupAjaxError); }, updateProduct() { this.get("model.product") .update() - .then(() => { - this.transitionToRoute("adminPlugins.discourse-patrons.products"); - }) + .then(() => this.redirect()) .catch(popupAjaxError); } } diff --git a/assets/javascripts/discourse/models/admin-plan.js.es6 b/assets/javascripts/discourse/models/admin-plan.js.es6 index 3c632d9..1618657 100644 --- a/assets/javascripts/discourse/models/admin-plan.js.es6 +++ b/assets/javascripts/discourse/models/admin-plan.js.es6 @@ -1,3 +1,4 @@ +import computed from "ember-addons/ember-computed-decorators"; import { ajax } from "discourse/lib/ajax"; const AdminPlan = Discourse.Model.extend({ @@ -6,6 +7,11 @@ const AdminPlan = Discourse.Model.extend({ amount: 0, intervals: ["day", "week", "month", "year"], + @computed("created") + createdFormatted(created) { + return moment.unix(created).format(); + }, + destroy() { return ajax(`/patrons/admin/plans/${this.id}`, { method: "delete" }); }, diff --git a/assets/javascripts/discourse/models/admin-product.js.es6 b/assets/javascripts/discourse/models/admin-product.js.es6 index 2a6b358..9f1f68d 100644 --- a/assets/javascripts/discourse/models/admin-product.js.es6 +++ b/assets/javascripts/discourse/models/admin-product.js.es6 @@ -1,9 +1,15 @@ +import computed from "ember-addons/ember-computed-decorators"; import { ajax } from "discourse/lib/ajax"; const AdminProduct = Discourse.Model.extend({ isNew: false, metadata: {}, + @computed("created") + createdFormatted(created) { + return moment.unix(created).format(); + }, + destroy() { return ajax(`/patrons/admin/products/${this.id}`, { method: "delete" }); }, diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-index.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-index.hbs index 4393746..bf17fd4 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-index.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-index.hbs @@ -1,17 +1,24 @@ +

+ {{#link-to 'adminPlugins.discourse-patrons.products.show' 'new' class="btn btn-primary"}} + {{d-icon "plus"}} + {{i18n 'discourse_patrons.admin.products.operations.new'}} + {{/link-to}} +

+ - + {{#each model as |product|}} - +
{{i18n 'discourse_patrons.admin.products.product.product_id'}} {{i18n 'discourse_patrons.admin.products.product.name'}} {{i18n 'discourse_patrons.admin.products.product.group'}}{{i18n 'discourse_patrons.admin.products.product.created_at'}} {{i18n 'discourse_patrons.admin.products.product.active'}}
{{product.id}} {{product.name}} {{product.metadata.group_name}}{{format-date product.createdFormatted}} {{product.active}} {{#link-to "adminPlugins.discourse-patrons.products.show" product.id class="btn no-text btn-icon"}} diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show.hbs index 198c353..15171ec 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products-show.hbs @@ -32,9 +32,9 @@

- + {{#each model.plans as |plan|}} - +
{{i18n 'discourse_patrons.admin.plans.plan.plan_id'}} {{i18n 'discourse_patrons.admin.plans.plan.nickname'}} {{i18n 'discourse_patrons.admin.plans.plan.interval'}}{{i18n 'discourse_patrons.admin.plans.plan.created_at'}} {{i18n 'discourse_patrons.admin.plans.plan.amount'}} {{#link-to "adminPlugins.discourse-patrons.products.show.plans.show" model.product.id "new" class="btn"}} @@ -44,9 +44,9 @@
{{plan.id}} {{plan.nickname}} {{plan.interval}}{{format-date plan.createdFormatted}} {{plan.amount}} {{#link-to "adminPlugins.discourse-patrons.products.show.plans.show" model.product.id plan.id class="btn no-text btn-icon"}} @@ -67,6 +67,7 @@
+ {{d-button label="cancel" action=(action "cancelProduct") icon="times"}} {{#if model.product.isNew}} {{d-button label="discourse_patrons.admin.products.operations.create" action="createProduct" icon="plus"}} {{else}} diff --git a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products.hbs b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products.hbs index efa8bd5..b1b1f40 100644 --- a/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products.hbs +++ b/assets/javascripts/discourse/templates/admin/plugins-discourse-patrons-products.hbs @@ -1,9 +1,2 @@ -

- {{#link-to 'adminPlugins.discourse-patrons.products.show' 'new' class="btn btn-primary"}} - {{d-icon "plus"}} - {{i18n 'discourse_patrons.admin.products.operations.new'}} - {{/link-to}} -

- {{outlet}} diff --git a/config/locales/client.en.yml b/config/locales/client.en.yml index 90d6bf6..4cd7630 100644 --- a/config/locales/client.en.yml +++ b/config/locales/client.en.yml @@ -76,6 +76,7 @@ en: group: User Group group_help: This is the discourse user group the customer gets added to when the subscription is created. active: Active + created_at: Created plans: title: Pricing Plans operations: @@ -94,6 +95,7 @@ en: amount: Amount trial: Trial Period Days trial_help: Subscriptions to this plan will automatically start with a free trial of this length + created_at: Created subscriptions: title: Subscriptions subscription: