diff --git a/app/assets/javascripts/admin/addon/components/modal/site-setting-default-categories.hbs b/app/assets/javascripts/admin/addon/components/modal/site-setting-default-categories.hbs
new file mode 100644
index 00000000000..d83e9b0e449
--- /dev/null
+++ b/app/assets/javascripts/admin/addon/components/modal/site-setting-default-categories.hbs
@@ -0,0 +1,23 @@
+
+ <:body>
+ {{i18n
+ "admin.site_settings.default_categories.modal_description"
+ count=@model.siteSetting.count
+ }}
+
+ <:footer>
+
+
+
+
\ No newline at end of file
diff --git a/app/assets/javascripts/admin/addon/components/modal/site-setting-default-categories.js b/app/assets/javascripts/admin/addon/components/modal/site-setting-default-categories.js
new file mode 100644
index 00000000000..88539f620fb
--- /dev/null
+++ b/app/assets/javascripts/admin/addon/components/modal/site-setting-default-categories.js
@@ -0,0 +1,16 @@
+import Component from "@glimmer/component";
+import { action } from "@ember/object";
+
+export default class SiteSettingDefaultCategories extends Component {
+ @action
+ updateExistingUsers() {
+ this.args.model.setUpdateExistingUsers(true);
+ this.args.closeModal();
+ }
+
+ @action
+ cancel() {
+ this.args.model.setUpdateExistingUsers(false);
+ this.args.closeModal();
+ }
+}
diff --git a/app/assets/javascripts/admin/addon/controllers/modals/site-setting-default-categories.js b/app/assets/javascripts/admin/addon/controllers/modals/site-setting-default-categories.js
deleted file mode 100644
index e7e970578bd..00000000000
--- a/app/assets/javascripts/admin/addon/controllers/modals/site-setting-default-categories.js
+++ /dev/null
@@ -1,8 +0,0 @@
-import Controller from "@ember/controller";
-import ModalFunctionality from "discourse/mixins/modal-functionality";
-import ModalUpdateExistingUsers from "discourse/mixins/modal-update-existing-users";
-
-export default class SiteSettingDefaultCategoriesController extends Controller.extend(
- ModalFunctionality,
- ModalUpdateExistingUsers
-) {}
diff --git a/app/assets/javascripts/admin/addon/mixins/setting-component.js b/app/assets/javascripts/admin/addon/mixins/setting-component.js
index f560e36eeb9..455991badf0 100644
--- a/app/assets/javascripts/admin/addon/mixins/setting-component.js
+++ b/app/assets/javascripts/admin/addon/mixins/setting-component.js
@@ -7,10 +7,11 @@ import { ajax } from "discourse/lib/ajax";
import { categoryLinkHTML } from "discourse/helpers/category-link";
import discourseComputed, { bind } from "discourse-common/utils/decorators";
import { htmlSafe } from "@ember/template";
-import showModal from "discourse/lib/show-modal";
import { warn } from "@ember/debug";
import { action } from "@ember/object";
import { splitString } from "discourse/lib/utilities";
+import { inject as service } from "@ember/service";
+import SiteSettingDefaultCategoriesModal from "../components/modal/site-setting-default-categories";
const CUSTOM_TYPES = [
"bool",
@@ -74,6 +75,8 @@ const DEFAULT_USER_PREFERENCES = [
];
export default Mixin.create({
+ modal: service(),
+ site: service(),
attributeBindings: ["setting.setting:data-setting"],
classNameBindings: [":row", ":setting", "overridden", "typeClass"],
validationMessage: null,
@@ -190,22 +193,24 @@ export default Mixin.create({
});
const count = result.user_count;
-
if (count > 0) {
- const controller = showModal("site-setting-default-categories", {
- model: { count, key: key.replaceAll("_", " ") },
- admin: true,
- });
-
- controller.set("onClose", () => {
- this.updateExistingUsers = controller.updateExistingUsers;
- this.save();
+ await this.modal.show(SiteSettingDefaultCategoriesModal, {
+ model: {
+ siteSetting: { count, key: key.replaceAll("_", " ") },
+ setUpdateExistingUsers: this.setUpdateExistingUsers,
+ },
});
+ this.save();
} else {
await this.save();
}
},
+ @action
+ setUpdateExistingUsers(value) {
+ this.updateExistingUsers = value;
+ },
+
@action
async save() {
try {
diff --git a/app/assets/javascripts/admin/addon/templates/modal/site-setting-default-categories.hbs b/app/assets/javascripts/admin/addon/templates/modal/site-setting-default-categories.hbs
deleted file mode 100644
index 53a486173af..00000000000
--- a/app/assets/javascripts/admin/addon/templates/modal/site-setting-default-categories.hbs
+++ /dev/null
@@ -1,18 +0,0 @@
-
- {{i18n
- "admin.site_settings.default_categories.modal_description"
- count=this.model.count
- }}
-
-
-
\ No newline at end of file
diff --git a/app/assets/javascripts/discourse/app/mixins/modal-update-existing-users.js b/app/assets/javascripts/discourse/app/mixins/modal-update-existing-users.js
deleted file mode 100644
index 699061545f5..00000000000
--- a/app/assets/javascripts/discourse/app/mixins/modal-update-existing-users.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import Mixin from "@ember/object/mixin";
-
-export default Mixin.create({
- onShow() {
- this.set("updateExistingUsers", null);
- },
-
- actions: {
- updateExistingUsers() {
- this.set("updateExistingUsers", true);
- this.send("closeModal");
- },
-
- cancel() {
- this.set("updateExistingUsers", false);
- this.send("closeModal");
- },
- },
-});
diff --git a/app/assets/javascripts/discourse/app/services/modal.js b/app/assets/javascripts/discourse/app/services/modal.js
index 683e63a0cfc..396192afe40 100644
--- a/app/assets/javascripts/discourse/app/services/modal.js
+++ b/app/assets/javascripts/discourse/app/services/modal.js
@@ -48,7 +48,6 @@ const KNOWN_LEGACY_MODALS = [
"topic-summary",
"user-status",
"admin-penalize-user",
- "site-setting-default-categories",
"admin-badge-preview",
"admin-edit-badge-groupings",
"admin-reseed",