FEATURE: Add category to knowledge explorer topic list
This commit is contained in:
parent
1c845cd517
commit
42ac7bb984
|
@ -1,8 +1,18 @@
|
||||||
import {
|
import { default as computed } from "ember-addons/ember-computed-decorators";
|
||||||
default as computed
|
|
||||||
} from "ember-addons/ember-computed-decorators";
|
|
||||||
import KnowledgeExplorer from "discourse/plugins/discourse-knowledge-explorer/discourse/models/knowledge-explorer";
|
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({
|
export default Ember.Controller.extend({
|
||||||
application: Ember.inject.controller(),
|
application: Ember.inject.controller(),
|
||||||
queryParams: {
|
queryParams: {
|
||||||
|
@ -108,6 +118,7 @@ export default Ember.Controller.extend({
|
||||||
this.set("isLoadingMore", true);
|
this.set("isLoadingMore", true);
|
||||||
|
|
||||||
KnowledgeExplorer.loadMore(this.loadMoreUrl).then(result => {
|
KnowledgeExplorer.loadMore(this.loadMoreUrl).then(result => {
|
||||||
|
result = mergeCategories(result);
|
||||||
const topics = this.topics.concat(result.topics.topic_list.topics);
|
const topics = this.topics.concat(result.topics.topic_list.topics);
|
||||||
|
|
||||||
this.setProperties({
|
this.setProperties({
|
||||||
|
@ -129,6 +140,7 @@ export default Ember.Controller.extend({
|
||||||
);
|
);
|
||||||
|
|
||||||
KnowledgeExplorer.list(params).then(result => {
|
KnowledgeExplorer.list(params).then(result => {
|
||||||
|
result = mergeCategories(result);
|
||||||
this.setProperties({
|
this.setProperties({
|
||||||
model: result,
|
model: result,
|
||||||
isLoading: false
|
isLoading: false
|
||||||
|
|
|
@ -9,5 +9,20 @@ export default Ember.Route.extend({
|
||||||
|
|
||||||
model(params) {
|
model(params) {
|
||||||
return KnowledgeExplorer.list(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);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
}}
|
}}
|
||||||
</span>
|
</span>
|
||||||
<span class="link-bottom-line">
|
<span class="link-bottom-line">
|
||||||
|
{{category-link topic.category}}
|
||||||
{{#each topic.tags as |tag|}}
|
{{#each topic.tags as |tag|}}
|
||||||
<span class="discourse-tag">{{tag}}</span>
|
<span class="discourse-tag">{{tag}}</span>
|
||||||
{{/each}}
|
{{/each}}
|
||||||
|
|
Loading…
Reference in New Issue