Beginnings of working search

This commit is contained in:
Justin DiRose 2019-08-30 15:34:48 -05:00
parent 7b8d3a84bd
commit adc07ae8ad
5 changed files with 50 additions and 4 deletions

View File

@ -1,3 +1,5 @@
import knowledgeExplorer from "discourse/plugins/discourse-knowledge-explorer/discourse/models/knowledge-explorer";
export default Ember.Component.extend({
classNames: "knowledge-explorer-search",
@ -7,9 +9,10 @@ export default Ember.Component.extend({
return;
}
// set search filters
// query the search api
knowledgeExplorer.search(this.get("filteredTags"), term).then(result => {
this.set("searchResults", result.topics || []);
});
},
actions: {

View File

@ -1,4 +1,7 @@
import { observes } from "ember-addons/ember-computed-decorators";
import {
default as computed,
observes
} from "ember-addons/ember-computed-decorators";
function arrayContainsArray(superset, subset) {
if (0 === subset.length) {
@ -20,6 +23,19 @@ export default Ember.Controller.extend({
filteredTags: null,
filteredTopics: null,
searchTerm: null,
searchResults: null,
@computed("searchResults")
hasSearchResults(results) {
return !!results;
},
@computed("searchResults")
emptySearchResults(results) {
return results.length === 0;
},
@observes("filterTags")
filterByTags() {
const filterTags = this.get("filterTags");

View File

@ -0,0 +1,13 @@
import { ajax } from "discourse/lib/ajax";
export default {
search(tags, filter) {
if (tags) {
return ajax(
`/search.json?q=in:kb tags:${tags.replace(/ /g, "+")} ${filter}`
);
} else {
return ajax(`/search.json?q=in:kb ${filter}`);
}
}
};

View File

@ -1,6 +1,6 @@
<div class="knowledge-explorer">
<div class="knowledge-explorer-filter">
{{knowledge-explorer-search searchResults=searchResults searchTerm=searchTerm}}
{{knowledge-explorer-search searchResults=searchResults searchTerm=searchTerm filteredTags=filteredTags}}
</div>
<div class="knowledge-explorer-browse">
{{#if filteredTags}}
@ -20,6 +20,13 @@
{{else}}
<div class="no-result">No results match the current filter</div>
{{/if}}
{{else if hasSearchResults}}
{{#if emptySearchResults}}
{<div class="no-result">{i18n 'search.no_results'}}</div>
{{else}}
<div>{{i18n "knowledge_explorer.search.results" count=count}}</div>
{{knowledge-explorer-topic-list topics=searchResults}}
{{/if}}
{{else}}
{{knowledge-explorer-topic-list topics=topics}}
{{/if}}

View File

@ -0,0 +1,7 @@
en:
js:
knowledge_explorer:
search:
results:
one: "%{count} result found"
other: "%{count} results found"