fixed reset filters link

This commit is contained in:
Manan Jethwani 2021-05-30 20:05:51 +05:30 committed by Emmanuel Engelhart
parent 179f0faeb1
commit 49dbd0aa52
5 changed files with 161 additions and 140 deletions

View File

@ -1,4 +1,4 @@
/* exported categoryList */ // eslint-disable-next-line no-unused-vars
const categoryList = { const categoryList = {
"other": "Other", "other": "Other",
"gutenberg": "Gutenberg", "gutenberg": "Gutenberg",

View File

@ -14,7 +14,12 @@
function queryUrlBuilder() { function queryUrlBuilder() {
let url = `${root}/catalog/search?`; let url = `${root}/catalog/search?`;
url += Object.keys(incrementalLoadingParams).map(key => `${key}=${incrementalLoadingParams[key]}`).join("&"); url += Object.keys(incrementalLoadingParams).map(key => `${key}=${incrementalLoadingParams[key]}`).join("&");
return (url + (params.toString() ? `&${params.toString()}` : '')); params.forEach((value, key) => {url+= value ? `&${key}=${value}` : ''});
return (url);
}
function htmlEncode(str) {
return str.replace(/[\u00A0-\u9999<>\&]/gim, (i) => `&#${i.charCodeAt(0)};`);
} }
function viewPortToCount(){ function viewPortToCount(){
@ -67,26 +72,28 @@
async function loadAndDisplayOptions(nodeQuery, query) { async function loadAndDisplayOptions(nodeQuery, query) {
// currently taking an object in place of query, will replace it with query while fetching data from backend later on. // currently taking an object in place of query, will replace it with query while fetching data from backend later on.
document.querySelector(nodeQuery).innerHTML += Object.keys(query) document.querySelector(nodeQuery).innerHTML += Object.keys(query)
.map((option) => {return `<option value='${option}'>${query[option]}</option>`}) .map((option) => {return `<option value='${option}'>${htmlEncode(query[option])}</option>`})
.join(''); .join('');
} }
function checkAndInjectEmptyMessage() { function checkAndInjectEmptyMessage() {
const kiwixBodyDiv = document.getElementsByClassName('kiwixHomeBody')[0]; const kiwixBodyDiv = document.getElementsByClassName('kiwixHomeBody')[0];
if (!Object.keys(bookMap).length) { if (!Object.keys(bookMap).length) {
noResultInjected = true; if (!noResultInjected) {
iso.remove(document.getElementsByClassName('book__list')[0].getElementsByTagName('a')); noResultInjected = true;
iso.layout(); iso.remove(document.getElementsByClassName('book__list')[0].getElementsByTagName('a'));
const spanTag = document.createElement('span'); iso.layout();
spanTag.setAttribute('class', 'noResults'); const spanTag = document.createElement('span');
spanTag.innerHTML = `No result. Would you like to <a href="">reset filter?</a>`; spanTag.setAttribute('class', 'noResults');
kiwixBodyDiv.append(spanTag); spanTag.innerHTML = `No result. Would you like to <a href="/?lang=">reset filter?</a>`;
spanTag.getElementsByTagName('a')[0].onclick = (event) => { kiwixBodyDiv.append(spanTag);
event.preventDefault(); spanTag.getElementsByTagName('a')[0].onclick = (event) => {
window.history.pushState({}, null, `${window.location.href.split('?')[0]}`); event.preventDefault();
resetAndFilter(); window.history.pushState({}, null, `${window.location.href.split('?')[0]}?lang=`);
filterTypes.forEach(key => {document.getElementsByName(key)[0].value = params.get(key) || ''}); resetAndFilter();
}; filterTypes.forEach(key => {document.getElementsByName(key)[0].value = params.get(key) || ''});
};
}
return true; return true;
} else if (noResultInjected) { } else if (noResultInjected) {
noResultInjected = false; noResultInjected = false;
@ -189,6 +196,7 @@
const browserLang = navigator.language.split('-')[0]; const browserLang = navigator.language.split('-')[0];
if (browserLang.length === 3) { if (browserLang.length === 3) {
document.getElementById('languageFilter').value = browserLang; document.getElementById('languageFilter').value = browserLang;
langFilter.dispatchEvent(new Event('change'));
} else { } else {
const langFilter = document.getElementById('languageFilter'); const langFilter = document.getElementById('languageFilter');
langFilter.value = iso6391To3[browserLang]; langFilter.value = iso6391To3[browserLang];

View File

@ -1,4 +1,4 @@
/* exported iso6391To3 */ // eslint-disable-next-line no-unused-vars
const iso6391To3 = { const iso6391To3 = {
"aa": "aar", "aa": "aar",
"af": "afr", "af": "afr",

View File

@ -1,125 +1,124 @@
/* exported langList */ // eslint-disable-next-line no-unused-vars
const langList = { const langList = {
"aar": "Afar", "aar": "Afaraf",
"afr": "Afrikaans", "afr": "Afrikaans",
"aka": "Akan", "aka": "Akan",
"amh": "Amharic", "amh": "አማርኛ",
"ara": "Arabic", "ara": "اللغة العربية",
"asm": "Assamese", "asm": "অসমীয়া",
"aze": "Azerbaijani", "aze": "azərbaycan dili",
"bak": "Bashkir", "bak": "башҡорт теле",
"bel": "Belarusian", "bel": "беларуская мова",
"bul": "Bulgarian", "bul": "български език",
"bam": "Bambara", "bam": "bamanankan",
"ben": "Bengali", "ben": "বাংলা",
"bod": "Tibetan", "bod": "བོད་ཡིག",
"bre": "Breton", "bre": "brezhoneg",
"bos": "Bosnian", "bos": "bosanski jezik",
"cat": "Catalan", "cat": "Català",
"che": "Chechen", "che": "нохчийн мотт",
"cos": "Corsican", "cos": "corsu",
"ces": "Czech", "ces": "čeština",
"chv": "Chuvash", "chv": "чӑваш чӗлхи",
"cym": "Welsh", "cym": "Cymraeg",
"dan": "Danish", "dan": "dansk",
"deu": "German", "deu": "Deutsch",
"dzo": "Dzongkha", "dzo": "རྫོང་ཁ",
"ewe": "Ewe", "ewe": "Eʋegbe",
"eng": "English", "eng": "English",
"spa": "Spanish", "spa": "Español",
"est": "Estonian", "est": "eesti",
"eus": "Basque", "eus": "euskara",
"fas": "Persian", "fas": "فارسی",
"ful": "Fulah", "ful": "Fulfulde",
"fin": "Finnish", "fin": "suomi",
"fao": "Faroese", "fao": "føroyskt",
"fra": "French", "fra": "Français",
"gle": "Irish", "gle": "Gaeilge",
"glg": "Galician", "glg": "galego",
"grn": "Guarani", "grn": "Avañe'ẽ",
"guj": "Gujarati", "guj": "ગુજરાતી",
"glv": "Manx", "glv": "Gaelg",
"hau": "Hausa", "hau": "هَوُسَ",
"heb": "Hebrew", "heb": "עברית",
"hin": "Hindi", "hin": "हिन्दी",
"hrv": "Croatian", "hrv": "hrvatski jezik",
"hun": "Hungarian", "hun": "magyar",
"hye": "Armenian", "hye": "Հայերեն",
"ind": "Indonesian", "ind": "Bahasa Indonesia",
"ibo": "Igbo", "ibo": "Asụsụ Igbo",
"isl": "Icelandic", "isl": "Íslenska",
"ita": "Italian", "ita": "Italiano",
"iku": "Inuktitut", "iku": "ᐃᓄᒃᑎᑐᑦ",
"jpn": "Japanese", "jpn": "日本語",
"jav": "Javanese", "jav": "basa Jawa",
"kat": "Georgian", "kat": "ქართული",
"kik": "Kikuyu", "kik": "Gĩkũyũ",
"kaz": "Kazakh", "kaz": "қазақ тілі",
"khm": "Khmer", "khm": "ខេមរភាសា",
"kan": "Kannada", "kan": "ಕನ್ನಡ",
"kor": "Korean", "kor": "한국어",
"kas": "Kashmiri", "kas": "कश्मीरी",
"kur": "Kurdish", "kur": "Kurdî",
"cor": "Cornish", "cor": "Kernewek",
"kir": "Kirghiz", "kir": "Кыргызча",
"ltz": "Luxembourgish", "ltz": "Lëtzebuergesch",
"lug": "Ganda", "lug": "Luganda",
"lin": "Lingala", "lin": "Lingála",
"lao": "Lao", "lao": "ພາສາ",
"lit": "Lithuanian", "lit": "lietuvių kalba",
"lav": "Latvian", "lav": "latviešu valoda",
"mlg": "Malagasy", "mlg": "fiteny malagasy",
"mri": "Maori", "mri": "te reo Māori",
"mkd": "Macedonian", "mkd": "македонски јазик",
"mal": "Malayalam", "mal": "മലയാളം",
"mon": "Mongolian", "mon": "Монгол хэл",
"mar": "Marathi", "mar": "मराठी",
"mlt": "Maltese", "mlt": "Malti",
"mya": "Burmese", "mya": "ဗမာစာ",
"nld": "Dutch", "nld": "Nederlands",
"nya": "Nyanja", "nya": "chiCheŵa",
"orm": "Oromo", "orm": "Afaan Oromoo",
"pol": "Polish", "pol": "język polski",
"por": "Portuguese", "por": "Português",
"que": "Quechua", "que": "Runa Simi",
"roh": "Romansh", "roh": "rumantsch grischun",
"run": "Rundi", "run": "Ikirundi",
"ron": "Romanian", "ron": "Română",
"rus": "Russian", "rus": "Русский",
"kin": "Kinyarwanda", "kin": "Ikinyarwanda",
"san": "Sanskrit", "san": "संस्कृतम्",
"snd": "Sindhi", "snd": "सिन्धी",
"sag": "Sango", "sag": "yângâ tî sängö",
"sin": "Sinhala", "sin": "සිංහල",
"slk": "Slovak", "slk": "slovenčina",
"slv": "Slovenian", "slv": "slovenski jezik",
"sna": "Shona", "sna": "chiShona",
"som": "Somali", "som": "Soomaaliga",
"sqi": "Albanian", "sqi": "Shqip",
"srp": "Serbian", "srp": "српски језик",
"ssw": "Swati", "ssw": "SiSwati",
"swe": "Swedish", "swe": "svenska",
"tam": "Tamil", "tam": "தமிழ்",
"tel": "Telugu", "tel": "తెలుగు",
"tgk": "Tajik", "tgk": "тоҷикӣ",
"tha": "Thai", "tha": "ไทย",
"tir": "Tigrinya", "tir": "ትግርኛ",
"tuk": "Turkmen", "tuk": "Türkmen",
"fil": "Filipino", "tsn": "Setswana",
"tsn": "Tswana", "tur": "Türkçe",
"tur": "Turkish", "tso": "Xitsonga",
"tso": "Tsonga", "tat": "татар теле",
"tat": "Tatar", "uig": "ئۇيغۇرچە‎",
"uig": "Uighur", "ukr": "Українська",
"ukr": "Ukrainian", "urd": "اردو",
"urd": "Urdu", "uzb": "Ўзбек",
"uzb": "Uzbek", "ven": "Tshivenḓa",
"ven": "Venda", "vie": "Tiếng Việt",
"vie": "Vietnamese", "wln": "walon",
"wln": "Walloon", "wol": "Wollof",
"wol": "Wolof", "xho": "isiXhosa",
"xho": "Xhosa", "yor": "Yorùbá",
"yor": "Yoruba", "zho": "中文",
"zho": "Chinese", "zul": "isiZulu"
"zul": "Zulu"
} }

View File

@ -22,6 +22,10 @@
rel="Stylesheet" rel="Stylesheet"
/> />
<style> <style>
html {
min-height: 100%;
position: relative;
}
body { body {
background: radial-gradient(#eeeeee 15%, transparent 16%) 0 0, background: radial-gradient(#eeeeee 15%, transparent 16%) 0 0,
radial-gradient(#eeeeee 15%, transparent 16%) 8px 8px, radial-gradient(#eeeeee 15%, transparent 16%) 8px 8px,
@ -32,13 +36,15 @@
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
max-width: 1100px; max-width: 1100px;
min-height: 100%;
} }
.book__list { .book__list {
text-align: center; text-align: center;
} }
.kiwixHomeBody { .kiwixHomeBody {
padding: 30px 0;
text-align: center; text-align: center;
min-height: 100%;
margin: 30px 0;
} }
.book { .book {
display: inline-block; display: inline-block;
@ -57,7 +63,10 @@
} }
#kiwixfooter { #kiwixfooter {
text-align: center; text-align: center;
margin-top: 1em; margin: 0.5em;
position: absolute;
bottom: 0;
left: 46%;
} }
.kiwixHomeNavbar { .kiwixHomeNavbar {
display: flex; display: flex;
@ -113,6 +122,11 @@
a:visited { a:visited {
text-decoration: none; text-decoration: none;
} }
.noResults {
position: absolute;
top: 48%;
left: 42%;
}
</style> </style>
<script src="{{root}}/skin/isotope.pkgd.min.js" defer></script> <script src="{{root}}/skin/isotope.pkgd.min.js" defer></script>
<script src="{{root}}/skin/categoryList.js"></script> <script src="{{root}}/skin/categoryList.js"></script>