Files
discourse-subscriptions/assets/javascripts/discourse/controllers/admin-plugins-discourse-subscriptions.js
T

66 lines
1.8 KiB
JavaScript

import Controller from "@ember/controller";
import { action } from "@ember/object";
import { service } from "@ember/service";
import { htmlSafe } from "@ember/template";
import { ajax } from "discourse/lib/ajax";
import { popupAjaxError } from "discourse/lib/ajax-error";
import discourseComputed from "discourse/lib/decorators";
import { i18n } from "discourse-i18n";
export default class AdminPluginsDiscourseSubscriptionsController extends Controller {
@service dialog;
loading = false;
@discourseComputed
stripeConfigured() {
return !!this.siteSettings.discourse_subscriptions_public_key;
}
@discourseComputed
campaignEnabled() {
return this.siteSettings.discourse_subscriptions_campaign_enabled;
}
@discourseComputed
campaignProductSet() {
return !!this.siteSettings.discourse_subscriptions_campaign_product;
}
@action
triggerManualRefresh() {
ajax(`/s/admin/refresh`, {
method: "post",
}).then(() => {
this.dialog.alert(i18n("discourse_subscriptions.campaign.refresh_page"));
});
}
@action
createOneClickCampaign() {
this.dialog.yesNoConfirm({
title: i18n("discourse_subscriptions.campaign.confirm_creation_title"),
message: htmlSafe(
i18n("discourse_subscriptions.campaign.confirm_creation")
),
didConfirm: () => {
this.set("loading", true);
ajax(`/s/admin/create-campaign`, {
method: "post",
})
.then(() => {
this.set("loading", false);
this.dialog.confirm({
message: i18n("discourse_subscriptions.campaign.created"),
shouldDisplayCancel: false,
didConfirm: () => this.send("showSettings"),
didCancel: () => this.send("showSettings"),
});
})
.catch(popupAjaxError);
},
});
}
}