diff --git a/app/assets/javascripts/discourse/controllers/topic.js.es6 b/app/assets/javascripts/discourse/controllers/topic.js.es6 index 8c54c841a54..018a8defb23 100644 --- a/app/assets/javascripts/discourse/controllers/topic.js.es6 +++ b/app/assets/javascripts/discourse/controllers/topic.js.es6 @@ -23,7 +23,7 @@ export default ObjectController.extend(Discourse.SelectedPostsCount, { // and are sometimes lazily loaded. this.send('refreshTitle'); } - }.observes('title'), + }.observes('title', 'category'), termChanged: function() { var dropdown = this.get('controllers.header.visibleDropdown'); diff --git a/app/assets/javascripts/discourse/routes/discourse_route.js b/app/assets/javascripts/discourse/routes/discourse_route.js index b9be766326c..96d0e302eac 100644 --- a/app/assets/javascripts/discourse/routes/discourse_route.js +++ b/app/assets/javascripts/discourse/routes/discourse_route.js @@ -21,6 +21,10 @@ Discourse.Route = Ember.Route.extend({ Em.run.scheduleOnce('afterRender', Discourse.Route, 'cleanDOM'); }, + _refreshTitleOnce: function() { + this.send('_collectTitleTokens', []); + }, + actions: { _collectTitleTokens: function(tokens) { // If there's a title token method, call it and get the token @@ -40,7 +44,7 @@ Discourse.Route = Ember.Route.extend({ }, refreshTitle: function() { - this.send('_collectTitleTokens', []); + Ember.run.once(this, this._refreshTitleOnce); } }, diff --git a/app/assets/javascripts/discourse/routes/topic_route.js b/app/assets/javascripts/discourse/routes/topic_route.js index 6ba0068ade4..2d0618327d0 100644 --- a/app/assets/javascripts/discourse/routes/topic_route.js +++ b/app/assets/javascripts/discourse/routes/topic_route.js @@ -15,7 +15,20 @@ Discourse.TopicRoute = Discourse.Route.extend({ titleToken: function() { var model = this.modelFor('topic'); if (model) { - return model.get('title'); + var result = model.get('title'), + cat = model.get('category'); + + if (cat && !cat.get('isUncategorized')) { + var catName = cat.get('name'), + parentCategory = cat.get('parentCategory'); + + if (parentCategory) { + catName = parentCategory.get('name') + " / " + catName; + } + + return [result, catName]; + } + return result; } },