From 8a37ac0f340380ec0aed935252ace3ea0e28cfd0 Mon Sep 17 00:00:00 2001 From: Renon Date: Mon, 11 Nov 2019 11:32:07 +0100 Subject: [PATCH] Resolve "No feedback when search does not raise any result" --- front/src/components/audio/SearchBar.vue | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/front/src/components/audio/SearchBar.vue b/front/src/components/audio/SearchBar.vue index d73571fcb..ae2ae08fb 100644 --- a/front/src/components/audio/SearchBar.vue +++ b/front/src/components/audio/SearchBar.vue @@ -49,12 +49,17 @@ export default { jQuery(this.$el).search({ type: 'category', minCharacters: 3, + showNoResults: true, + error: { + noResultsHeader: this.$pgettext('Sidebar/Search/Error', 'No matches found'), + noResults: this.$pgettext('Sidebar/Search/Error.Label', 'Sorry, there are no results for this search') + }, onSelect (result, response) { router.push(result.routerUrl) }, onSearchQuery (query) { self.$emit('search') - searchQuery = query; + searchQuery = query }, apiSettings: { beforeXHR: function (xhrObject) { @@ -65,7 +70,8 @@ export default { return xhrObject }, onResponse: function (initialResponse) { - var results = {} + let results = {} + let isEmptyResults = true let categories = [ { code: 'artists', @@ -130,6 +136,7 @@ export default { results: [] } initialResponse[category.code].forEach(result => { + isEmptyResults = false let id = category.getId(result) results[category.code].results.push({ title: category.getTitle(result), @@ -144,7 +151,9 @@ export default { }) }) }) - return {results: results} + return { + results: isEmptyResults ? {} : results + } }, url: this.$store.getters['instance/absoluteUrl']('api/v1/search?query={query}') }