diff --git a/assets/javascripts/discourse/templates/components/campaign-banner.hbs b/assets/javascripts/discourse/components/campaign-banner.hbs
similarity index 100%
rename from assets/javascripts/discourse/templates/components/campaign-banner.hbs
rename to assets/javascripts/discourse/components/campaign-banner.hbs
diff --git a/assets/javascripts/discourse/templates/components/create-coupon-form.hbs b/assets/javascripts/discourse/components/create-coupon-form.hbs
similarity index 100%
rename from assets/javascripts/discourse/templates/components/create-coupon-form.hbs
rename to assets/javascripts/discourse/components/create-coupon-form.hbs
diff --git a/assets/javascripts/discourse/templates/components/login-required.hbs b/assets/javascripts/discourse/components/login-required.hbs
similarity index 100%
rename from assets/javascripts/discourse/templates/components/login-required.hbs
rename to assets/javascripts/discourse/components/login-required.hbs
diff --git a/assets/javascripts/discourse/components/modal/admin-cancel-subscription.gjs b/assets/javascripts/discourse/components/modal/admin-cancel-subscription.gjs
new file mode 100644
index 0000000..b7f39af
--- /dev/null
+++ b/assets/javascripts/discourse/components/modal/admin-cancel-subscription.gjs
@@ -0,0 +1,38 @@
+import DButton from "discourse/components/d-button";
+import DModal from "discourse/components/d-modal";
+import Component from "@glimmer/component";
+import { fn, hash } from "@ember/helper";
+import i18n from "discourse-common/helpers/i18n";
+import { Input } from "@ember/component";
+import { tracked } from "@glimmer/tracking";
+
+export default class AdminCancelSubscription extends Component {
+ @tracked refund;
+
+
+
+ <:body>
+
+ {{i18n "discourse_subscriptions.admin.ask_refund"}}
+
+ <:footer>
+
+
+
+
+
+}
diff --git a/assets/javascripts/discourse/templates/components/payment-options.hbs b/assets/javascripts/discourse/components/payment-options.hbs
similarity index 100%
rename from assets/javascripts/discourse/templates/components/payment-options.hbs
rename to assets/javascripts/discourse/components/payment-options.hbs
diff --git a/assets/javascripts/discourse/templates/components/payment-plan.hbs b/assets/javascripts/discourse/components/payment-plan.hbs
similarity index 100%
rename from assets/javascripts/discourse/templates/components/payment-plan.hbs
rename to assets/javascripts/discourse/components/payment-plan.hbs
diff --git a/assets/javascripts/discourse/templates/components/product-item.hbs b/assets/javascripts/discourse/components/product-item.hbs
similarity index 100%
rename from assets/javascripts/discourse/templates/components/product-item.hbs
rename to assets/javascripts/discourse/components/product-item.hbs
diff --git a/assets/javascripts/discourse/templates/components/product-list.hbs b/assets/javascripts/discourse/components/product-list.hbs
similarity index 100%
rename from assets/javascripts/discourse/templates/components/product-list.hbs
rename to assets/javascripts/discourse/components/product-list.hbs
diff --git a/assets/javascripts/discourse/templates/components/subscribe-card.hbs b/assets/javascripts/discourse/components/subscribe-card.hbs
similarity index 100%
rename from assets/javascripts/discourse/templates/components/subscribe-card.hbs
rename to assets/javascripts/discourse/components/subscribe-card.hbs
diff --git a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-subscriptions.js b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-subscriptions.js
index 541ef9f..d2b3f87 100644
--- a/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-subscriptions.js
+++ b/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions-subscriptions.js
@@ -1,30 +1,57 @@
-import AdminSubscription from "discourse/plugins/discourse-subscriptions/discourse/models/admin-subscription";
+import AdminCancelSubscription from "../components/modal/admin-cancel-subscription";
+import AdminSubscription from "../models/admin-subscription";
import Controller from "@ember/controller";
-import showModal from "discourse/lib/show-modal";
+import { action } from "@ember/object";
+import { inject as service } from "@ember/service";
+import I18n from "discourse-i18n";
export default Controller.extend({
+ modal: service(),
+ dialog: service(),
loading: false,
- actions: {
- showCancelModal(subscription) {
- showModal("admin-cancel-subscription", {
- model: subscription,
+ @action
+ showCancelModal(subscription) {
+ this.modal.show(AdminCancelSubscription, {
+ model: {
+ subscription,
+ cancelSubscription: this.cancelSubscription,
+ },
+ });
+ },
+
+ @action
+ loadMore() {
+ if (!this.loading && this.model.has_more) {
+ this.set("loading", true);
+
+ return AdminSubscription.loadMore(this.model.last_record).then(
+ (result) => {
+ const updated = this.model.data.concat(result.data);
+ this.set("model", result);
+ this.set("model.data", updated);
+ this.set("loading", false);
+ }
+ );
+ }
+ },
+
+ @action
+ cancelSubscription(model) {
+ const subscription = model.subscription;
+ const refund = model.refund;
+ subscription.set("loading", true);
+ subscription
+ .destroy(refund)
+ .then((result) => {
+ subscription.set("status", result.status);
+ this.dialog.alert(I18n.t("discourse_subscriptions.admin.canceled"));
+ })
+ .catch((data) =>
+ this.dialog.alert(data.jqXHR.responseJSON.errors.join("\n"))
+ )
+ .finally(() => {
+ subscription.set("loading", false);
});
- },
-
- loadMore() {
- if (!this.loading && this.model.has_more) {
- this.set("loading", true);
-
- return AdminSubscription.loadMore(this.model.last_record).then(
- (result) => {
- const updated = this.model.data.concat(result.data);
- this.set("model", result);
- this.set("model.data", updated);
- this.set("loading", false);
- }
- );
- }
- },
},
});
diff --git a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-subscriptions.js b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-subscriptions.js
index f190037..5ff4b10 100644
--- a/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-subscriptions.js
+++ b/assets/javascripts/discourse/routes/admin-plugins-discourse-subscriptions-subscriptions.js
@@ -1,33 +1,8 @@
-import I18n from "I18n";
import Route from "@ember/routing/route";
import AdminSubscription from "discourse/plugins/discourse-subscriptions/discourse/models/admin-subscription";
-import { action } from "@ember/object";
-import { inject as service } from "@ember/service";
export default Route.extend({
- dialog: service(),
model() {
return AdminSubscription.find();
},
-
- @action
- cancelSubscription(model) {
- const subscription = model.subscription;
- const refund = model.refund;
- subscription.set("loading", true);
- subscription
- .destroy(refund)
- .then((result) => {
- subscription.set("status", result.status);
- this.send("closeModal");
- this.dialog.alert(I18n.t("discourse_subscriptions.admin.canceled"));
- })
- .catch((data) =>
- this.dialog.alert(data.jqXHR.responseJSON.errors.join("\n"))
- )
- .finally(() => {
- subscription.set("loading", false);
- this.refresh();
- });
- },
});
diff --git a/assets/javascripts/discourse/templates/modal/admin-cancel-subscription.hbs b/assets/javascripts/discourse/templates/modal/admin-cancel-subscription.hbs
deleted file mode 100644
index bfac168..0000000
--- a/assets/javascripts/discourse/templates/modal/admin-cancel-subscription.hbs
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
- {{i18n "discourse_subscriptions.admin.ask_refund"}}
-
-
-
-
\ No newline at end of file