62 Zeilen
1,7 KiB
JavaScript
62 Zeilen
1,7 KiB
JavaScript
import Controller from "@ember/controller";
|
|
import discourseComputed from "discourse-common/utils/decorators";
|
|
import CustomWizardSubscription from "../models/custom-wizard-subscription";
|
|
import { alias } from "@ember/object/computed";
|
|
|
|
export default Controller.extend({
|
|
messageUrl: "https://thepavilion.io/t/3652",
|
|
messageType: "info",
|
|
messageKey: null,
|
|
showSubscription: alias("model.authentication.active"),
|
|
|
|
setup() {
|
|
const authentication = this.get("model.authentication");
|
|
const subscription = this.get("model.subscription");
|
|
const subscribed = subscription && subscription.active;
|
|
const authenticated = authentication && authentication.active;
|
|
|
|
if (!subscribed) {
|
|
this.set("messageKey", authenticated ? "not_subscribed" : "authorize");
|
|
} else {
|
|
this.set(
|
|
"messageKey",
|
|
!authenticated
|
|
? "subscription_expiring"
|
|
: subscribed
|
|
? "subscription_active"
|
|
: "subscription_inactive"
|
|
);
|
|
}
|
|
},
|
|
|
|
@discourseComputed("model.server")
|
|
messageOpts(server) {
|
|
return { server };
|
|
},
|
|
|
|
actions: {
|
|
unauthorize() {
|
|
this.set("unauthorizing", true);
|
|
|
|
CustomWizardSubscription.unauthorize()
|
|
.then((result) => {
|
|
if (result.success) {
|
|
this.setProperties({
|
|
messageKey: "unauthorized",
|
|
messageType: "warn",
|
|
"model.authentication": null,
|
|
"model.subscription": null,
|
|
});
|
|
} else {
|
|
this.setProperties({
|
|
messageKey: "unauthorize_failed",
|
|
messageType: "error",
|
|
});
|
|
}
|
|
})
|
|
.finally(() => {
|
|
this.set("unauthorizing", false);
|
|
});
|
|
},
|
|
},
|
|
});
|