discourse/app/assets/javascripts/admin/addon/routes/admin-route-map.js
Krzysztof Kotlarek 043117ca13
FEATURE: separate admin page for whats new and reports (#26216)
Currently, a new sidebar link for what's new and reports is going to the main dashboard page and activates the proper tab.

It might be problematic, especially, when the instance has a lot of problems. In that case, it would be difficult for admin to find reports or what’s new which is rendered at the bottom of the page.

Therefore separate pages for reports and what's new were created.

Reports were moved to a component that is shared between a separate page and the dashboard.
2024-03-20 14:23:18 +11:00

244 lines
6.8 KiB
JavaScript

export default function () {
this.route("admin", { resetNamespace: true }, function () {
this.route("dashboard", { path: "/" }, function () {
this.route("general", { path: "/" });
this.route("admin.dashboardModeration", {
path: "/dashboard/moderation",
resetNamespace: true,
});
this.route("admin.dashboardSecurity", {
path: "/dashboard/security",
resetNamespace: true,
});
this.route("admin.dashboardReports", {
path: "/dashboard/reports",
resetNamespace: true,
});
this.route("admin.dashboardNewFeatures", {
path: "/dashboard/whats-new",
resetNamespace: true,
});
});
this.route(
"adminSiteSettings",
{ path: "/site_settings", resetNamespace: true },
function () {
this.route("adminSiteSettingsCategory", {
path: "category/:category_id",
resetNamespace: true,
});
}
);
this.route(
"adminEmail",
{ path: "/email", resetNamespace: true },
function () {
this.route("sent");
this.route("skipped");
this.route("bounced");
this.route("received");
this.route("rejected");
this.route("previewDigest", { path: "/preview-digest" });
this.route("advancedTest", { path: "/advanced-test" });
}
);
this.route(
"adminCustomize",
{ path: "/customize", resetNamespace: true },
function () {
this.route("colors", function () {
this.route("show", { path: "/:scheme_id" });
});
this.route(
"adminCustomizeThemes",
{ path: "themes", resetNamespace: true },
function () {
this.route("show", { path: "/:theme_id" }, function () {
this.route("schema", { path: "schema/:setting_name" });
});
this.route("edit", { path: "/:theme_id/:target/:field_name/edit" });
}
);
this.route("adminCustomizeThemeComponents", {
path: "theme-components",
resetNamespace: true,
});
this.route(
"adminSiteText",
{ path: "/site_texts", resetNamespace: true },
function () {
this.route("edit", { path: "/:id" });
}
);
this.route("adminUserFields", {
path: "/user_fields",
resetNamespace: true,
});
this.route("adminEmojis", { path: "/emojis", resetNamespace: true });
this.route("adminPermalinks", {
path: "/permalinks",
resetNamespace: true,
});
this.route("adminEmbedding", {
path: "/embedding",
resetNamespace: true,
});
this.route(
"adminCustomizeEmailTemplates",
{ path: "/email_templates", resetNamespace: true },
function () {
this.route("edit", { path: "/:id" });
}
);
this.route("adminCustomizeRobotsTxt", {
path: "/robots",
resetNamespace: true,
});
this.route(
"adminCustomizeEmailStyle",
{ path: "/email_style", resetNamespace: true },
function () {
this.route("edit", { path: "/:field_name" });
}
);
this.route(
"adminCustomizeFormTemplates",
{ path: "/form-templates", resetNamespace: true },
function () {
this.route("new");
this.route("edit", { path: "/:id" });
}
);
this.route(
"adminWatchedWords",
{ path: "/watched_words", resetNamespace: true },
function () {
this.route("action", { path: "/action/:action_id" });
}
);
}
);
this.route("adminApi", { path: "/api", resetNamespace: true }, function () {
this.route(
"adminApiKeys",
{ path: "/keys", resetNamespace: true },
function () {
this.route("show", { path: "/:api_key_id" });
this.route("new");
}
);
this.route(
"adminWebHooks",
{ path: "/web_hooks", resetNamespace: true },
function () {
this.route("show", { path: "/:web_hook_id" });
this.route("edit", { path: "/:web_hook_id/edit" });
}
);
});
this.route(
"admin.backups",
{ path: "/backups", resetNamespace: true },
function () {
this.route("logs");
}
);
this.route(
"adminReports",
{ path: "/reports", resetNamespace: true },
function () {
this.route("index", { path: "/" });
this.route("show", { path: ":type" });
}
);
this.route(
"adminLogs",
{ path: "/logs", resetNamespace: true },
function () {
this.route("staffActionLogs", { path: "/staff_action_logs" });
this.route("screenedEmails", { path: "/screened_emails" });
this.route("screenedIpAddresses", { path: "/screened_ip_addresses" });
this.route("screenedUrls", { path: "/screened_urls" });
this.route(
"adminSearchLogs",
{ path: "/search_logs", resetNamespace: true },
function () {
this.route("index", { path: "/" });
this.route("term");
}
);
}
);
this.route(
"adminUsers",
{ path: "/users", resetNamespace: true },
function () {
this.route(
"adminUser",
{ path: "/:user_id/:username", resetNamespace: true },
function () {
this.route("badges");
this.route("tl3Requirements", { path: "/tl3_requirements" });
}
);
this.route(
"adminUsersList",
{ path: "/list", resetNamespace: true },
function () {
this.route("show", { path: "/:filter" });
}
);
}
);
this.route(
"adminBadges",
{ path: "/badges", resetNamespace: true },
function () {
this.route("award", { path: "/award/:badge_id" });
this.route("show", { path: "/:badge_id" });
}
);
this.route(
"adminPlugins",
{ path: "/plugins", resetNamespace: true },
function () {
this.route("index", { path: "/" });
this.route("show", { path: "/:plugin_id" }, function () {
this.route("settings");
});
}
);
this.route("admin.whatsNew", {
path: "/whats-new",
resetNamespace: true,
});
});
// EXPERIMENTAL: These admin routes are hidden behind an `admin_sidebar_enabled_groups`
// site setting and are subject to constant change.
this.route("admin-revamp", { resetNamespace: true }, function () {
this.route("lobby", { path: "/" }, function () {});
this.route("config", function () {
this.route("area", { path: "/:area" });
});
});
}