57 Zeilen
1,6 KiB
Text
57 Zeilen
1,6 KiB
Text
|
import Controller from "@ember/controller";
|
||
|
import discourseComputed from "discourse-common/utils/decorators";
|
||
|
import CustomWizardPro from "../models/custom-wizard-pro";
|
||
|
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);
|
||
|
|
||
|
CustomWizardPro.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);
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
});
|