mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Add report items and some work around sub-pages
This commit is contained in:
@@ -20,6 +20,7 @@ export default class AdminPaletteSearch extends Component {
|
||||
@tracked showSettingType = true;
|
||||
@tracked showThemeType = true;
|
||||
@tracked showComponentType = true;
|
||||
@tracked showReportType = true;
|
||||
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
@@ -40,6 +41,9 @@ export default class AdminPaletteSearch extends Component {
|
||||
if (this.showComponentType) {
|
||||
types.push("component");
|
||||
}
|
||||
if (this.showReportType) {
|
||||
types.push("report");
|
||||
}
|
||||
return types;
|
||||
}
|
||||
|
||||
@@ -107,6 +111,13 @@ export default class AdminPaletteSearch extends Component {
|
||||
{{on "click" (fn this.toggleTypeFilter "showComponentType")}}
|
||||
/>
|
||||
</span>
|
||||
<span class="admin-palette-type-filter__report">
|
||||
Reports
|
||||
<DToggleSwitch
|
||||
@state={{this.showReportType}}
|
||||
{{on "click" (fn this.toggleTypeFilter "showReportType")}}
|
||||
/>
|
||||
</span>
|
||||
</div>
|
||||
{{/if}}
|
||||
|
||||
@@ -115,7 +126,9 @@ export default class AdminPaletteSearch extends Component {
|
||||
<div class="admin-palette__search-result">
|
||||
<a href={{result.url}}>
|
||||
<div class="admin-palette__name">
|
||||
{{icon result.icon}}
|
||||
{{#if result.icon}}
|
||||
{{icon result.icon}}
|
||||
{{/if}}
|
||||
<span class="admin-palette__name-label">{{result.label}}</span>
|
||||
<span class="admin-palette__type-pill">{{result.type}}</span>
|
||||
</div>
|
||||
|
@@ -17,6 +17,7 @@ export default class AdminPaletteDataSource extends Service {
|
||||
settingMapItems = [];
|
||||
themeMapItems = [];
|
||||
componentMapItems = [];
|
||||
reportMapItems = [];
|
||||
settingPageMap = {
|
||||
categories: {},
|
||||
areas: {},
|
||||
@@ -29,47 +30,10 @@ export default class AdminPaletteDataSource extends Service {
|
||||
}
|
||||
ADMIN_NAV_MAP.forEach((mapItem) => {
|
||||
mapItem.links.forEach((link) => {
|
||||
let url;
|
||||
if (link.routeModels) {
|
||||
url = this.router.urlFor(link.route, ...link.routeModels);
|
||||
} else {
|
||||
url = this.router.urlFor(link.route);
|
||||
}
|
||||
let parentLabel = this.addPageLink(mapItem, link);
|
||||
|
||||
const mapItemLabel =
|
||||
mapItem.text || (mapItem.label ? i18n(mapItem.label) : "");
|
||||
const label =
|
||||
mapItemLabel +
|
||||
(mapItemLabel ? " > " : "") +
|
||||
(link.text || (link.label ? i18n(link.label) : ""));
|
||||
|
||||
if (link.settings_area) {
|
||||
this.settingPageMap.areas[link.settings_area] = link.multi_tabbed
|
||||
? `${url}/settings`
|
||||
: url;
|
||||
}
|
||||
|
||||
if (link.settings_category) {
|
||||
this.settingPageMap.categories[link.settings_category] =
|
||||
link.multi_tabbed ? `${url}/settings` : url;
|
||||
}
|
||||
|
||||
this.pageMapItems.push({
|
||||
label,
|
||||
url,
|
||||
keywords:
|
||||
(link.keywords ? i18n(link.keywords).toLowerCase() : "") +
|
||||
" " +
|
||||
url +
|
||||
" " +
|
||||
label.toLowerCase(),
|
||||
type: "page",
|
||||
icon: link.icon,
|
||||
description: link.description
|
||||
? link.description.includes(" ")
|
||||
? link.description
|
||||
: i18n(link.description)
|
||||
: "",
|
||||
link.links?.forEach((subLink) => {
|
||||
this.addPageLink(mapItem, subLink, parentLabel);
|
||||
});
|
||||
});
|
||||
});
|
||||
@@ -196,6 +160,24 @@ export default class AdminPaletteDataSource extends Service {
|
||||
}
|
||||
});
|
||||
});
|
||||
ajax("/admin/reports.json").then((result) => {
|
||||
result.reports.forEach((report) => {
|
||||
this.reportMapItems.push({
|
||||
label: report.title,
|
||||
description: report.description,
|
||||
url: getURL(`/admin/reports/${report.type}`),
|
||||
icon: "chart-bar",
|
||||
keywords: (
|
||||
report.title +
|
||||
" " +
|
||||
report.description +
|
||||
" " +
|
||||
report.type
|
||||
).toLowerCase(),
|
||||
type: "report",
|
||||
});
|
||||
});
|
||||
});
|
||||
this._mapCached = true;
|
||||
}
|
||||
|
||||
@@ -217,4 +199,61 @@ export default class AdminPaletteDataSource extends Service {
|
||||
|
||||
return filteredResults;
|
||||
}
|
||||
|
||||
addPageLink(mapItem, link, parentLabel = "") {
|
||||
let url;
|
||||
if (link.routeModels) {
|
||||
url = this.router.urlFor(link.route, ...link.routeModels);
|
||||
} else {
|
||||
url = this.router.urlFor(link.route);
|
||||
}
|
||||
|
||||
const mapItemLabel =
|
||||
mapItem.text || (mapItem.label ? i18n(mapItem.label) : "");
|
||||
const linkLabel = link.text || (link.label ? i18n(link.label) : "");
|
||||
|
||||
let label;
|
||||
if (parentLabel) {
|
||||
label =
|
||||
mapItemLabel +
|
||||
(mapItemLabel ? " > " : "") +
|
||||
parentLabel +
|
||||
" > " +
|
||||
linkLabel;
|
||||
} else {
|
||||
label = mapItemLabel + (mapItemLabel ? " > " : "") + linkLabel;
|
||||
}
|
||||
|
||||
if (link.settings_area) {
|
||||
this.settingPageMap.areas[link.settings_area] = link.multi_tabbed
|
||||
? `${url}/settings`
|
||||
: url;
|
||||
}
|
||||
|
||||
if (link.settings_category) {
|
||||
this.settingPageMap.categories[link.settings_category] = link.multi_tabbed
|
||||
? `${url}/settings`
|
||||
: url;
|
||||
}
|
||||
|
||||
this.pageMapItems.push({
|
||||
label,
|
||||
url,
|
||||
keywords:
|
||||
(link.keywords ? i18n(link.keywords).toLowerCase() : "") +
|
||||
" " +
|
||||
url +
|
||||
" " +
|
||||
label.toLowerCase(),
|
||||
type: "page",
|
||||
icon: link.icon,
|
||||
description: link.description
|
||||
? link.description.includes(" ")
|
||||
? link.description
|
||||
: i18n(link.description)
|
||||
: "",
|
||||
});
|
||||
|
||||
return linkLabel;
|
||||
}
|
||||
}
|
||||
|
@@ -52,6 +52,13 @@ export const ADMIN_NAV_MAP = [
|
||||
icon: "box-archive",
|
||||
settings_category: "backups",
|
||||
multi_tabbed: true,
|
||||
links: [
|
||||
{
|
||||
name: "admin_backups_logs",
|
||||
route: "admin.backups.logs",
|
||||
label: "admin.backups.menu.logs",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
@@ -240,6 +247,48 @@ export const ADMIN_NAV_MAP = [
|
||||
label: "admin.email_settings.sidebar_link.server_setup.title",
|
||||
icon: "gear",
|
||||
keywords: "admin.email_settings.sidebar_link.server_setup.keywords",
|
||||
links: [
|
||||
{
|
||||
name: "admin_email_preview_summary",
|
||||
route: "adminEmail.previewDigest",
|
||||
label: "admin.email.preview_digest",
|
||||
},
|
||||
{
|
||||
name: "admin_email_advanced_test",
|
||||
route: "adminEmail.advancedTest",
|
||||
label: "admin.email.advanced_test.title",
|
||||
},
|
||||
{
|
||||
name: "admin_email_templates",
|
||||
route: "adminEmailTemplates",
|
||||
label: "admin.email.templates",
|
||||
},
|
||||
{
|
||||
name: "admin_email_sent",
|
||||
route: "adminEmail.sent",
|
||||
label: "admin.email.sent",
|
||||
},
|
||||
{
|
||||
name: "admin_email_skipped",
|
||||
route: "adminEmail.advancedTest",
|
||||
label: "admin.email.advanced_test",
|
||||
},
|
||||
{
|
||||
name: "admin_email_bounced",
|
||||
route: "adminEmail.bounced",
|
||||
label: "admin.email.bounced",
|
||||
},
|
||||
{
|
||||
name: "admin_email_received",
|
||||
route: "adminEmail.received",
|
||||
label: "admin.email.received",
|
||||
},
|
||||
{
|
||||
name: "admin_email_rejected",
|
||||
route: "adminEmail.rejected",
|
||||
label: "admin.email.rejected",
|
||||
},
|
||||
],
|
||||
},
|
||||
{
|
||||
name: "admin_appearance",
|
||||
@@ -276,6 +325,28 @@ export const ADMIN_NAV_MAP = [
|
||||
keywords: "admin.security.sidebar_link.staff_action_logs.keywords",
|
||||
icon: "user-shield",
|
||||
moderator: true,
|
||||
links: [
|
||||
{
|
||||
name: "admin_logs_screened_emails",
|
||||
route: "adminLogs.screenedEmails",
|
||||
label: "admin.logs.screened_emails.title",
|
||||
},
|
||||
{
|
||||
name: "admin_logs_screened_ip_addresses",
|
||||
route: "adminLogs.screenedIpAddresses",
|
||||
label: "admin.logs.screened_ips.title",
|
||||
},
|
||||
{
|
||||
name: "admin_logs_screened_urls",
|
||||
route: "adminLogs.screenedUrls",
|
||||
label: "admin.logs.screened_urls.title",
|
||||
},
|
||||
{
|
||||
name: "admin_logs_search_logs",
|
||||
route: "adminSearchLogs",
|
||||
label: "admin.logs.search_logs.title",
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
},
|
||||
|
Reference in New Issue
Block a user