diff --git a/app/assets/javascripts/discourse/components/navigation-bar.js.es6 b/app/assets/javascripts/discourse/components/navigation-bar.js.es6 index 7bc237c9005..7a61c50cbca 100644 --- a/app/assets/javascripts/discourse/components/navigation-bar.js.es6 +++ b/app/assets/javascripts/discourse/components/navigation-bar.js.es6 @@ -1,11 +1,17 @@ import { default as computed, observes } from "ember-addons/ember-computed-decorators"; import DiscourseURL from 'discourse/lib/url'; +import { renderedConnectorsFor } from 'discourse/lib/plugin-connectors'; export default Ember.Component.extend({ tagName: 'ul', classNameBindings: [':nav', ':nav-pills'], id: 'navigation-bar', + init() { + this._super(); + this.set('connectors', renderedConnectorsFor("extra-nav-item", null, this)); + }, + @computed("filterMode", "navItems") selectedNavItem(filterMode, navItems){ var item = navItems.find(i => i.get('filterMode').indexOf(filterMode) === 0); diff --git a/app/assets/javascripts/discourse/components/plugin-outlet.js.es6 b/app/assets/javascripts/discourse/components/plugin-outlet.js.es6 index 91bf45560e9..268e964edab 100644 --- a/app/assets/javascripts/discourse/components/plugin-outlet.js.es6 +++ b/app/assets/javascripts/discourse/components/plugin-outlet.js.es6 @@ -29,7 +29,7 @@ The list of disabled plugins is returned via the `Site` singleton. **/ -import { connectorsFor } from 'discourse/lib/plugin-connectors'; +import { renderedConnectorsFor } from 'discourse/lib/plugin-connectors'; export default Ember.Component.extend({ tagName: 'span', @@ -38,14 +38,9 @@ export default Ember.Component.extend({ init() { this._super(); const name = this.get('name'); - if (name) { const args = this.get('args'); - const connectors = connectorsFor(name).filter(con => { - return con.connectorClass.shouldRender(args, this); - }); - - this.set('connectors', connectors); + this.set('connectors', renderedConnectorsFor(name, args, this)); } } }); diff --git a/app/assets/javascripts/discourse/lib/plugin-connectors.js.es6 b/app/assets/javascripts/discourse/lib/plugin-connectors.js.es6 index 61cdbab2554..d398031d81e 100644 --- a/app/assets/javascripts/discourse/lib/plugin-connectors.js.es6 +++ b/app/assets/javascripts/discourse/lib/plugin-connectors.js.es6 @@ -92,6 +92,13 @@ export function connectorsFor(outletName) { return _connectorCache[outletName] || []; } +export function renderedConnectorsFor(outletName, args, context) { + return connectorsFor(outletName).filter(con => { + return con.connectorClass.shouldRender(args, context); + }); +} + + export function rawConnectorsFor(outletName) { if (!_rawConnectorCache) { buildRawConnectorCache(); } return _rawConnectorCache[outletName] || []; diff --git a/app/assets/javascripts/discourse/templates/components/navigation-bar.hbs b/app/assets/javascripts/discourse/templates/components/navigation-bar.hbs index dec0e5add83..a4ff8080a4c 100644 --- a/app/assets/javascripts/discourse/templates/components/navigation-bar.hbs +++ b/app/assets/javascripts/discourse/templates/components/navigation-bar.hbs @@ -2,4 +2,6 @@ {{navigation-item content=navItem filterMode=filterMode}} {{/each}} {{custom-html name="extraNavItem" tagName="li"}} -{{plugin-outlet name="extra-nav-item" tagName="li"}} +{{#each connectors as |c|}} +{{plugin-connector connector=c class=c.classNames tagName="li" args=(hash category=category filterMode=filterMode)}} +{{/each}} diff --git a/app/assets/javascripts/discourse/templates/navigation/category.hbs b/app/assets/javascripts/discourse/templates/navigation/category.hbs index 2e9579cbf28..a4e9aebda1a 100644 --- a/app/assets/javascripts/discourse/templates/navigation/category.hbs +++ b/app/assets/javascripts/discourse/templates/navigation/category.hbs @@ -15,7 +15,7 @@ noSubcategories=noSubcategories hideSubcategories=showingSubcategoryList}} - {{navigation-bar navItems=navItems filterMode=filterMode}} + {{navigation-bar navItems=navItems filterMode=filterMode category=category}} {{#if currentUser}} {{category-notifications-button category=category}}