diff --git a/app/assets/javascripts/discourse/controllers/header.js.es6 b/app/assets/javascripts/discourse/controllers/header.js.es6 index c772114448a..c414227b6bf 100644 --- a/app/assets/javascripts/discourse/controllers/header.js.es6 +++ b/app/assets/javascripts/discourse/controllers/header.js.es6 @@ -80,27 +80,18 @@ function addFlagProperty(prop) { _flagProperties.pushObject(prop); } -let _appliedFlagProps = false; -HeaderController.reopenClass({ - create() { - // We only want to change the class the first time it's created - if (!_appliedFlagProps && _flagProperties.length) { - _appliedFlagProps = true; - - const args = _flagProperties.slice(); - args.push(function() { - let sum = 0; - _flagProperties.forEach((fp) => sum += (this.get(fp) || 0)); - return sum; - }); - HeaderController.reopen({ flaggedPostsCount: Ember.computed.apply(this, args) }); - } - return this._super.apply(this, Array.prototype.slice.call(arguments)); - } -}); +function applyFlaggedProperties() { + const args = _flagProperties.slice(); + args.push(function() { + let sum = 0; + _flagProperties.forEach((fp) => sum += (this.get(fp) || 0)); + return sum; + }); + HeaderController.reopen({ flaggedPostsCount: Ember.computed.apply(this, args) }); +} addFlagProperty('currentUser.site_flagged_posts_count'); addFlagProperty('currentUser.post_queue_new_count'); -export { addFlagProperty }; +export { addFlagProperty, applyFlaggedProperties }; export default HeaderController; diff --git a/app/assets/javascripts/discourse/initializers/apply-flagged-properties.js.es6 b/app/assets/javascripts/discourse/initializers/apply-flagged-properties.js.es6 new file mode 100644 index 00000000000..577768dc3b4 --- /dev/null +++ b/app/assets/javascripts/discourse/initializers/apply-flagged-properties.js.es6 @@ -0,0 +1,7 @@ +import { applyFlaggedProperties } from 'discourse/controllers/header'; + +export default { + name: 'apply-flagged-properties', + after: 'map-routes', + initialize: applyFlaggedProperties +}; diff --git a/app/assets/javascripts/discourse/initializers/map-routes.js.es6 b/app/assets/javascripts/discourse/initializers/map-routes.js.es6 index 3f08fa2a958..e83537569eb 100644 --- a/app/assets/javascripts/discourse/initializers/map-routes.js.es6 +++ b/app/assets/javascripts/discourse/initializers/map-routes.js.es6 @@ -2,6 +2,8 @@ import { mapRoutes } from 'discourse/router'; export default { name: "map-routes", + after: 'inject-objects', + initialize(container, app) { app.register('router:main', mapRoutes());