Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-12-02 05:21:10 +01:00
74 Zeilen
1,8 KiB
JavaScript
74 Zeilen
1,8 KiB
JavaScript
import EmberObject from "@ember/object";
|
|
import discourseComputed from "discourse-common/utils/decorators";
|
|
import { ajax } from "discourse/lib/ajax";
|
|
import { popupAjaxError } from "discourse/lib/ajax-error";
|
|
import { and, not, notEmpty } from "@ember/object/computed";
|
|
import { dasherize } from "@ember/string";
|
|
import I18n from "I18n";
|
|
|
|
const CustomWizardNotice = EmberObject.extend({
|
|
expired: notEmpty("expired_at"),
|
|
dismissed: notEmpty("dismissed_at"),
|
|
hidden: notEmpty("hidden_at"),
|
|
notHidden: not("hidden"),
|
|
notDismissed: not("dismissed"),
|
|
canDismiss: and("dismissable", "notDismissed"),
|
|
canHide: and("can_hide", "notHidden"),
|
|
|
|
@discourseComputed("type")
|
|
typeClass(type) {
|
|
return dasherize(type);
|
|
},
|
|
|
|
@discourseComputed("type")
|
|
typeLabel(type) {
|
|
return I18n.t(`admin.wizard.notice.type.${type}`);
|
|
},
|
|
|
|
dismiss() {
|
|
if (!this.get("canDismiss")) {
|
|
return;
|
|
}
|
|
|
|
return ajax(`/admin/wizards/notice/${this.get("id")}/dismiss`, {
|
|
type: "PUT",
|
|
})
|
|
.then((result) => {
|
|
if (result.success) {
|
|
this.set("dismissed_at", result.dismissed_at);
|
|
}
|
|
})
|
|
.catch(popupAjaxError);
|
|
},
|
|
|
|
hide() {
|
|
if (!this.get("canHide")) {
|
|
return;
|
|
}
|
|
|
|
return ajax(`/admin/wizards/notice/${this.get("id")}/hide`, { type: "PUT" })
|
|
.then((result) => {
|
|
if (result.success) {
|
|
this.set("hidden_at", result.hidden_at);
|
|
}
|
|
})
|
|
.catch(popupAjaxError);
|
|
},
|
|
});
|
|
|
|
CustomWizardNotice.reopenClass({
|
|
list(data = {}) {
|
|
return ajax("/admin/wizards/notice", {
|
|
type: "GET",
|
|
data,
|
|
}).catch(popupAjaxError);
|
|
},
|
|
|
|
dismissAll() {
|
|
return ajax("/admin/wizards/notice/dismiss", {
|
|
type: "PUT",
|
|
}).catch(popupAjaxError);
|
|
},
|
|
});
|
|
|
|
export default CustomWizardNotice;
|