Skip to content

Commit 49322f5

Browse files
authored
Merge pull request #596 from kiwix/better_filter
improved browser lang filter working
2 parents 20cdefc + 0466b97 commit 49322f5

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

static/skin/index.js

+13-2
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,14 @@
170170
})
171171
}
172172

173+
async function getBookCount(query) {
174+
const url = `${root}/catalog/search?${query}`;
175+
return await fetch(url).then(async (resp) => {
176+
const data = new window.DOMParser().parseFromString(await resp.text(), 'application/xml');
177+
return parseInt(data.querySelector('totalResults').innerHTML);
178+
});
179+
}
180+
173181
async function loadBooks() {
174182
loader.style.display = 'block';
175183
return await fetch(queryUrlBuilder()).then(async (resp) => {
@@ -368,8 +376,11 @@
368376
if (!window.location.search) {
369377
const browserLang = navigator.language.split('-')[0];
370378
const langFilter = document.getElementById('languageFilter');
371-
langFilter.value = browserLang.length === 3 ? browserLang : iso6391To3[browserLang];
372-
langFilter.dispatchEvent(new Event('change'));
379+
const lang = browserLang.length === 3 ? browserLang : iso6391To3[browserLang];
380+
if (await getBookCount(`lang=${lang}`)) {
381+
langFilter.value = lang;
382+
langFilter.dispatchEvent(new Event('change'));
383+
}
373384
}
374385
document.querySelectorAll('.filter').forEach(filter => {
375386
if (filter.value) {

0 commit comments

Comments
 (0)