From 89f33d6754e6e619e81d2839d68e5b34e85fdff8 Mon Sep 17 00:00:00 2001 From: rstular Date: Sun, 17 May 2020 15:12:58 +0200 Subject: Modified language selection UI --- assets/js/absences.js | 2 +- assets/js/gradings.js | 2 +- assets/js/lang/bundle.js | 2 ++ assets/js/settings.js | 14 ++++++++++++-- assets/js/teachers.js | 2 +- assets/pages-src/settings.bvr | 11 +++++++++-- dist/js/absences.js | 2 +- dist/js/gradings.js | 2 +- dist/js/lang/bundle.js | 2 ++ dist/js/settings.js | 14 ++++++++++++-- dist/js/teachers.js | 2 +- dist/pages/about.html | 2 +- dist/pages/settings.html | 11 +++++++++-- dist/sw.js | 4 ++-- 14 files changed, 55 insertions(+), 17 deletions(-) diff --git a/assets/js/absences.js b/assets/js/absences.js index a11d042..2ed5fe8 100644 --- a/assets/js/absences.js +++ b/assets/js/absences.js @@ -49,7 +49,7 @@ async function loadAbsences(forceRefresh = false) { ]; await Promise.all(promisesToRun); // If we don't have a list of absences, query it - if (absences === null || forceRefresh) { + if (absences === null || absences === {} || forceRefresh) { try { let gsecInstance = new gsec(); await gsecInstance.login(username, password); diff --git a/assets/js/gradings.js b/assets/js/gradings.js index 2aeac27..33fda47 100644 --- a/assets/js/gradings.js +++ b/assets/js/gradings.js @@ -176,7 +176,7 @@ document.addEventListener("DOMContentLoaded", () => { }); calendar_obj.render(); // setupPickers(); // todo (adding an event), to be stored in messages - loadGradings(); + loadGradings(true); // Setup refresh handler $("#refresh-icon").click(() => { loadGradings(true); diff --git a/assets/js/lang/bundle.js b/assets/js/lang/bundle.js index e8ed9d3..b025486 100644 --- a/assets/js/lang/bundle.js +++ b/assets/js/lang/bundle.js @@ -283,6 +283,7 @@ var langstrings = { privacyEffectiveAsOf: "this policy is effective as of", // settings language: "language", + selectLanguage: "select desired language", languageSet: "language set, open another page for the changes to take effect", // gsec gsecErrNet: "GimSIS connection error", @@ -465,6 +466,7 @@ var langstrings = { privacyAcceptWithUse: "your continued use of our website will be regarded as acceptance of our practices around privacy and personal information. If you have any questions about how we handle user data and personal information, feel free to contact us.", privacyEffectiveAsOf: "this policy is effective as of", language: "jezik", + selectLanguage: "izberi željen jezik", languageSet: "jezik nastavljen, odprite neko drugo stran da se pokažejo spremembe", // gsec gsecErrNet: "napaka povezave na GimSIS", diff --git a/assets/js/settings.js b/assets/js/settings.js index fda9ea5..0410aeb 100644 --- a/assets/js/settings.js +++ b/assets/js/settings.js @@ -8,12 +8,22 @@ async function setLanguage(langCode) { } document.addEventListener("DOMContentLoaded", async () => { - $(".settings-language-selector").click(function () { - let languageToSet = $(this).attr("data-language"); + + $("#select-language").on("change", () => { + let languageToSet = $(this).find(":selected").data("language"); setLanguage(languageToSet); }); + localforage.getItem("chosenLang").then((value) => { + let selectedLanguage = value ?? "sl"; + $(`#option-${selectedLanguage}`).attr("selected", true); + }).catch(() => {}); + // Setup side menu const menus = document.querySelectorAll(".side-menu"); M.Sidenav.init(menus, { edge: "right", draggable: true }); + + // Setup language select dropdown + var elems = document.querySelectorAll('select'); + M.FormSelect.init(elems, {}); }); diff --git a/assets/js/teachers.js b/assets/js/teachers.js index 5fc2baf..da69e96 100644 --- a/assets/js/teachers.js +++ b/assets/js/teachers.js @@ -29,7 +29,7 @@ async function loadTeachers(force_refresh = false) { ]; await Promise.all(promises_to_run); // If we don't have a list of teachers, query it - if (teachers === null || force_refresh) { + if (teachers === null || teachers === [] || force_refresh) { try { let gsecInstance = new gsec(); await gsecInstance.login(username, password); diff --git a/assets/pages-src/settings.bvr b/assets/pages-src/settings.bvr index 12c28d7..135ca91 100644 --- a/assets/pages-src/settings.bvr +++ b/assets/pages-src/settings.bvr @@ -55,7 +55,14 @@
language
-
+
+ + +
+
-
+ --> diff --git a/dist/js/absences.js b/dist/js/absences.js index a11d042..2ed5fe8 100644 --- a/dist/js/absences.js +++ b/dist/js/absences.js @@ -49,7 +49,7 @@ async function loadAbsences(forceRefresh = false) { ]; await Promise.all(promisesToRun); // If we don't have a list of absences, query it - if (absences === null || forceRefresh) { + if (absences === null || absences === {} || forceRefresh) { try { let gsecInstance = new gsec(); await gsecInstance.login(username, password); diff --git a/dist/js/gradings.js b/dist/js/gradings.js index 2aeac27..33fda47 100644 --- a/dist/js/gradings.js +++ b/dist/js/gradings.js @@ -176,7 +176,7 @@ document.addEventListener("DOMContentLoaded", () => { }); calendar_obj.render(); // setupPickers(); // todo (adding an event), to be stored in messages - loadGradings(); + loadGradings(true); // Setup refresh handler $("#refresh-icon").click(() => { loadGradings(true); diff --git a/dist/js/lang/bundle.js b/dist/js/lang/bundle.js index e8ed9d3..b025486 100644 --- a/dist/js/lang/bundle.js +++ b/dist/js/lang/bundle.js @@ -283,6 +283,7 @@ var langstrings = { privacyEffectiveAsOf: "this policy is effective as of", // settings language: "language", + selectLanguage: "select desired language", languageSet: "language set, open another page for the changes to take effect", // gsec gsecErrNet: "GimSIS connection error", @@ -465,6 +466,7 @@ var langstrings = { privacyAcceptWithUse: "your continued use of our website will be regarded as acceptance of our practices around privacy and personal information. If you have any questions about how we handle user data and personal information, feel free to contact us.", privacyEffectiveAsOf: "this policy is effective as of", language: "jezik", + selectLanguage: "izberi željen jezik", languageSet: "jezik nastavljen, odprite neko drugo stran da se pokažejo spremembe", // gsec gsecErrNet: "napaka povezave na GimSIS", diff --git a/dist/js/settings.js b/dist/js/settings.js index fda9ea5..0410aeb 100644 --- a/dist/js/settings.js +++ b/dist/js/settings.js @@ -8,12 +8,22 @@ async function setLanguage(langCode) { } document.addEventListener("DOMContentLoaded", async () => { - $(".settings-language-selector").click(function () { - let languageToSet = $(this).attr("data-language"); + + $("#select-language").on("change", () => { + let languageToSet = $(this).find(":selected").data("language"); setLanguage(languageToSet); }); + localforage.getItem("chosenLang").then((value) => { + let selectedLanguage = value ?? "sl"; + $(`#option-${selectedLanguage}`).attr("selected", true); + }).catch(() => {}); + // Setup side menu const menus = document.querySelectorAll(".side-menu"); M.Sidenav.init(menus, { edge: "right", draggable: true }); + + // Setup language select dropdown + var elems = document.querySelectorAll('select'); + M.FormSelect.init(elems, {}); }); diff --git a/dist/js/teachers.js b/dist/js/teachers.js index 5fc2baf..da69e96 100644 --- a/dist/js/teachers.js +++ b/dist/js/teachers.js @@ -29,7 +29,7 @@ async function loadTeachers(force_refresh = false) { ]; await Promise.all(promises_to_run); // If we don't have a list of teachers, query it - if (teachers === null || force_refresh) { + if (teachers === null || teachers === [] || force_refresh) { try { let gsecInstance = new gsec(); await gsecInstance.login(username, password); diff --git a/dist/pages/about.html b/dist/pages/about.html index 7e193bf..c5cc254 100644 --- a/dist/pages/about.html +++ b/dist/pages/about.html @@ -142,7 +142,7 @@

- ^HEAD 44e8c1e1c9124b36a78f775b9a7dd12152a71d98 + ^HEAD a6b27a276c6da60d7fa21c5d767ef7d38c9fac2a

diff --git a/dist/pages/settings.html b/dist/pages/settings.html index 9b33d5a..af9d36d 100644 --- a/dist/pages/settings.html +++ b/dist/pages/settings.html @@ -76,7 +76,14 @@
language
-
+
+ + +
+
-
+ --> diff --git a/dist/sw.js b/dist/sw.js index 22ff931..edc0da9 100644 --- a/dist/sw.js +++ b/dist/sw.js @@ -3,8 +3,8 @@ // Change version to cause cache refresh -const static_cache_name = "site-static-1.0.13-beta-44e8c1e"; -// latest commit is 44e8c1e1c9124b36a78f775b9a7dd12152a71d98 +const static_cache_name = "site-static-1.0.13-beta-a6b27a2"; +// latest commit is a6b27a276c6da60d7fa21c5d767ef7d38c9fac2a // Got them with find . -not -path '*/\.*' | sed "s/.*/\"&\",/" | grep -v sw.js // sw.js NE SME BITI CACHAN, ker vsebuje verzijo! -- cgit v1.2.3