From 4457713901525398fc9feb95ff4d5e6ba4db7d2d Mon Sep 17 00:00:00 2001 From: Justin DiRose Date: Wed, 19 Aug 2020 15:08:38 -0500 Subject: [PATCH] FEATURE: Show renewal date on uncanceled subscriptions --- .../discourse/models/user-subscription.js.es6 | 22 ++++++++++++++----- .../templates/user/billing/subscriptions.hbs | 2 ++ 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/assets/javascripts/discourse/models/user-subscription.js.es6 b/assets/javascripts/discourse/models/user-subscription.js.es6 index ae66904..15baf02 100644 --- a/assets/javascripts/discourse/models/user-subscription.js.es6 +++ b/assets/javascripts/discourse/models/user-subscription.js.es6 @@ -2,6 +2,7 @@ import EmberObject from "@ember/object"; import discourseComputed from "discourse-common/utils/decorators"; import { ajax } from "discourse/lib/ajax"; import Plan from "discourse/plugins/discourse-subscriptions/discourse/models/plan"; +import I18n from "I18n"; const UserSubscription = EmberObject.extend({ @discourseComputed("status") @@ -9,22 +10,31 @@ const UserSubscription = EmberObject.extend({ return status === "canceled"; }, + @discourseComputed("current_period_end", "canceled_at") + endDate(current_period_end, canceled_at) { + if (!canceled_at) { + return moment.unix(current_period_end).format("LL"); + } else { + return I18n.t("discourse_subscriptions.user.subscriptions.cancelled"); + } + }, + destroy() { return ajax(`/s/user/subscriptions/${this.id}`, { - method: "delete" - }).then(result => UserSubscription.create(result)); - } + method: "delete", + }).then((result) => UserSubscription.create(result)); + }, }); UserSubscription.reopenClass({ findAll() { - return ajax("/s/user/subscriptions", { method: "get" }).then(result => - result.map(subscription => { + return ajax("/s/user/subscriptions", { method: "get" }).then((result) => + result.map((subscription) => { subscription.plan = Plan.create(subscription.plan); return UserSubscription.create(subscription); }) ); - } + }, }); export default UserSubscription; diff --git a/assets/javascripts/discourse/templates/user/billing/subscriptions.hbs b/assets/javascripts/discourse/templates/user/billing/subscriptions.hbs index 72d8ef8..80d8167 100644 --- a/assets/javascripts/discourse/templates/user/billing/subscriptions.hbs +++ b/assets/javascripts/discourse/templates/user/billing/subscriptions.hbs @@ -5,6 +5,7 @@ {{i18n 'discourse_subscriptions.user.plans.product'}} {{i18n 'discourse_subscriptions.user.plans.rate'}} {{i18n 'discourse_subscriptions.user.subscriptions.status'}} + Renews {{i18n 'discourse_subscriptions.user.subscriptions.created_at'}} @@ -14,6 +15,7 @@ {{subscription.product.name}} {{subscription.plan.subscriptionRate}} {{subscription.status}} + {{subscription.endDate}} {{format-unix-date subscription.created}} {{#if subscription.loading}}