2025-02-10 14:54:01 +11:00
|
|
|
import { service } from "@ember/service";
|
2018-10-10 17:26:23 +05:30
|
|
|
import { ajax } from "discourse/lib/ajax";
|
2020-05-12 14:41:26 -04:00
|
|
|
import DiscourseRoute from "discourse/routes/discourse";
|
2015-06-25 14:53:03 -07:00
|
|
|
|
2025-02-10 14:54:01 +11:00
|
|
|
export default class AdminPluginsExplorerIndex extends DiscourseRoute {
|
|
|
|
|
@service router;
|
|
|
|
|
|
|
|
|
|
beforeModel(transition) {
|
|
|
|
|
// Redirect old /explorer?id=123 route to /explorer/queries/123
|
|
|
|
|
if (transition.to.queryParams.id) {
|
|
|
|
|
this.router.transitionTo(
|
|
|
|
|
"adminPlugins.explorer.queries.details",
|
|
|
|
|
transition.to.queryParams.id
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2015-06-25 13:26:31 -07:00
|
|
|
model() {
|
2023-02-06 10:21:58 -06:00
|
|
|
if (!this.currentUser.admin) {
|
2020-12-07 15:13:14 -08:00
|
|
|
// display "Only available to admins" message
|
|
|
|
|
return { model: null, schema: null, disallow: true, groups: null };
|
|
|
|
|
}
|
|
|
|
|
|
2019-11-14 12:39:55 -06:00
|
|
|
const groupPromise = ajax("/admin/plugins/explorer/groups.json");
|
2019-09-11 09:09:41 -05:00
|
|
|
const queryPromise = this.store.findAll("query");
|
2015-09-21 11:19:31 -07:00
|
|
|
|
2020-12-07 15:13:14 -08:00
|
|
|
return groupPromise.then((groups) => {
|
|
|
|
|
let groupNames = {};
|
|
|
|
|
groups.forEach((g) => {
|
|
|
|
|
groupNames[g.id] = g.name;
|
2018-10-10 17:26:23 +05:30
|
|
|
});
|
2025-02-10 14:54:01 +11:00
|
|
|
return queryPromise.then((model) => {
|
|
|
|
|
model.forEach((query) => {
|
|
|
|
|
query.set(
|
|
|
|
|
"group_names",
|
|
|
|
|
(query.group_ids || []).map((id) => groupNames[id])
|
|
|
|
|
);
|
2020-12-07 15:13:14 -08:00
|
|
|
});
|
2025-02-10 14:54:01 +11:00
|
|
|
return { model, groups };
|
2020-12-07 15:13:14 -08:00
|
|
|
});
|
|
|
|
|
});
|
2023-02-06 10:21:58 -06:00
|
|
|
}
|
2015-07-08 13:45:13 -07:00
|
|
|
|
2019-07-16 12:46:32 +02:00
|
|
|
setupController(controller, model) {
|
2015-09-21 11:19:31 -07:00
|
|
|
controller.setProperties(model);
|
2023-02-06 10:21:58 -06:00
|
|
|
}
|
|
|
|
|
}
|