mirror of
https://github.com/discourse/discourse.git
synced 2024-12-12 04:13:41 +08:00
70f7c0ee6f
This commit changes the API for registering the plugin config page nav configuration from a server-side to a JS one; there is no need for it to be server-side. It also makes some changes to allow for 2 different ways of displaying navigation for plugin pages, depending on complexity: * TOP - This is the best mode for simple plugins without a lot of different custom configuration pages, and it reuses the grey horizontal nav bar already used for admins. * SIDEBAR - This is better for more complex plugins; likely this won't be used in the near future, but it's readily available if needed There is a new AdminPluginConfigNavManager service too to manage which plugin the admin is actively viewing, otherwise we would have trouble hiding the main plugin nav for admins when viewing a single plugin.
28 lines
823 B
Handlebars
28 lines
823 B
Handlebars
{{#if this.showTopNav}}
|
|
<div class="admin-controls">
|
|
<HorizontalOverflowNav class="main-nav nav plugin-nav">
|
|
<NavItem @route="adminPlugins.index" @label="admin.plugins.title" />
|
|
{{#each this.adminRoutes as |route|}}
|
|
{{#if route.use_new_show_route}}
|
|
<NavItem
|
|
@route={{route.full_location}}
|
|
@label={{route.label}}
|
|
@routeParam={{route.location}}
|
|
/>
|
|
{{else}}
|
|
<NavItem @route={{route.full_location}} @label={{route.label}} />
|
|
{{/if}}
|
|
{{/each}}
|
|
</HorizontalOverflowNav>
|
|
</div>
|
|
{{/if}}
|
|
|
|
<div class="admin-container">
|
|
{{#each this.brokenAdminRoutes as |route|}}
|
|
<div class="alert alert-error">
|
|
{{i18n "admin.plugins.broken_route" name=(i18n route.label)}}
|
|
</div>
|
|
{{/each}}
|
|
|
|
{{outlet}}
|
|
</div> |