diff --git a/static/skin/i18n.js b/static/skin/i18n.js index 6c5eb0ad..53c11c7f 100644 --- a/static/skin/i18n.js +++ b/static/skin/i18n.js @@ -97,7 +97,51 @@ function setUserLanguage(lang, callback) { Translations.whenReady(callback); } +function createModalUILanguageSelector() { + document.body.insertAdjacentHTML('beforeend', + ``); + + window.modalUILanguageSelector = { + show: () => { + document.getElementById('uiLanguageSelector').style.display = 'flex'; + }, + + close: () => { + document.getElementById('uiLanguageSelector').style.display = 'none'; + } + }; +} + function initUILanguageSelector(activeLanguage, languageChangeCallback) { + if ( document.getElementById("ui_language") == null ) { + createModalUILanguageSelector(); + } const languageSelector = document.getElementById("ui_language"); for (const lang of uiLanguages ) { const lang_name = Object.getOwnPropertyNames(lang)[0]; diff --git a/static/skin/index.css b/static/skin/index.css index e0d43fbb..df0b33ff 100644 --- a/static/skin/index.css +++ b/static/skin/index.css @@ -157,9 +157,26 @@ body { font-weight: bolder; } -#ui_language { +#uiLanguageSelector { + display: none; +} + +#uiLanguageSelector .modal { + height: 140px; +} + +#uiLanguageSelector .modal-heading { + height: 40%; +} + +#uiLanguageSelector .modal-content #ui_language { + font-size: 1.6rem; + width: 100%; +} + +#uiLanguageSelectorButton { + margin: 16px 12px 0 0; float: right; - top: 0; } .book__list { diff --git a/static/skin/index.js b/static/skin/index.js index 06147f88..c87a4787 100644 --- a/static/skin/index.js +++ b/static/skin/index.js @@ -33,6 +33,7 @@ } function changeUILanguage() { + window.modalUILanguageSelector.close(); const s = document.getElementById("ui_language"); const lang = s.options[s.selectedIndex].value; setPermanentGlobalCookie('userlang', lang); diff --git a/static/templates/index.html b/static/templates/index.html index aae63a6a..6bbe6d12 100644 --- a/static/templates/index.html +++ b/static/templates/index.html @@ -52,9 +52,18 @@ aria-label="Library OPDS Feed" title="Library OPDS Feed"> + + + + + + +
-