This repository has been archived on 2023-03-18. You can view files and clone it, but cannot push or open issues or pull requests.
osr-discourse-src/app/assets/javascripts/admin/addon/controllers/modals/admin-reseed.js
2023-02-24 12:47:42 +01:00

46 lines
1.1 KiB
JavaScript

import I18n from "I18n";
import Modal from "discourse/controllers/modal";
import { ajax } from "discourse/lib/ajax";
import { inject as service } from "@ember/service";
export default Modal.extend({
dialog: service(),
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",
})
.catch(() => this.dialog.alert(I18n.t("generic_error")))
.finally(() => {
this.set("reseeding", false);
this.send("closeModal");
});
},
},
});