Beginnings of working search
This commit is contained in:
parent
7b8d3a84bd
commit
adc07ae8ad
|
@ -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: {
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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}`);
|
||||
}
|
||||
}
|
||||
};
|
|
@ -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}}
|
||||
|
|
|
@ -0,0 +1,7 @@
|
|||
en:
|
||||
js:
|
||||
knowledge_explorer:
|
||||
search:
|
||||
results:
|
||||
one: "%{count} result found"
|
||||
other: "%{count} results found"
|
Loading…
Reference in New Issue