mirror of
https://gh.wpcy.net/https://github.com/discourse/discourse.git
synced 2026-05-23 09:54:56 +08:00
The filtering is currently being done in the controller. This leads to weird things where the filter loop might already be initiated and we get double filtering, as well as the issue that we can't abort like we could with a route transition. After this change we: - Cache the site settings fetched from the server in the route instance. - Hook up the controller to the query params. - Use the query params to filter the model in the route.
66 lines
2.1 KiB
Text
Vendored
66 lines
2.1 KiB
Text
Vendored
import { LinkTo } from "@ember/routing";
|
|
import RouteTemplate from "ember-route-template";
|
|
import DBreadcrumbsItem from "discourse/components/d-breadcrumbs-item";
|
|
import DPageHeader from "discourse/components/d-page-header";
|
|
import concatClass from "discourse/helpers/concat-class";
|
|
import { i18n } from "discourse-i18n";
|
|
import AdminSiteSettingsChangesBanner from "admin/components/admin-site-settings-changes-banner";
|
|
import AdminSiteSettingsFilterControls from "admin/components/admin-site-settings-filter-controls";
|
|
|
|
export default RouteTemplate(
|
|
<template>
|
|
<DPageHeader
|
|
@titleLabel={{i18n "admin.config.site_settings.title"}}
|
|
@descriptionLabel={{i18n "admin.config.site_settings.header_description"}}
|
|
@hideTabs={{true}}
|
|
>
|
|
<:breadcrumbs>
|
|
<DBreadcrumbsItem @path="/admin" @label={{i18n "admin_title"}} />
|
|
<DBreadcrumbsItem
|
|
@path="/admin/site_settings"
|
|
@label={{i18n "admin.config.site_settings.title"}}
|
|
/>
|
|
</:breadcrumbs>
|
|
</DPageHeader>
|
|
|
|
<AdminSiteSettingsFilterControls
|
|
@initialFilter={{@controller.filter}}
|
|
@onChangeFilter={{@controller.filterChanged}}
|
|
@showMenu={{true}}
|
|
@onToggleMenu={{@controller.toggleMenu}}
|
|
/>
|
|
|
|
<div class="admin-nav admin-site-settings-category-nav pull-left">
|
|
<ul class="nav nav-stacked">
|
|
{{#each @controller.visibleSiteSettings as |category|}}
|
|
<li
|
|
class={{concatClass
|
|
"admin-site-settings-category-nav__item"
|
|
category.nameKey
|
|
}}
|
|
>
|
|
<LinkTo
|
|
@route="adminSiteSettingsCategory"
|
|
@model={{category.nameKey}}
|
|
class={{category.nameKey}}
|
|
title={{category.name}}
|
|
>
|
|
{{category.name}}
|
|
{{#if @controller.filtersApplied}}
|
|
<span class="count">({{category.count}})</span>
|
|
{{/if}}
|
|
</LinkTo>
|
|
</li>
|
|
{{/each}}
|
|
</ul>
|
|
</div>
|
|
|
|
<div class="admin-detail pull-left mobile-closed">
|
|
{{outlet}}
|
|
</div>
|
|
|
|
<div class="clearfix"></div>
|
|
|
|
<AdminSiteSettingsChangesBanner />
|
|
</template>
|
|
);
|