diff --git a/assets/javascripts/discourse/controllers/knowledge-explorer-index.js.es6 b/assets/javascripts/discourse/controllers/knowledge-explorer-index.js.es6 index 64e2f7e..36dc4d1 100644 --- a/assets/javascripts/discourse/controllers/knowledge-explorer-index.js.es6 +++ b/assets/javascripts/discourse/controllers/knowledge-explorer-index.js.es6 @@ -1,5 +1,7 @@ import Controller from "@ember/controller"; +import { inject } from "@ember/controller"; import discourseComputed from "discourse-common/utils/decorators"; +import { alias, readOnly, equal } from "@ember/object/computed"; import { on } from "discourse-common/utils/decorators"; import KnowledgeExplorer from "discourse/plugins/discourse-knowledge-explorer/discourse/models/knowledge-explorer"; import { getOwner } from "@ember/application"; @@ -14,14 +16,14 @@ export default Controller.extend({ searchTerm: "search", selectedTopic: "topic", }, - application: Ember.inject.controller(), + application: inject(), isLoading: false, isLoadingMore: false, - loadMoreUrl: Ember.computed.alias("model.topics.load_more_url"), + loadMoreUrl: alias("model.topics.load_more_url"), isTopicLoading: false, - categories: Ember.computed.readOnly("model.categories"), - topics: Ember.computed.alias("model.topics.topic_list.topics"), - tags: Ember.computed.readOnly("model.tags"), + categories: readOnly("model.categories"), + topics: alias("model.topics.topic_list.topics"), + tags: readOnly("model.tags"), filterTags: null, filterCategories: null, filterSolved: false, @@ -31,6 +33,7 @@ export default Controller.extend({ expandedFilters: false, ascending: null, orderColumn: null, + topicCount: alias("model.topic_count"), @on("init") _setupFilters() { @@ -42,7 +45,7 @@ export default Controller.extend({ @discourseComputed("topics", "isSearching", "filterSolved") emptyTopics(topics, isSearching, filterSolved) { const filtered = isSearching || filterSolved; - return topics.length === 0 && !filtered; + return this.topicCount === 0 && !filtered; }, @discourseComputed("loadMoreUrl") @@ -60,24 +63,7 @@ export default Controller.extend({ return isSearching || filterSolved; }, - @discourseComputed("isSearching", "model") - searchCount(isSearching, model) { - if (isSearching) { - return model.search_count; - } - }, - - emptySearchResults: Ember.computed.equal("searchCount", 0), - - @discourseComputed("topics") - emptyFilteredResults(topics) { - return topics.length === 0; - }, - - @discourseComputed("emptySearchResults", "emptyFilteredResults") - emptyResults(emptySearch, emptyFiltered) { - return emptySearch || emptyFiltered; - }, + emptyResults: equal("topicCount", 0), @discourseComputed canFilterSolved() { @@ -134,6 +120,7 @@ export default Controller.extend({ selectedTopic: null, }); }, + performSearch(term) { if (term === "") { this.set("searchTerm", null); diff --git a/assets/javascripts/discourse/controllers/knowledge-explorer.js.es6 b/assets/javascripts/discourse/controllers/knowledge-explorer.js.es6 index 88f59fd..96f2ae6 100644 --- a/assets/javascripts/discourse/controllers/knowledge-explorer.js.es6 +++ b/assets/javascripts/discourse/controllers/knowledge-explorer.js.es6 @@ -1,7 +1,8 @@ import Controller from "@ember/controller"; +import { inject } from "@ember/controller"; export default Controller.extend({ - indexController: Ember.inject.controller("knowledgeExplorer.index"), + indexController: inject("knowledgeExplorer.index"), actions: { updateSelectedCategories(category) { this.indexController.send("updateSelectedCategories", category); diff --git a/assets/javascripts/discourse/templates/knowledge-explorer-index.hbs b/assets/javascripts/discourse/templates/knowledge-explorer-index.hbs index 8cfda66..8d2d73a 100644 --- a/assets/javascripts/discourse/templates/knowledge-explorer-index.hbs +++ b/assets/javascripts/discourse/templates/knowledge-explorer-index.hbs @@ -63,7 +63,7 @@ {{else}}
{{i18n 'knowledge_explorer.search.results' - count=searchCount + count=topicCount }}
{{/if}} diff --git a/lib/knowledge_explorer/query.rb b/lib/knowledge_explorer/query.rb index 7a0fa16..48a6f5c 100644 --- a/lib/knowledge_explorer/query.rb +++ b/lib/knowledge_explorer/query.rb @@ -74,7 +74,6 @@ module KnowledgeExplorer pd.search_data @@ #{escaped_ts_query} ) SQL - search_count = results.size end if @filters[:order] == "title" @@ -126,7 +125,7 @@ module KnowledgeExplorer topic_list['load_more_url'] = nil end - { tags: tags, categories: categories, topics: topic_list, search_count: search_count } + { tags: tags, categories: categories, topics: topic_list, topic_count: results_length } end def create_tags_object(tags) diff --git a/spec/requests/knowledge_explorer_controller_spec.rb b/spec/requests/knowledge_explorer_controller_spec.rb index 7af3719..282d1fe 100644 --- a/spec/requests/knowledge_explorer_controller_spec.rb +++ b/spec/requests/knowledge_explorer_controller_spec.rb @@ -29,6 +29,15 @@ describe KnowledgeExplorer::KnowledgeExplorerController do expect(tags.size).to eq(1) expect(topics.size).to eq(2) end + + it 'should return a topic count' do + get '/docs.json' + + json = response.parsed_body + topic_count = json['topic_count'] + + expect(topic_count).to eq(2) + end end context 'when some knowledge explorer topics are private' do