import Controller from "@ember/controller"; import I18n from "I18n"; import ModalFunctionality from "discourse/mixins/modal-functionality"; import { ajax } from "discourse/lib/ajax"; import bootbox from "bootbox"; export default Controller.extend(ModalFunctionality, { loading: true, reseeding: false, categories: null, topics: null, onShow() { ajax("/admin/customize/reseed") .then((result) => { this.setProperties({ categories: result.categories, topics: result.topics, }); }) .finally(() => this.set("loading", false)); }, _extractSelectedIds(items) { return items.filter((item) => item.selected).map((item) => item.id); }, actions: { reseed() { this.set("reseeding", true); ajax("/admin/customize/reseed", { data: { category_ids: this._extractSelectedIds(this.categories), topic_ids: this._extractSelectedIds(this.topics), }, type: "POST", }) .then( () => this.send("closeModal"), () => bootbox.alert(I18n.t("generic_error")) ) .finally(() => this.set("reseeding", false)); }, }, });