diff --git a/assets/javascripts/discourse/controllers/knowledge-explorer.js.es6 b/assets/javascripts/discourse/controllers/knowledge-explorer.js.es6 index 9457cb0..df20433 100644 --- a/assets/javascripts/discourse/controllers/knowledge-explorer.js.es6 +++ b/assets/javascripts/discourse/controllers/knowledge-explorer.js.es6 @@ -1,8 +1,18 @@ -import { - default as computed -} from "ember-addons/ember-computed-decorators"; +import { default as computed } from "ember-addons/ember-computed-decorators"; import KnowledgeExplorer from "discourse/plugins/discourse-knowledge-explorer/discourse/models/knowledge-explorer"; +function mergeCategories(results) { + const categories = Discourse.Category.list(); + const topics = results.topics.topic_list.topics.map(t => { + t.category = categories.findBy("id", t.category_id); + return t; + }); + + results.topics.topic_list.topics = topics; + + return results; +} + export default Ember.Controller.extend({ application: Ember.inject.controller(), queryParams: { @@ -108,6 +118,7 @@ export default Ember.Controller.extend({ this.set("isLoadingMore", true); KnowledgeExplorer.loadMore(this.loadMoreUrl).then(result => { + result = mergeCategories(result); const topics = this.topics.concat(result.topics.topic_list.topics); this.setProperties({ @@ -129,6 +140,7 @@ export default Ember.Controller.extend({ ); KnowledgeExplorer.list(params).then(result => { + result = mergeCategories(result); this.setProperties({ model: result, isLoading: false diff --git a/assets/javascripts/discourse/routes/knowledge-explorer.js.es6 b/assets/javascripts/discourse/routes/knowledge-explorer.js.es6 index 00cd6ad..7c6299a 100644 --- a/assets/javascripts/discourse/routes/knowledge-explorer.js.es6 +++ b/assets/javascripts/discourse/routes/knowledge-explorer.js.es6 @@ -9,5 +9,20 @@ export default Ember.Route.extend({ model(params) { return KnowledgeExplorer.list(params); + }, + + setupController(controller, model) { + const categories = Discourse.Category.list(); + + let topics = model.topics.topic_list.topics; + + topics = topics.map(t => { + t.category = categories.findBy("id", t.category_id); + return t; + }); + + model.topics.topic_list.topics = topics; + + controller.set("model", model); } }); diff --git a/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-list.hbs b/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-list.hbs index 467eb1d..168bf7d 100644 --- a/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-list.hbs +++ b/assets/javascripts/discourse/templates/components/knowledge-explorer-topic-list.hbs @@ -15,6 +15,7 @@ }} + {{category-link topic.category}} {{#each topic.tags as |tag|}} {{tag}} {{/each}}