discourse/app/assets/javascripts/admin/addon/routes/admin-logs-staff-action-logs.js
David Taylor 125903f682
FIX: Staff action log could not be accessed via link (#22688)
011ba5b9 slightly changed the way the staff-action-log route is activated. It's now possible for `deserializeQueryParam` to be called with a null value, so we need to deal with that case.

This route is currently untested - we'll follow-up with another commit to add some.
2023-07-19 11:40:48 +01:00

47 lines
1.3 KiB
JavaScript

import DiscourseRoute from "discourse/routes/discourse";
import EmberObject, { action } from "@ember/object";
import { inject as service } from "@ember/service";
export default class AdminLogsStaffActionLogsRoute extends DiscourseRoute {
@service router;
queryParams = {
filters: { refreshModel: true },
};
beforeModel(transition) {
const params = transition.to.queryParams;
const controller = this.controllerFor("admin-logs-staff-action-logs");
if (controller.filters === null || params.force_refresh) {
controller.resetFilters();
}
}
deserializeQueryParam(value, urlKey, defaultValueType) {
if (urlKey === "filters" && value) {
return EmberObject.create(JSON.parse(decodeURIComponent(value)));
}
return super.deserializeQueryParam(value, urlKey, defaultValueType);
}
serializeQueryParam(value, urlKey, defaultValueType) {
if (urlKey === "filters") {
if (value && Object.keys(value).length > 0) {
return JSON.stringify(value);
} else {
return null;
}
}
return super.serializeQueryParam(value, urlKey, defaultValueType);
}
@action
onFiltersChange(filters) {
this.router.transitionTo("adminLogs.staffActionLogs", {
queryParams: { filters },
});
}
}