summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile6
-rw-r--r--assets/js/lang/bundle.js2
-rw-r--r--assets/js/login.js21
-rw-r--r--assets/js/meals.js5
-rw-r--r--assets/root/login.html3
-rw-r--r--assets/root/server-message-at-login.html6
-rwxr-xr-xbin/bvr-compose-htmlbin31984 -> 31664 bytes
-rwxr-xr-xbin/bvr-compose-singlebin31840 -> 27416 bytes
-rwxr-xr-xbin/bvr-jsbundlebin17576 -> 13296 bytes
-rwxr-xr-xbin/bvr-jsminbin17904 -> 13664 bytes
-rwxr-xr-xbin/compose-htmlbin31664 -> 0 bytes
-rwxr-xr-xbin/compose-singlebin31488 -> 0 bytes
-rwxr-xr-xbin/jsbundlebin17576 -> 0 bytes
-rwxr-xr-xbin/jsminbin17904 -> 0 bytes
-rwxr-xr-x[-rw-r--r--]dist/.well-known/assetlinks.json0
-rwxr-xr-x[-rw-r--r--]dist/_config.yml0
-rwxr-xr-x[-rw-r--r--]dist/assetlinks.json0
-rwxr-xr-x[-rw-r--r--]dist/cache_name.txt2
-rwxr-xr-x[-rw-r--r--]dist/css/bubbles.css0
-rwxr-xr-x[-rw-r--r--]dist/css/fontawesome.min.css0
-rwxr-xr-x[-rw-r--r--]dist/css/fullcalendar/core/main.min.css0
-rwxr-xr-x[-rw-r--r--]dist/css/fullcalendar/custom.css0
-rwxr-xr-x[-rw-r--r--]dist/css/fullcalendar/daygrid/main.min.css0
-rwxr-xr-x[-rw-r--r--]dist/css/fullcalendar/timegrid/main.min.css0
-rwxr-xr-x[-rw-r--r--]dist/css/materialicons.css0
-rwxr-xr-x[-rw-r--r--]dist/css/materialize.min.css0
-rwxr-xr-x[-rw-r--r--]dist/css/styles.css0
-rwxr-xr-x[-rw-r--r--]dist/directory.json0
-rwxr-xr-x[-rw-r--r--]dist/favicon.pngbin8311 -> 8311 bytes
-rwxr-xr-x[-rw-r--r--]dist/fonts/fa-brands-400.eotbin131930 -> 131930 bytes
-rwxr-xr-x[-rw-r--r--]dist/fonts/fa-brands-400.woff2bin75936 -> 75936 bytes
-rwxr-xr-x[-rw-r--r--]dist/fonts/fa-regular-400.eotbin34390 -> 34390 bytes
-rwxr-xr-x[-rw-r--r--]dist/fonts/fa-regular-400.woff2bin13576 -> 13576 bytes
-rwxr-xr-x[-rw-r--r--]dist/fonts/fa-solid-900.eotbin194066 -> 194066 bytes
-rwxr-xr-x[-rw-r--r--]dist/fonts/fa-solid-900.woff2bin76084 -> 76084 bytes
-rwxr-xr-x[-rw-r--r--]dist/fonts/materialicons.woff2bin60832 -> 60832 bytes
-rwxr-xr-x[-rw-r--r--]dist/img/avatars/asijanec.pngbin82 -> 82 bytes
-rwxr-xr-x[-rw-r--r--]dist/img/avatars/rstular.pngbin39077 -> 39077 bytes
-rwxr-xr-x[-rw-r--r--]dist/img/flags/en.svg0
-rwxr-xr-x[-rw-r--r--]dist/img/flags/sl.svg0
-rwxr-xr-x[-rw-r--r--]dist/img/icons/icon_144.pngbin15341 -> 15341 bytes
-rwxr-xr-x[-rw-r--r--]dist/img/icons/icon_192.pngbin19637 -> 19637 bytes
-rwxr-xr-x[-rw-r--r--]dist/img/icons/icon_384.pngbin66357 -> 66357 bytes
-rwxr-xr-x[-rw-r--r--]dist/img/icons/icon_48.pngbin3324 -> 3324 bytes
-rwxr-xr-x[-rw-r--r--]dist/img/icons/icon_512.pngbin73720 -> 73720 bytes
-rwxr-xr-x[-rw-r--r--]dist/img/icons/icon_72.pngbin6357 -> 6357 bytes
-rwxr-xr-x[-rw-r--r--]dist/img/icons/icon_96.pngbin8311 -> 8311 bytes
-rwxr-xr-x[-rw-r--r--]dist/index.html0
-rwxr-xr-x[-rw-r--r--]dist/js/about.js0
-rwxr-xr-x[-rw-r--r--]dist/js/absences.js0
-rwxr-xr-x[-rw-r--r--]dist/js/app.js4
-rwxr-xr-x[-rw-r--r--]dist/js/changelog.js0
-rwxr-xr-x[-rw-r--r--]dist/js/chats.js0
-rwxr-xr-x[-rw-r--r--]dist/js/grades.js0
-rwxr-xr-x[-rw-r--r--]dist/js/gradings.js0
-rwxr-xr-x[-rw-r--r--]dist/js/gsec.js0
-rwxr-xr-x[-rw-r--r--]dist/js/initialize.js0
-rwxr-xr-x[-rw-r--r--]dist/js/jitsi.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lang/bundle.js2
-rwxr-xr-x[-rw-r--r--]dist/js/lib/fullcalendar/core/main.min.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lib/fullcalendar/daygrid/main.min.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lib/fullcalendar/timegrid/main.min.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lib/he.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lib/jquery.min.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lib/localforage.min.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lib/materialize.min.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lib/mergedeep.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lib/sjcl.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lib/themes.js0
-rwxr-xr-x[-rw-r--r--]dist/js/lib/xss.js0
-rwxr-xr-x[-rw-r--r--]dist/js/login.js2
-rwxr-xr-x[-rw-r--r--]dist/js/logout.js0
-rwxr-xr-x[-rw-r--r--]dist/js/meals.js2
-rwxr-xr-x[-rw-r--r--]dist/js/messaging.js0
-rwxr-xr-x[-rw-r--r--]dist/js/privacypolicy.js0
-rwxr-xr-x[-rw-r--r--]dist/js/settings.js0
-rwxr-xr-x[-rw-r--r--]dist/js/setup-storage.js0
-rwxr-xr-x[-rw-r--r--]dist/js/teachers.js0
-rwxr-xr-x[-rw-r--r--]dist/js/timetable.js0
-rwxr-xr-x[-rw-r--r--]dist/js/tos.js0
-rwxr-xr-x[-rw-r--r--]dist/login.html3
-rwxr-xr-x[-rw-r--r--]dist/logout.html0
-rwxr-xr-x[-rw-r--r--]dist/manifest.json0
-rwxr-xr-x[-rw-r--r--]dist/pages/about.html4
-rwxr-xr-x[-rw-r--r--]dist/pages/absences.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/changelog.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/chats.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/grades.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/gradings.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/jitsi.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/meals.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/messaging.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/privacypolicy.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/settings.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/teachers.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/timetable.html0
-rwxr-xr-x[-rw-r--r--]dist/pages/tos.html0
-rwxr-xr-xdist/server-message-at-login.html6
-rwxr-xr-x[-rw-r--r--]dist/sw.js4
-rw-r--r--global.bvr2
100 files changed, 56 insertions, 18 deletions
diff --git a/Makefile b/Makefile
index 911ebc9..611336b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,10 @@
default:
@echo "*** BežiApp Makefile ***"
@echo "targets:"
- @echo " make prepare installs dependencies, cleans after itself, requires sudo permissions and debian/ubuntu for apt"
+ @echo " make prepare installs dependencies, uses \`sudo apt\`."
@echo " make generate installs BežiApp to dist/"
+ @echo "notes and hacks:"
+ @echo " \`cp /bin/cp bin/bvr-jsmin\` if you don't want jsmin (before generate)"
@echo "no target specified, exiting ..."
prepare:
@@ -29,4 +31,4 @@ generate:
-find assets/js/ -name "*.bvr" -printf "%f\n" | xargs -I % bash -c "FILE='%'; FILE_DST="dist/js/\$${FILE/.bvr/}"; ./bin/bvr-compose-single \"assets/js/\$$FILE\" \"\$$FILE_DST\""
-find assets/js/ -name "*.js" -printf "%P\n" | xargs -I % bash -c "FILE='%'; FILE_DST="dist/js/\$${FILE/.bvr/}"; ./bin/bvr-jsmin assets/js/\"\$$FILE\" \"\$$FILE_DST\""
cp -r assets/root/.well-known dist/
-
+ chmod 0775 dist -R
diff --git a/assets/js/lang/bundle.js b/assets/js/lang/bundle.js
index b311bf4..10cfd20 100644
--- a/assets/js/lang/bundle.js
+++ b/assets/js/lang/bundle.js
@@ -447,7 +447,7 @@ var langstrings = {
readOnly: "samo za branje",
usage: "uporaba",
mealsUsageNote: "kliknite na datum za prikaz menijev, nato pa si enega izberite s klikom na ime menija. Po nastavitvi menijev ponovno naložite menije in se prepričajte o pravilnih nastavitvah.",
- lunchesNote: "aplikacija ni testirana za naročanje na koslila, zato verjetno to ne deluje. Če ste naročeni na kosila lahko naročanje na menije sploh ne deluje ali pa deluje narobe.",
+ lunchesNote: "aplikacija ni testirana za naročanje na kosila, zato verjetno to ne deluje. Če ste naročeni na kosila lahko naročanje na menije sploh ne deluje ali pa deluje narobe.",
mealNotShownNote: "če nek dan manjka med meniji, to verjetno pomeni, da ni več spremenljiv in zanj niste ročno spremenili menija",
mealsContributeNote: "vabimo vas k urejanju LopolisAPI programa za upravljanje z meniji.",
authenticationError: "napaka avtentikacije",
diff --git a/assets/js/login.js b/assets/js/login.js
index cdecf38..88bf501 100644
--- a/assets/js/login.js
+++ b/assets/js/login.js
@@ -1,7 +1,24 @@
// const API_ENDPOINT = "https://gimb.tk/test.php"; // deprecated
document.addEventListener("DOMContentLoaded", () => {
- setupEventListeners();
-})
+ setupEventListeners();
+ try {
+ load_server_message_at_login();
+ } catch (e) {
+ console.log("login.js: load_server-message-at-login: silently failed.");
+ }
+});
+
+function load_server_message_at_login() {
+ $.ajax({
+ url: "/server-message-at-login.html",
+ success: (data) => {
+ $("#server-message-at-login").html(data);
+ },
+ error: () => {
+ $("#server-message-at-login").html("");
+ }
+ });
+}
function setupEventListeners() {
// Setup login button listener
diff --git a/assets/js/meals.js b/assets/js/meals.js
index 78de032..891feae 100644
--- a/assets/js/meals.js
+++ b/assets/js/meals.js
@@ -209,8 +209,9 @@ function displayMeals(meals) {
meal_node.appendChild(meal_node_div);
subject_body_root.appendChild(meal_node);
}
-
- subject_header.appendChild(subject_header_text);
+ var subject_header_text_span = document.createElement("span");
+ subject_header_text_span.innerText = subject_header_text;
+ subject_header.appendChild(subject_header_text_span);
subject_body.append(subject_body_root);
subject_entry.append(subject_header);
subject_entry.append(subject_body);
diff --git a/assets/root/login.html b/assets/root/login.html
index 542b157..95bcc2e 100644
--- a/assets/root/login.html
+++ b/assets/root/login.html
@@ -60,6 +60,9 @@
<a href="/pages/privacypolicy.html"><x-dl>thePrivacyPolicy</x-dl></a>
</p>
</div>
+ <div class="row" id="server-message-at-login">
+
+ </div>
</div>
</div>
</body>
diff --git a/assets/root/server-message-at-login.html b/assets/root/server-message-at-login.html
new file mode 100644
index 0000000..d0ec9e2
--- /dev/null
+++ b/assets/root/server-message-at-login.html
@@ -0,0 +1,6 @@
+<h5>
+ Opozorilo razvijalcev / developer's note:
+</h5>
+<p>
+ Srečno v novem šolskem letu 2020/21!
+</p>
diff --git a/bin/bvr-compose-html b/bin/bvr-compose-html
index 2970376..4c7dc70 100755
--- a/bin/bvr-compose-html
+++ b/bin/bvr-compose-html
Binary files differ
diff --git a/bin/bvr-compose-single b/bin/bvr-compose-single
index d31f97f..5fe2fb6 100755
--- a/bin/bvr-compose-single
+++ b/bin/bvr-compose-single
Binary files differ
diff --git a/bin/bvr-jsbundle b/bin/bvr-jsbundle
index a617bbf..d1bc0dc 100755
--- a/bin/bvr-jsbundle
+++ b/bin/bvr-jsbundle
Binary files differ
diff --git a/bin/bvr-jsmin b/bin/bvr-jsmin
index 88924b6..34d72a2 100755
--- a/bin/bvr-jsmin
+++ b/bin/bvr-jsmin
Binary files differ
diff --git a/bin/compose-html b/bin/compose-html
deleted file mode 100755
index 2b50168..0000000
--- a/bin/compose-html
+++ /dev/null
Binary files differ
diff --git a/bin/compose-single b/bin/compose-single
deleted file mode 100755
index d9fe49e..0000000
--- a/bin/compose-single
+++ /dev/null
Binary files differ
diff --git a/bin/jsbundle b/bin/jsbundle
deleted file mode 100755
index c1bce8c..0000000
--- a/bin/jsbundle
+++ /dev/null
Binary files differ
diff --git a/bin/jsmin b/bin/jsmin
deleted file mode 100755
index fe78f98..0000000
--- a/bin/jsmin
+++ /dev/null
Binary files differ
diff --git a/dist/.well-known/assetlinks.json b/dist/.well-known/assetlinks.json
index feac8aa..feac8aa 100644..100755
--- a/dist/.well-known/assetlinks.json
+++ b/dist/.well-known/assetlinks.json
diff --git a/dist/_config.yml b/dist/_config.yml
index 68730c9..68730c9 100644..100755
--- a/dist/_config.yml
+++ b/dist/_config.yml
diff --git a/dist/assetlinks.json b/dist/assetlinks.json
index feac8aa..feac8aa 100644..100755
--- a/dist/assetlinks.json
+++ b/dist/assetlinks.json
diff --git a/dist/cache_name.txt b/dist/cache_name.txt
index 7b41b55..f5d6d52 100644..100755
--- a/dist/cache_name.txt
+++ b/dist/cache_name.txt
@@ -2,4 +2,4 @@
-///site-static-1.0.14.3-beta-7b41388|||
+///site-static-1.0.14.5-beta-47006bd|||
diff --git a/dist/css/bubbles.css b/dist/css/bubbles.css
index 8a19ff1..8a19ff1 100644..100755
--- a/dist/css/bubbles.css
+++ b/dist/css/bubbles.css
diff --git a/dist/css/fontawesome.min.css b/dist/css/fontawesome.min.css
index c197345..c197345 100644..100755
--- a/dist/css/fontawesome.min.css
+++ b/dist/css/fontawesome.min.css
diff --git a/dist/css/fullcalendar/core/main.min.css b/dist/css/fullcalendar/core/main.min.css
index 8948b53..8948b53 100644..100755
--- a/dist/css/fullcalendar/core/main.min.css
+++ b/dist/css/fullcalendar/core/main.min.css
diff --git a/dist/css/fullcalendar/custom.css b/dist/css/fullcalendar/custom.css
index 7b38b49..7b38b49 100644..100755
--- a/dist/css/fullcalendar/custom.css
+++ b/dist/css/fullcalendar/custom.css
diff --git a/dist/css/fullcalendar/daygrid/main.min.css b/dist/css/fullcalendar/daygrid/main.min.css
index 55a5724..55a5724 100644..100755
--- a/dist/css/fullcalendar/daygrid/main.min.css
+++ b/dist/css/fullcalendar/daygrid/main.min.css
diff --git a/dist/css/fullcalendar/timegrid/main.min.css b/dist/css/fullcalendar/timegrid/main.min.css
index a1abf91..a1abf91 100644..100755
--- a/dist/css/fullcalendar/timegrid/main.min.css
+++ b/dist/css/fullcalendar/timegrid/main.min.css
diff --git a/dist/css/materialicons.css b/dist/css/materialicons.css
index 6e24fe0..6e24fe0 100644..100755
--- a/dist/css/materialicons.css
+++ b/dist/css/materialicons.css
diff --git a/dist/css/materialize.min.css b/dist/css/materialize.min.css
index 74b1741..74b1741 100644..100755
--- a/dist/css/materialize.min.css
+++ b/dist/css/materialize.min.css
diff --git a/dist/css/styles.css b/dist/css/styles.css
index 0e11125..0e11125 100644..100755
--- a/dist/css/styles.css
+++ b/dist/css/styles.css
diff --git a/dist/directory.json b/dist/directory.json
index 6a50675..6a50675 100644..100755
--- a/dist/directory.json
+++ b/dist/directory.json
diff --git a/dist/favicon.png b/dist/favicon.png
index 5c1f4b1..5c1f4b1 100644..100755
--- a/dist/favicon.png
+++ b/dist/favicon.png
Binary files differ
diff --git a/dist/fonts/fa-brands-400.eot b/dist/fonts/fa-brands-400.eot
index baf4057..baf4057 100644..100755
--- a/dist/fonts/fa-brands-400.eot
+++ b/dist/fonts/fa-brands-400.eot
Binary files differ
diff --git a/dist/fonts/fa-brands-400.woff2 b/dist/fonts/fa-brands-400.woff2
index 51c07ae..51c07ae 100644..100755
--- a/dist/fonts/fa-brands-400.woff2
+++ b/dist/fonts/fa-brands-400.woff2
Binary files differ
diff --git a/dist/fonts/fa-regular-400.eot b/dist/fonts/fa-regular-400.eot
index 04e25cb..04e25cb 100644..100755
--- a/dist/fonts/fa-regular-400.eot
+++ b/dist/fonts/fa-regular-400.eot
Binary files differ
diff --git a/dist/fonts/fa-regular-400.woff2 b/dist/fonts/fa-regular-400.woff2
index a34bd65..a34bd65 100644..100755
--- a/dist/fonts/fa-regular-400.woff2
+++ b/dist/fonts/fa-regular-400.woff2
Binary files differ
diff --git a/dist/fonts/fa-solid-900.eot b/dist/fonts/fa-solid-900.eot
index 39716a7..39716a7 100644..100755
--- a/dist/fonts/fa-solid-900.eot
+++ b/dist/fonts/fa-solid-900.eot
Binary files differ
diff --git a/dist/fonts/fa-solid-900.woff2 b/dist/fonts/fa-solid-900.woff2
index b37f209..b37f209 100644..100755
--- a/dist/fonts/fa-solid-900.woff2
+++ b/dist/fonts/fa-solid-900.woff2
Binary files differ
diff --git a/dist/fonts/materialicons.woff2 b/dist/fonts/materialicons.woff2
index d9c6038..d9c6038 100644..100755
--- a/dist/fonts/materialicons.woff2
+++ b/dist/fonts/materialicons.woff2
Binary files differ
diff --git a/dist/img/avatars/asijanec.png b/dist/img/avatars/asijanec.png
index ccae7d0..ccae7d0 100644..100755
--- a/dist/img/avatars/asijanec.png
+++ b/dist/img/avatars/asijanec.png
Binary files differ
diff --git a/dist/img/avatars/rstular.png b/dist/img/avatars/rstular.png
index ff63a4f..ff63a4f 100644..100755
--- a/dist/img/avatars/rstular.png
+++ b/dist/img/avatars/rstular.png
Binary files differ
diff --git a/dist/img/flags/en.svg b/dist/img/flags/en.svg
index cd7d8a0..cd7d8a0 100644..100755
--- a/dist/img/flags/en.svg
+++ b/dist/img/flags/en.svg
diff --git a/dist/img/flags/sl.svg b/dist/img/flags/sl.svg
index e56ea1d..e56ea1d 100644..100755
--- a/dist/img/flags/sl.svg
+++ b/dist/img/flags/sl.svg
diff --git a/dist/img/icons/icon_144.png b/dist/img/icons/icon_144.png
index f575ac5..f575ac5 100644..100755
--- a/dist/img/icons/icon_144.png
+++ b/dist/img/icons/icon_144.png
Binary files differ
diff --git a/dist/img/icons/icon_192.png b/dist/img/icons/icon_192.png
index 8eaec9a..8eaec9a 100644..100755
--- a/dist/img/icons/icon_192.png
+++ b/dist/img/icons/icon_192.png
Binary files differ
diff --git a/dist/img/icons/icon_384.png b/dist/img/icons/icon_384.png
index 43bba8e..43bba8e 100644..100755
--- a/dist/img/icons/icon_384.png
+++ b/dist/img/icons/icon_384.png
Binary files differ
diff --git a/dist/img/icons/icon_48.png b/dist/img/icons/icon_48.png
index bedfa73..bedfa73 100644..100755
--- a/dist/img/icons/icon_48.png
+++ b/dist/img/icons/icon_48.png
Binary files differ
diff --git a/dist/img/icons/icon_512.png b/dist/img/icons/icon_512.png
index 65a4c48..65a4c48 100644..100755
--- a/dist/img/icons/icon_512.png
+++ b/dist/img/icons/icon_512.png
Binary files differ
diff --git a/dist/img/icons/icon_72.png b/dist/img/icons/icon_72.png
index 62280d6..62280d6 100644..100755
--- a/dist/img/icons/icon_72.png
+++ b/dist/img/icons/icon_72.png
Binary files differ
diff --git a/dist/img/icons/icon_96.png b/dist/img/icons/icon_96.png
index 5c1f4b1..5c1f4b1 100644..100755
--- a/dist/img/icons/icon_96.png
+++ b/dist/img/icons/icon_96.png
Binary files differ
diff --git a/dist/index.html b/dist/index.html
index 2a861a1..2a861a1 100644..100755
--- a/dist/index.html
+++ b/dist/index.html
diff --git a/dist/js/about.js b/dist/js/about.js
index cc12495..cc12495 100644..100755
--- a/dist/js/about.js
+++ b/dist/js/about.js
diff --git a/dist/js/absences.js b/dist/js/absences.js
index f6f4f7d..f6f4f7d 100644..100755
--- a/dist/js/absences.js
+++ b/dist/js/absences.js
diff --git a/dist/js/app.js b/dist/js/app.js
index d5eca86..53dfae0 100644..100755
--- a/dist/js/app.js
+++ b/dist/js/app.js
@@ -2,8 +2,8 @@
-const app_version = "1.0.14.3-beta";
-const previous_commit = "7b41388f8eb7be4e8250fe9f69194cf70f1a103b";
+const app_version = "1.0.14.5-beta";
+const previous_commit = "47006bdae8d53e0bb33110f149730962e5591f4d";
const BEZIAPP_UPDATE_INTERVAL = 300; // update vsakih 300 sekund
if ("serviceWorker" in navigator) {
diff --git a/dist/js/changelog.js b/dist/js/changelog.js
index d01d3b5..d01d3b5 100644..100755
--- a/dist/js/changelog.js
+++ b/dist/js/changelog.js
diff --git a/dist/js/chats.js b/dist/js/chats.js
index 7403d0c..7403d0c 100644..100755
--- a/dist/js/chats.js
+++ b/dist/js/chats.js
diff --git a/dist/js/grades.js b/dist/js/grades.js
index 5f9f9be..5f9f9be 100644..100755
--- a/dist/js/grades.js
+++ b/dist/js/grades.js
diff --git a/dist/js/gradings.js b/dist/js/gradings.js
index 713ea20..713ea20 100644..100755
--- a/dist/js/gradings.js
+++ b/dist/js/gradings.js
diff --git a/dist/js/gsec.js b/dist/js/gsec.js
index 59d95bf..59d95bf 100644..100755
--- a/dist/js/gsec.js
+++ b/dist/js/gsec.js
diff --git a/dist/js/initialize.js b/dist/js/initialize.js
index 1d9a5f6..1d9a5f6 100644..100755
--- a/dist/js/initialize.js
+++ b/dist/js/initialize.js
diff --git a/dist/js/jitsi.js b/dist/js/jitsi.js
index cc12495..cc12495 100644..100755
--- a/dist/js/jitsi.js
+++ b/dist/js/jitsi.js
diff --git a/dist/js/lang/bundle.js b/dist/js/lang/bundle.js
index adb8d97..d945e00 100644..100755
--- a/dist/js/lang/bundle.js
+++ b/dist/js/lang/bundle.js
@@ -7,4 +7,4 @@ async function setLangConfigAndReload(){let promises_to_run=[localforage.setItem
window.addEventListener("DOMContentLoaded",()=>{localforage.getItem("chosenLang").then((value)=>{if(value==null){setLangConfigAndReload();}else{chosenLang=value;}});refreshLangDOM();});const capitalize=(s)=>{if(typeof s!=='string')return''
return s.charAt(0).toUpperCase()+s.slice(1)}
var s=function(whatString){return getLang.s(whatString);};var d=function(whatString){return getLang.d(whatString);};var S=function(whatString){return getLang.S(whatString);};var D=function(whatString){return getLang.D(whatString);};var getLang={s:function(whatString){return langstrings[chosenLang][whatString];},S:function(whatString){return capitalize(langstrings[chosenLang][whatString]);},d:function(whatString){if(langstrings[chosenLang][whatString].slice(-1)!="."){return langstrings[chosenLang][whatString]+".";}else{return langstrings[chosenLang][whatString];}},D:function(whatString){if(langstrings[chosenLang][whatString].slice(-1)!="."){return capitalize(langstrings[chosenLang][whatString]+".");}else{return capitalize(langstrings[chosenLang][whatString]);}},}
-var langstrings={en:{miscTranslationLanguage:"English",miscTranslationAuthors:"Rok Štular","":"",monday:"monday",tuesday:"tuesday",wednesday:"wednesday",thursday:"thursday",friday:"friday",saturday:"saturday",sunday:"sunday",am:"am",pm:"pm",january:"january",february:"february",march:"march",april:"april",may:"may",june:"june",july:"july",august:"august",september:"september",october:"october",november:"november",december:"december",username:"username",password:"password",signIn:"sign in",bySigningInYouAgreeTo:"by signing in, you agree to",theToS:"the terms and conditions",and:"and",thePrivacyPolicy:"the privacy policy",loginFailed:"login failed",browserNotSupported:"bežiapp won't work on your device, unless you update your Internet browser",timetable:"timetable",gradings:"gradings",grades:"grades",teachers:"teachers",absences:"absences",messaging:"messaging",meals:"meals",about:"about",logout:"logout",settings:"settings",noPeriods:"no periods in selected week",date:"date",description:"description",add:"add",requestFailed:"request failed",addGrading:"add grading",noInternetConnection:"no internet connection",temporary:"temporary",useOnlyPermanentGrades:"use only permanent grades",useOnlyPermanentGradesNote1:"if checked, only permanent grades will be used in the average grade calculation",useOnlyPermanentGradesNote2:"if left unchecked, the calculation will include every available grade",type:"type",term:"term",teacher:"teacher",zakljucneGradess:"grades in red are final grades that appear on your end-of-year certificate and are decided by your teacher. They are not averages like grades in black. Should you have any questions or complaints about them, contact your teacher",name:"name",schoolSubject:"subject",tpMeetings:"TP meetings",from:"from",to:"to",cancel:"cancel",ok:"ok",noAbsences:"no absences in the chosen time period",lesson:"lesson",notProcessed:"not processed",authorizedAbsence:"authorized",unauthorizedAbsence:"unauthorized",doesNotCount:"does not count",loadingMessages:"Loading messages...",sendAMessage:"send a message",send:"send",recipient:"recipient",messageSubject:"subject",messageBody:"message body",removeImages:"remove images",note:"note",largeImagesNote:"GimB servers don't like large messages, so only very small images may be attached or your message will not be delivered",attachedImages:"attached images",encryptMessage:"Encrypt message",passwordForE2EE:"password for encrypting the message",messages:"messages",received:"received",sent:"sent",deleted:"deleted",messageStorageUsed:"message storage used in this folder",maxMessagesNote:"you can only have 120 messages per message folder, older messages will not be shown. Remember to delete read and sent messages regulary to avoid any issues.",loadMessageBody:"load message body",thisMessageWasEncrypted:"this message was encrypted",enterPassword:"enter password",decrypt:"decrypt",nameDirectoryNotSet:"name directory not set, sending unavailable",errorFetchingMessages:"error fetching messages",unableToReceiveTheMessage:"unable to receive the message",unableToDeleteTheMessage:"unable to delete the message",messageWasProbablySent:"message was probably sent, check the Sent folder to be sure",errorSendingMessage:"error sending message",imageAddedAsAnAttachment:"image added as an attachment",unableToReadDirectory:"unable to read directory of people",messageCouldNotBeSent:"message could to be sent",incorrectPassword:"incorrect password",chat:"chat",chattingWith:"chatting with",noMessages:"no messages",stillLoading:"loading is still in progress",directory:"directory",select:"select",mustSelectRecipient:"you have to select a recipient before chatting. Open directory on the left side by clicking on the top left addressbook button and select a recipient in order to start chatting with them",recipientNotInDirectory:"recipient is not in directory.",chatExternalInfo:"you have just received a chat. Chats are not supported by GimSIS, so you must reply by changing the subject to something else. Chat body: ",loginError:"login error",loginToLopolis:"login to Lopolis",loginToLopolisNote:"it seems like you're not currently logged in to eRestavracija, so this form has been presented to you. You have a different username and password combination used for applying and opting out of of menus. In order to use this feature, you have to log in with your Lopolis account.",logInToLopolis:"log in to Lopolis",logOutFromLopolis:"log out from Lopolis",readOnly:"read only",usage:"usage",mealsUsageNote:"click on a date to open the collapsible menu with choices and click on a specific meal to select it. Reload the meals when you're done and check the entries.",lunchesNote:"app was not tested with lunches in mind. Meals probably won't work with lunches and having a lunch subscription may even break its functionality.",mealNotShownNote:"if a meal is not present in the meals collapsible field, this does not necessarily mean it does not exist. Meals that haven't been altered by you and are unchangable (read-only) are not shown for clarity.",mealsContributeNote:"you are welcome to contribute to the LopolisAPI project and add features, such as checkouts.",authenticationError:"authentication error",lopolisAPIConnectionError:"LopolisAPI server connection error",errorGettingMenus:"error getting menus",errorUnexpectedResponse:"error: unexpected response",requestForAuthenticationFailed:"request for authentication failed",credentialsMatch:"credentials match",errorSettingMeals:"error setting meals",mealSet:"meal set! Reload meals to be sure",selected:"selected",version:"version",authors:"authors",translatorsForThisLanguage:"translators for this language",whatIsNew:"what's new",whatsNew:"what's new",reportABug:"report a bug",sendASuggestion:"send a suggestion",instagram:"instagram",changelog:"changelog",termsOfUse:"terms of use",termsOfUseDescription:"as a condition of use, you promise not to use the BežiApp (App or application) and its related infrastructure (API, hosting service) for any purpose that is unlawful or prohibited by these Terms, or any other purpose not reasonably intended by the authors of the App. By way of example, and not as a limitation, you agree not to use the App",termsOfUseHarass:"to abuse, harass, threaten, impersonate or intimidate any person",termsOfUsePost:"to post or transmit, or cause to be posted or transmitted, any Content that is libelous, defamatory, obscene, pornographic, abusive, offensive, profane or that infringes any copyright or other right of any person",termsOfUseCommunicate:"to communicate with the App developers or other users in abusive or offensive manner",termsOfUsePurpose:"for any purpose that is not permitted under the laws of the jurisdiction where you use the App",termsOfUseExploit:"to post or transmit, or cause to be posted or transmitted, any Communication designed or intended to obtain password, account or private information of any App user",termsOfUseSpam:"to create or transmit unwanted “spam” to any person or any URL",termsOfUseModify:"you may also not reverse engineer, modify or redistribute the app without written consent from the developers",terminationOfServices:"termination of services",terminationOfServicesDescriptions:"the developers of the App may terminate your access to the App without any prior warning or notice for any of the following reasons",terminationOfServicesBreaching:"breaching the Terms of Service",terminationOfServicesRequest:"receiving a formal request from authorities of Gimnazija Bežigrad administration requesting termination of your access to the App",limitationOfLiability:"limitation of Liability",limitationOfLiabilityContent:"the developers of the App provide no warranty; You expressly acknowledge and agree that the use of the licensed application is at your sole risk. To the maximum extent permited by applicable law, the licensed application and any services performed of provided by the licensed application are provided “as is” and “as available”, with all faults and without warranty of any kind, and licensor hereby disclaims all warranties and conditions with respect to the licensed application and any services, either express, implied or statutory, including, but not limited to, the implied warranties and/or conditions of merchantability, of satisfactory quality, of fitness for a particular purpose, of accuracy, of quiet enjoyment, and of noninfringement of third-party rights. No oral or written information or advice given by licensor or its authorized representative shall create a warranty. Should the licensed application or services prove defective, you assume the entire cost of all necessary servicing, repair or correction. Some jurisdictions do not allow the exclusion of the implied warranties or limitations on applicable statutory rights of a customer, so the above exclusion may not apply to you.",tosAreEffectiveAsOf:"the Terms of Service are effective as of",privacyImportant:"your privacy is important to us. It is the developers' policy to respect your privacy regarding any information we may collect from you through our app, BežiApp.",privacyOnlyAskedWhen:"we only ask for personal information when we truly need it to provide a service to you. We collect it by fair and lawful means, with your knowledge and consent. We also let you know why we’re collecting it and how it will be used.",privacyDataCollection:"we only retain collected information for as long as necessary to provide you with your requested service. What data we store, we’ll protect within commercially acceptable means to prevent loss and theft, as well as unauthorized access, disclosure, copying, use or modification.",privacySharingData:"we don’t share any personally identifying information publicly or with third-parties, except when required to by law",privacyExternalSites:"our app may link to external sites that are not operated by us. Please be aware that we have no control over the content and practices of these sites, and cannot accept responsibility or liability for their respective privacy policies.",privacyRefuse:"you are free to refuse our request for your personal information, with the understanding that we may be unable to provide you with some of your desired services.",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:"language",selectLanguage:"select desired language",languageSet:"language set, open another page for the changes to take effect",theme:"theme",themeLight:"light theme (default)",themeDark:"dark theme",themeNight:"night theme",selectTheme:"select a theme",triggerWarning:"the following switch enables additional settings, which some people may: disagree with, find annoying, be offended by them. By enabling the switch, you agree that you won't be triggered by any of the additional options and will not asociate any of the authors and/or their personal beliefs and opinions with additional options.",triggerAgreement:"i agree with terms and conditions stated above",triggerWarningSet:"additional settings toggled",additionalOptions:"additional settings",themeSet:"theme set, open another page for the changes to take effect",errorReportingSet:"error reporting preference set",errorReporting:"error reporting",on:"on",off:"off",selectErrorReporting:"should error reports be submitted to the developers?",gsecErrNet:"GimSIS connection error",gsecErrLogin:"GimSIS login error (bad password?), try logging out",gsecErrOther:"GimSIS unknown error, try logging out",videoconferences:"GimB meet"},sl:{miscTranslationLanguage:"slovenščina",miscTranslationAuthors:"Anton Luka Šijanec","":"",monday:"ponedeljek",tuesday:"torek",wednesday:"sreda",thursday:"četrtek",friday:"petek",saturday:"sobota",sunday:"nedelja",am:"dop.",pm:"pop.",january:"januar",february:"februar",march:"marec",april:"april",may:"maj",june:"junij",july:"julij",august:"avgust",september:"september",october:"oktober",november:"november",december:"december",username:"uporabniško ime",password:"geslo",signIn:"prijava",bySigningInYouAgreeTo:"s prijavo se strinjate s",theToS:"pogoji uporabe (v angleščini)",and:"in",thePrivacyPolicy:"politika zasebnosti (v angleščini)",loginFailed:"prijava je spodletela",browserNotSupported:"BežiApp ne bo deloval na vaši napravi, če ne posodobite vašega Internetnega brskalnika",noPeriods:"ni ur v izbranem tednu",timetable:"urnik",gradings:"ocenjevanja",grades:"ocene",teachers:"profesorji",absences:"izostanki",messaging:"sporočanje",meals:"obroki",about:"o",logout:"odjava",settings:"nastavitve",date:"datum",description:"opis",add:"dodaj",requestFailed:"zahteva spodletela",addGrading:"dodaj ocenjevanje",noInternetConnection:"ni povezave s spletom",temporary:"začasno",useOnlyPermanentGrades:"uporabi le stalne ocene",useOnlyPermanentGradesNote1:"če je označeno, bodo za izračun povprečja uporabljene le stalne ocene",useOnlyPermanentGradesNote2:"če pa je polje neoznačeno, pa se ob izračunu povprečne ocene upoštevajo vse ocene",type:"tip",term:"rok",teacher:"profesor",zakljucneGradess:"zaključne ocene, ki bodo na spričevalu, so označene z rdečo, povprečja ocen pa so v črni barvi. V kolikor imate kakršnekoli pritožbe ali vprašanja glede zaključnih ocen, povprašajte profesorja",name:"ime",schoolSubject:"predmet",tpMeetings:"govorilne ure",from:"od",to:"do",cancel:"prekliči",ok:"v redu",noAbsences:"ni izostankov v izbranem časovnem obdobju",lesson:"ura",notProcessed:"ni obdelano",authorizedAbsence:"opravičeno",unauthorizedAbsence:"neopravičeno",doesNotCount:"ne šteje",loadingMessages:"Nalagam sporočila...",sendAMessage:"pošlji sporočilo",send:"pošlji",recipient:"prejemnik",messageSubject:"zadeva",messageBody:"telo",removeImages:"odstrani slike",note:"opomba",largeImagesNote:"GimB strežniki ne marajo velikih sporočil, zato lahko pošiljate le zelo majhne slike, v nasprotnem primeru sporočilo ne bo dostavljeno",attachedImages:"pripete slike",encryptMessage:"Šifriraj sporočilo",passwordForE2EE:"geslo za šifriranje sporočila",messages:"sporočila",received:"prejeta",sent:"poslana",deleted:"izbrisana",messageStorageUsed:"zasedenost shrambe sporočil v tej mapi",maxMessagesNote:"v vsaki mapi imate lahko največ 120 sporočil. Starejša sporočila ne bodo prikazana. Redno brišite sporočila, da se izognete morebitnim težavam.",loadMessageBody:"naloži telo sporočila",thisMessageWasEncrypted:"to sporočilo je šifrirano",enterPassword:"vnesite geslo",decrypt:"dešifriraj",nameDirectoryNotSet:"imenik ni nastavljen, pošiljanje ni mogoče",errorFetchingMessages:"sporočil ni bilo mogoče prenesti",unableToReceiveTheMessage:"sporočila ni bilo mogoče prenesti",unableToDeleteTheMessage:"sporočila ni bilo mogoče izbrisati",messageWasProbablySent:"sporočilo je bilo verjetno poslano, prepričajte se in preverite mapo s poslanimi sporočili",errorSendingMessage:"sporočila ni bilo mogoče poslati",imageAddedAsAnAttachment:"slika dodana kot priloga",unableToReadDirectory:"imenika ni bilo mogoče prebrati",messageCouldNotBeSent:"sporočila ni bilo mogoče poslati",incorrectPassword:"nepravilno geslo",chat:"klepet",chattingWith:"klepet z osebo",noMessages:"ni sporočil",stillLoading:"nalaganje še poteka",directory:"imenik",select:"izberi",mustSelectRecipient:"pred klepetom morate izbrati sogovornika. Odprite imenik (meni na levi strani) s pritiskom na gumb \"imenik\" zgoraj desno in izberite sogovornika.",recipientNotInDirectory:"izbrane osebe ni v imeniku",chatExternalInfo:"dobili ste kratko sporočilo v standardu, ki ga GimSIS ne podpira. Pri odgovarjanju spremenite zadevo. Vsebina sporočila: ",loginError:"napaka pri prijavi",loginToLopolis:"prijava v Lopolis",loginToLopolisNote:"izgleda, da niste prijavljeni v eRestavracijo, zato se vam je prikazal prijavni obrazec. Za uporavljanje s prehrano se uporablja druga kombinacija uporabniškega imena in gesla, zato se prijavite s svojimi Lopolis prijavnimi podatki za nadaljevanje.",logInToLopolis:"prijava v Lopolis",logOutFromLopolis:"odjava iz Lopolisa",readOnly:"samo za branje",usage:"uporaba",mealsUsageNote:"kliknite na datum za prikaz menijev, nato pa si enega izberite s klikom na ime menija. Po nastavitvi menijev ponovno naložite menije in se prepričajte o pravilnih nastavitvah.",lunchesNote:"aplikacija ni testirana za naročanje na koslila, zato verjetno to ne deluje. Če ste naročeni na kosila lahko naročanje na menije sploh ne deluje ali pa deluje narobe.",mealNotShownNote:"če nek dan manjka med meniji, to verjetno pomeni, da ni več spremenljiv in zanj niste ročno spremenili menija",mealsContributeNote:"vabimo vas k urejanju LopolisAPI programa za upravljanje z meniji.",authenticationError:"napaka avtentikacije",lopolisAPIConnectionError:"napaka povezave na LopolisAPI strežnik",errorGettingMenus:"napaka branja menijev",errorUnexpectedResponse:"napaka: nepričakovan odgovor",requestForAuthenticationFailed:"zahteva za avtentikacijo ni uspela",credentialsMatch:"prijavni podatki so pravilni",errorSettingMeals:"napaka pri nastavljanju menijev",mealSet:"obrok nastavljen! osvežite obroke in se prepričajte sami",selected:"izbrano",version:"različica",authors:"avtorji",translatorsForThisLanguage:"prevajalci izbranega jezika",whatIsNew:"kaj je novega",whatsNew:"kaj je novega",reportABug:"prijavite napako",sendASuggestion:"pošljite pripombo/predlog/pohvalo/pritožbo",instagram:"instagram",changelog:"dnevnik sprememb",termsOfUse:"terms of use",termsOfUseDescription:"as a condition of use, you promise not to use the BežiApp (App or application) and its related infrastructure (API, hosting service) for any purpose that is unlawful or prohibited by these Terms, or any other purpose not reasonably intended by the authors of the App. By way of example, and not as a limitation, you agree not to use the App",termsOfUseHarass:"to abuse, harass, threaten, impersonate or intimidate any person",termsOfUsePost:"to post or transmit, or cause to be posted or transmitted, any Content that is libelous, defamatory, obscene, pornographic, abusive, offensive, profane or that infringes any copyright or other right of any person",termsOfUseCommunicate:"to communicate with the App developers or other users in abusive or offensive manner",termsOfUsePurpose:"for any purpose that is not permitted under the laws of the jurisdiction where you use the App",termsOfUseExploit:"to post or transmit, or cause to be posted or transmitted, any Communication designed or intended to obtain password, account or private information of any App user",termsOfUseSpam:"to create or transmit unwanted “spam” to any person or any URL",termsOfUseModify:"you may also not reverse engineer, modify or redistribute the app without written consent from the developers",terminationOfServices:"termination of services",terminationOfServicesDescriptions:"the developers of the App may terminate your access to the App without any prior warning or notice for any of the following reasons",terminationOfServicesBreaching:"breaching the Terms of Service",terminationOfServicesRequest:"receiving a formal request from authorities of Gimnazija Bežigrad administration requesting termination of your access to the App",limitationOfLiability:"limitation of Liability",limitationOfLiabilityContent:"the developers of the App provide no warranty; You expressly acknowledge and agree that the use of the licensed application is at your sole risk. To the maximum extent permited by applicable law, the licensed application and any services performed of provided by the licensed application are provided “as is” and “as available”, with all faults and without warranty of any kind, and licensor hereby disclaims all warranties and conditions with respect to the licensed application and any services, either express, implied or statutory, including, but not limited to, the implied warranties and/or conditions of merchantability, of satisfactory quality, of fitness for a particular purpose, of accuracy, of quiet enjoyment, and of noninfringement of third-party rights. No oral or written information or advice given by licensor or its authorized representative shall create a warranty. Should the licensed application or services prove defective, you assume the entire cost of all necessary servicing, repair or correction. Some jurisdictions do not allow the exclusion of the implied warranties or limitations on applicable statutory rights of a customer, so the above exclusion may not apply to you.",tosAreEffectiveAsOf:"the Terms of Service are effective as of",privacyImportant:"your privacy is important to us. It is the developers' policy to respect your privacy regarding any information we may collect from you through our app, BežiApp.",privacyOnlyAskedWhen:"we only ask for personal information when we truly need it to provide a service to you. We collect it by fair and lawful means, with your knowledge and consent. We also let you know why we’re collecting it and how it will be used.",privacyDataCollection:"we only retain collected information for as long as necessary to provide you with your requested service. What data we store, we’ll protect within commercially acceptable means to prevent loss and theft, as well as unauthorized access, disclosure, copying, use or modification.",privacySharingData:"we don’t share any personally identifying information publicly or with third-parties, except when required to by law",privacyExternalSites:"our app may link to external sites that are not operated by us. Please be aware that we have no control over the content and practices of these sites, and cannot accept responsibility or liability for their respective privacy policies.",privacyRefuse:"you are free to refuse our request for your personal information, with the understanding that we may be unable to provide you with some of your desired services.",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:"izberite željen jezik",languageSet:"jezik nastavljen, odprite neko drugo stran da se pokažejo spremembe",theme:"izgled",themeLight:"svetel izgled (privzeto)",themeDark:"temen izgled",themeNight:"nočni izgled",themeSet:"izgled nastavljen, odprite neko drugo stran da se spremembe uveljavijo",selectTheme:"izberite željen izgled",errorReportingSet:"nastavitev pošiljanja napak izbrana",errorReporting:"pošiljanje napak",on:"vklopljeno",off:"izklopljeno",selectErrorReporting:"ali naj so napake v aplikaciji posredovane razvijalcem?",triggerWarning:"spodnji gumb omogoči dodatne možnosti, ki lahko razburijo/vznevoljijo nekatere uporabnike. Če omogočite stikalo, se strinjate, da avtorjev in/ali njihovih osebnih prepričanj ne boste povezovali s katerokoli od dodatnih omogočenih možnosti",triggerAgreement:"strinjam se z zgoraj navedenimi pogoji",triggerWarningSet:"spremenili ste stanje dodatnih nastavitev",additionalOptions:"dodatne nastavitve",gsecErrNet:"napaka povezave na GimSIS",gsecErrLogin:"prijava v GimSIS ni uspela (napačno geslo?), poskusite se odjaviti",gsecErrOther:"neznana napaka GimSISa, poskusite se odjaviti",videoconferences:"GimB konference"}} \ No newline at end of file
+var langstrings={en:{miscTranslationLanguage:"English",miscTranslationAuthors:"Rok Štular","":"",monday:"monday",tuesday:"tuesday",wednesday:"wednesday",thursday:"thursday",friday:"friday",saturday:"saturday",sunday:"sunday",am:"am",pm:"pm",january:"january",february:"february",march:"march",april:"april",may:"may",june:"june",july:"july",august:"august",september:"september",october:"october",november:"november",december:"december",username:"username",password:"password",signIn:"sign in",bySigningInYouAgreeTo:"by signing in, you agree to",theToS:"the terms and conditions",and:"and",thePrivacyPolicy:"the privacy policy",loginFailed:"login failed",browserNotSupported:"bežiapp won't work on your device, unless you update your Internet browser",timetable:"timetable",gradings:"gradings",grades:"grades",teachers:"teachers",absences:"absences",messaging:"messaging",meals:"meals",about:"about",logout:"logout",settings:"settings",noPeriods:"no periods in selected week",date:"date",description:"description",add:"add",requestFailed:"request failed",addGrading:"add grading",noInternetConnection:"no internet connection",temporary:"temporary",useOnlyPermanentGrades:"use only permanent grades",useOnlyPermanentGradesNote1:"if checked, only permanent grades will be used in the average grade calculation",useOnlyPermanentGradesNote2:"if left unchecked, the calculation will include every available grade",type:"type",term:"term",teacher:"teacher",zakljucneGradess:"grades in red are final grades that appear on your end-of-year certificate and are decided by your teacher. They are not averages like grades in black. Should you have any questions or complaints about them, contact your teacher",name:"name",schoolSubject:"subject",tpMeetings:"TP meetings",from:"from",to:"to",cancel:"cancel",ok:"ok",noAbsences:"no absences in the chosen time period",lesson:"lesson",notProcessed:"not processed",authorizedAbsence:"authorized",unauthorizedAbsence:"unauthorized",doesNotCount:"does not count",loadingMessages:"Loading messages...",sendAMessage:"send a message",send:"send",recipient:"recipient",messageSubject:"subject",messageBody:"message body",removeImages:"remove images",note:"note",largeImagesNote:"GimB servers don't like large messages, so only very small images may be attached or your message will not be delivered",attachedImages:"attached images",encryptMessage:"Encrypt message",passwordForE2EE:"password for encrypting the message",messages:"messages",received:"received",sent:"sent",deleted:"deleted",messageStorageUsed:"message storage used in this folder",maxMessagesNote:"you can only have 120 messages per message folder, older messages will not be shown. Remember to delete read and sent messages regulary to avoid any issues.",loadMessageBody:"load message body",thisMessageWasEncrypted:"this message was encrypted",enterPassword:"enter password",decrypt:"decrypt",nameDirectoryNotSet:"name directory not set, sending unavailable",errorFetchingMessages:"error fetching messages",unableToReceiveTheMessage:"unable to receive the message",unableToDeleteTheMessage:"unable to delete the message",messageWasProbablySent:"message was probably sent, check the Sent folder to be sure",errorSendingMessage:"error sending message",imageAddedAsAnAttachment:"image added as an attachment",unableToReadDirectory:"unable to read directory of people",messageCouldNotBeSent:"message could to be sent",incorrectPassword:"incorrect password",chat:"chat",chattingWith:"chatting with",noMessages:"no messages",stillLoading:"loading is still in progress",directory:"directory",select:"select",mustSelectRecipient:"you have to select a recipient before chatting. Open directory on the left side by clicking on the top left addressbook button and select a recipient in order to start chatting with them",recipientNotInDirectory:"recipient is not in directory.",chatExternalInfo:"you have just received a chat. Chats are not supported by GimSIS, so you must reply by changing the subject to something else. Chat body: ",loginError:"login error",loginToLopolis:"login to Lopolis",loginToLopolisNote:"it seems like you're not currently logged in to eRestavracija, so this form has been presented to you. You have a different username and password combination used for applying and opting out of of menus. In order to use this feature, you have to log in with your Lopolis account.",logInToLopolis:"log in to Lopolis",logOutFromLopolis:"log out from Lopolis",readOnly:"read only",usage:"usage",mealsUsageNote:"click on a date to open the collapsible menu with choices and click on a specific meal to select it. Reload the meals when you're done and check the entries.",lunchesNote:"app was not tested with lunches in mind. Meals probably won't work with lunches and having a lunch subscription may even break its functionality.",mealNotShownNote:"if a meal is not present in the meals collapsible field, this does not necessarily mean it does not exist. Meals that haven't been altered by you and are unchangable (read-only) are not shown for clarity.",mealsContributeNote:"you are welcome to contribute to the LopolisAPI project and add features, such as checkouts.",authenticationError:"authentication error",lopolisAPIConnectionError:"LopolisAPI server connection error",errorGettingMenus:"error getting menus",errorUnexpectedResponse:"error: unexpected response",requestForAuthenticationFailed:"request for authentication failed",credentialsMatch:"credentials match",errorSettingMeals:"error setting meals",mealSet:"meal set! Reload meals to be sure",selected:"selected",version:"version",authors:"authors",translatorsForThisLanguage:"translators for this language",whatIsNew:"what's new",whatsNew:"what's new",reportABug:"report a bug",sendASuggestion:"send a suggestion",instagram:"instagram",changelog:"changelog",termsOfUse:"terms of use",termsOfUseDescription:"as a condition of use, you promise not to use the BežiApp (App or application) and its related infrastructure (API, hosting service) for any purpose that is unlawful or prohibited by these Terms, or any other purpose not reasonably intended by the authors of the App. By way of example, and not as a limitation, you agree not to use the App",termsOfUseHarass:"to abuse, harass, threaten, impersonate or intimidate any person",termsOfUsePost:"to post or transmit, or cause to be posted or transmitted, any Content that is libelous, defamatory, obscene, pornographic, abusive, offensive, profane or that infringes any copyright or other right of any person",termsOfUseCommunicate:"to communicate with the App developers or other users in abusive or offensive manner",termsOfUsePurpose:"for any purpose that is not permitted under the laws of the jurisdiction where you use the App",termsOfUseExploit:"to post or transmit, or cause to be posted or transmitted, any Communication designed or intended to obtain password, account or private information of any App user",termsOfUseSpam:"to create or transmit unwanted “spam” to any person or any URL",termsOfUseModify:"you may also not reverse engineer, modify or redistribute the app without written consent from the developers",terminationOfServices:"termination of services",terminationOfServicesDescriptions:"the developers of the App may terminate your access to the App without any prior warning or notice for any of the following reasons",terminationOfServicesBreaching:"breaching the Terms of Service",terminationOfServicesRequest:"receiving a formal request from authorities of Gimnazija Bežigrad administration requesting termination of your access to the App",limitationOfLiability:"limitation of Liability",limitationOfLiabilityContent:"the developers of the App provide no warranty; You expressly acknowledge and agree that the use of the licensed application is at your sole risk. To the maximum extent permited by applicable law, the licensed application and any services performed of provided by the licensed application are provided “as is” and “as available”, with all faults and without warranty of any kind, and licensor hereby disclaims all warranties and conditions with respect to the licensed application and any services, either express, implied or statutory, including, but not limited to, the implied warranties and/or conditions of merchantability, of satisfactory quality, of fitness for a particular purpose, of accuracy, of quiet enjoyment, and of noninfringement of third-party rights. No oral or written information or advice given by licensor or its authorized representative shall create a warranty. Should the licensed application or services prove defective, you assume the entire cost of all necessary servicing, repair or correction. Some jurisdictions do not allow the exclusion of the implied warranties or limitations on applicable statutory rights of a customer, so the above exclusion may not apply to you.",tosAreEffectiveAsOf:"the Terms of Service are effective as of",privacyImportant:"your privacy is important to us. It is the developers' policy to respect your privacy regarding any information we may collect from you through our app, BežiApp.",privacyOnlyAskedWhen:"we only ask for personal information when we truly need it to provide a service to you. We collect it by fair and lawful means, with your knowledge and consent. We also let you know why we’re collecting it and how it will be used.",privacyDataCollection:"we only retain collected information for as long as necessary to provide you with your requested service. What data we store, we’ll protect within commercially acceptable means to prevent loss and theft, as well as unauthorized access, disclosure, copying, use or modification.",privacySharingData:"we don’t share any personally identifying information publicly or with third-parties, except when required to by law",privacyExternalSites:"our app may link to external sites that are not operated by us. Please be aware that we have no control over the content and practices of these sites, and cannot accept responsibility or liability for their respective privacy policies.",privacyRefuse:"you are free to refuse our request for your personal information, with the understanding that we may be unable to provide you with some of your desired services.",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:"language",selectLanguage:"select desired language",languageSet:"language set, open another page for the changes to take effect",theme:"theme",themeLight:"light theme (default)",themeDark:"dark theme",themeNight:"night theme",selectTheme:"select a theme",triggerWarning:"the following switch enables additional settings, which some people may: disagree with, find annoying, be offended by them. By enabling the switch, you agree that you won't be triggered by any of the additional options and will not asociate any of the authors and/or their personal beliefs and opinions with additional options.",triggerAgreement:"i agree with terms and conditions stated above",triggerWarningSet:"additional settings toggled",additionalOptions:"additional settings",themeSet:"theme set, open another page for the changes to take effect",errorReportingSet:"error reporting preference set",errorReporting:"error reporting",on:"on",off:"off",selectErrorReporting:"should error reports be submitted to the developers?",gsecErrNet:"GimSIS connection error",gsecErrLogin:"GimSIS login error (bad password?), try logging out",gsecErrOther:"GimSIS unknown error, try logging out",videoconferences:"GimB meet"},sl:{miscTranslationLanguage:"slovenščina",miscTranslationAuthors:"Anton Luka Šijanec","":"",monday:"ponedeljek",tuesday:"torek",wednesday:"sreda",thursday:"četrtek",friday:"petek",saturday:"sobota",sunday:"nedelja",am:"dop.",pm:"pop.",january:"januar",february:"februar",march:"marec",april:"april",may:"maj",june:"junij",july:"julij",august:"avgust",september:"september",october:"oktober",november:"november",december:"december",username:"uporabniško ime",password:"geslo",signIn:"prijava",bySigningInYouAgreeTo:"s prijavo se strinjate s",theToS:"pogoji uporabe (v angleščini)",and:"in",thePrivacyPolicy:"politika zasebnosti (v angleščini)",loginFailed:"prijava je spodletela",browserNotSupported:"BežiApp ne bo deloval na vaši napravi, če ne posodobite vašega Internetnega brskalnika",noPeriods:"ni ur v izbranem tednu",timetable:"urnik",gradings:"ocenjevanja",grades:"ocene",teachers:"profesorji",absences:"izostanki",messaging:"sporočanje",meals:"obroki",about:"o",logout:"odjava",settings:"nastavitve",date:"datum",description:"opis",add:"dodaj",requestFailed:"zahteva spodletela",addGrading:"dodaj ocenjevanje",noInternetConnection:"ni povezave s spletom",temporary:"začasno",useOnlyPermanentGrades:"uporabi le stalne ocene",useOnlyPermanentGradesNote1:"če je označeno, bodo za izračun povprečja uporabljene le stalne ocene",useOnlyPermanentGradesNote2:"če pa je polje neoznačeno, pa se ob izračunu povprečne ocene upoštevajo vse ocene",type:"tip",term:"rok",teacher:"profesor",zakljucneGradess:"zaključne ocene, ki bodo na spričevalu, so označene z rdečo, povprečja ocen pa so v črni barvi. V kolikor imate kakršnekoli pritožbe ali vprašanja glede zaključnih ocen, povprašajte profesorja",name:"ime",schoolSubject:"predmet",tpMeetings:"govorilne ure",from:"od",to:"do",cancel:"prekliči",ok:"v redu",noAbsences:"ni izostankov v izbranem časovnem obdobju",lesson:"ura",notProcessed:"ni obdelano",authorizedAbsence:"opravičeno",unauthorizedAbsence:"neopravičeno",doesNotCount:"ne šteje",loadingMessages:"Nalagam sporočila...",sendAMessage:"pošlji sporočilo",send:"pošlji",recipient:"prejemnik",messageSubject:"zadeva",messageBody:"telo",removeImages:"odstrani slike",note:"opomba",largeImagesNote:"GimB strežniki ne marajo velikih sporočil, zato lahko pošiljate le zelo majhne slike, v nasprotnem primeru sporočilo ne bo dostavljeno",attachedImages:"pripete slike",encryptMessage:"Šifriraj sporočilo",passwordForE2EE:"geslo za šifriranje sporočila",messages:"sporočila",received:"prejeta",sent:"poslana",deleted:"izbrisana",messageStorageUsed:"zasedenost shrambe sporočil v tej mapi",maxMessagesNote:"v vsaki mapi imate lahko največ 120 sporočil. Starejša sporočila ne bodo prikazana. Redno brišite sporočila, da se izognete morebitnim težavam.",loadMessageBody:"naloži telo sporočila",thisMessageWasEncrypted:"to sporočilo je šifrirano",enterPassword:"vnesite geslo",decrypt:"dešifriraj",nameDirectoryNotSet:"imenik ni nastavljen, pošiljanje ni mogoče",errorFetchingMessages:"sporočil ni bilo mogoče prenesti",unableToReceiveTheMessage:"sporočila ni bilo mogoče prenesti",unableToDeleteTheMessage:"sporočila ni bilo mogoče izbrisati",messageWasProbablySent:"sporočilo je bilo verjetno poslano, prepričajte se in preverite mapo s poslanimi sporočili",errorSendingMessage:"sporočila ni bilo mogoče poslati",imageAddedAsAnAttachment:"slika dodana kot priloga",unableToReadDirectory:"imenika ni bilo mogoče prebrati",messageCouldNotBeSent:"sporočila ni bilo mogoče poslati",incorrectPassword:"nepravilno geslo",chat:"klepet",chattingWith:"klepet z osebo",noMessages:"ni sporočil",stillLoading:"nalaganje še poteka",directory:"imenik",select:"izberi",mustSelectRecipient:"pred klepetom morate izbrati sogovornika. Odprite imenik (meni na levi strani) s pritiskom na gumb \"imenik\" zgoraj desno in izberite sogovornika.",recipientNotInDirectory:"izbrane osebe ni v imeniku",chatExternalInfo:"dobili ste kratko sporočilo v standardu, ki ga GimSIS ne podpira. Pri odgovarjanju spremenite zadevo. Vsebina sporočila: ",loginError:"napaka pri prijavi",loginToLopolis:"prijava v Lopolis",loginToLopolisNote:"izgleda, da niste prijavljeni v eRestavracijo, zato se vam je prikazal prijavni obrazec. Za uporavljanje s prehrano se uporablja druga kombinacija uporabniškega imena in gesla, zato se prijavite s svojimi Lopolis prijavnimi podatki za nadaljevanje.",logInToLopolis:"prijava v Lopolis",logOutFromLopolis:"odjava iz Lopolisa",readOnly:"samo za branje",usage:"uporaba",mealsUsageNote:"kliknite na datum za prikaz menijev, nato pa si enega izberite s klikom na ime menija. Po nastavitvi menijev ponovno naložite menije in se prepričajte o pravilnih nastavitvah.",lunchesNote:"aplikacija ni testirana za naročanje na kosila, zato verjetno to ne deluje. Če ste naročeni na kosila lahko naročanje na menije sploh ne deluje ali pa deluje narobe.",mealNotShownNote:"če nek dan manjka med meniji, to verjetno pomeni, da ni več spremenljiv in zanj niste ročno spremenili menija",mealsContributeNote:"vabimo vas k urejanju LopolisAPI programa za upravljanje z meniji.",authenticationError:"napaka avtentikacije",lopolisAPIConnectionError:"napaka povezave na LopolisAPI strežnik",errorGettingMenus:"napaka branja menijev",errorUnexpectedResponse:"napaka: nepričakovan odgovor",requestForAuthenticationFailed:"zahteva za avtentikacijo ni uspela",credentialsMatch:"prijavni podatki so pravilni",errorSettingMeals:"napaka pri nastavljanju menijev",mealSet:"obrok nastavljen! osvežite obroke in se prepričajte sami",selected:"izbrano",version:"različica",authors:"avtorji",translatorsForThisLanguage:"prevajalci izbranega jezika",whatIsNew:"kaj je novega",whatsNew:"kaj je novega",reportABug:"prijavite napako",sendASuggestion:"pošljite pripombo/predlog/pohvalo/pritožbo",instagram:"instagram",changelog:"dnevnik sprememb",termsOfUse:"terms of use",termsOfUseDescription:"as a condition of use, you promise not to use the BežiApp (App or application) and its related infrastructure (API, hosting service) for any purpose that is unlawful or prohibited by these Terms, or any other purpose not reasonably intended by the authors of the App. By way of example, and not as a limitation, you agree not to use the App",termsOfUseHarass:"to abuse, harass, threaten, impersonate or intimidate any person",termsOfUsePost:"to post or transmit, or cause to be posted or transmitted, any Content that is libelous, defamatory, obscene, pornographic, abusive, offensive, profane or that infringes any copyright or other right of any person",termsOfUseCommunicate:"to communicate with the App developers or other users in abusive or offensive manner",termsOfUsePurpose:"for any purpose that is not permitted under the laws of the jurisdiction where you use the App",termsOfUseExploit:"to post or transmit, or cause to be posted or transmitted, any Communication designed or intended to obtain password, account or private information of any App user",termsOfUseSpam:"to create or transmit unwanted “spam” to any person or any URL",termsOfUseModify:"you may also not reverse engineer, modify or redistribute the app without written consent from the developers",terminationOfServices:"termination of services",terminationOfServicesDescriptions:"the developers of the App may terminate your access to the App without any prior warning or notice for any of the following reasons",terminationOfServicesBreaching:"breaching the Terms of Service",terminationOfServicesRequest:"receiving a formal request from authorities of Gimnazija Bežigrad administration requesting termination of your access to the App",limitationOfLiability:"limitation of Liability",limitationOfLiabilityContent:"the developers of the App provide no warranty; You expressly acknowledge and agree that the use of the licensed application is at your sole risk. To the maximum extent permited by applicable law, the licensed application and any services performed of provided by the licensed application are provided “as is” and “as available”, with all faults and without warranty of any kind, and licensor hereby disclaims all warranties and conditions with respect to the licensed application and any services, either express, implied or statutory, including, but not limited to, the implied warranties and/or conditions of merchantability, of satisfactory quality, of fitness for a particular purpose, of accuracy, of quiet enjoyment, and of noninfringement of third-party rights. No oral or written information or advice given by licensor or its authorized representative shall create a warranty. Should the licensed application or services prove defective, you assume the entire cost of all necessary servicing, repair or correction. Some jurisdictions do not allow the exclusion of the implied warranties or limitations on applicable statutory rights of a customer, so the above exclusion may not apply to you.",tosAreEffectiveAsOf:"the Terms of Service are effective as of",privacyImportant:"your privacy is important to us. It is the developers' policy to respect your privacy regarding any information we may collect from you through our app, BežiApp.",privacyOnlyAskedWhen:"we only ask for personal information when we truly need it to provide a service to you. We collect it by fair and lawful means, with your knowledge and consent. We also let you know why we’re collecting it and how it will be used.",privacyDataCollection:"we only retain collected information for as long as necessary to provide you with your requested service. What data we store, we’ll protect within commercially acceptable means to prevent loss and theft, as well as unauthorized access, disclosure, copying, use or modification.",privacySharingData:"we don’t share any personally identifying information publicly or with third-parties, except when required to by law",privacyExternalSites:"our app may link to external sites that are not operated by us. Please be aware that we have no control over the content and practices of these sites, and cannot accept responsibility or liability for their respective privacy policies.",privacyRefuse:"you are free to refuse our request for your personal information, with the understanding that we may be unable to provide you with some of your desired services.",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:"izberite željen jezik",languageSet:"jezik nastavljen, odprite neko drugo stran da se pokažejo spremembe",theme:"izgled",themeLight:"svetel izgled (privzeto)",themeDark:"temen izgled",themeNight:"nočni izgled",themeSet:"izgled nastavljen, odprite neko drugo stran da se spremembe uveljavijo",selectTheme:"izberite željen izgled",errorReportingSet:"nastavitev pošiljanja napak izbrana",errorReporting:"pošiljanje napak",on:"vklopljeno",off:"izklopljeno",selectErrorReporting:"ali naj so napake v aplikaciji posredovane razvijalcem?",triggerWarning:"spodnji gumb omogoči dodatne možnosti, ki lahko razburijo/vznevoljijo nekatere uporabnike. Če omogočite stikalo, se strinjate, da avtorjev in/ali njihovih osebnih prepričanj ne boste povezovali s katerokoli od dodatnih omogočenih možnosti",triggerAgreement:"strinjam se z zgoraj navedenimi pogoji",triggerWarningSet:"spremenili ste stanje dodatnih nastavitev",additionalOptions:"dodatne nastavitve",gsecErrNet:"napaka povezave na GimSIS",gsecErrLogin:"prijava v GimSIS ni uspela (napačno geslo?), poskusite se odjaviti",gsecErrOther:"neznana napaka GimSISa, poskusite se odjaviti",videoconferences:"GimB konference"}} \ No newline at end of file
diff --git a/dist/js/lib/fullcalendar/core/main.min.js b/dist/js/lib/fullcalendar/core/main.min.js
index 042058b..042058b 100644..100755
--- a/dist/js/lib/fullcalendar/core/main.min.js
+++ b/dist/js/lib/fullcalendar/core/main.min.js
diff --git a/dist/js/lib/fullcalendar/daygrid/main.min.js b/dist/js/lib/fullcalendar/daygrid/main.min.js
index 1567738..1567738 100644..100755
--- a/dist/js/lib/fullcalendar/daygrid/main.min.js
+++ b/dist/js/lib/fullcalendar/daygrid/main.min.js
diff --git a/dist/js/lib/fullcalendar/timegrid/main.min.js b/dist/js/lib/fullcalendar/timegrid/main.min.js
index e7e2643..e7e2643 100644..100755
--- a/dist/js/lib/fullcalendar/timegrid/main.min.js
+++ b/dist/js/lib/fullcalendar/timegrid/main.min.js
diff --git a/dist/js/lib/he.js b/dist/js/lib/he.js
index 5a210a8..5a210a8 100644..100755
--- a/dist/js/lib/he.js
+++ b/dist/js/lib/he.js
diff --git a/dist/js/lib/jquery.min.js b/dist/js/lib/jquery.min.js
index bd9216d..bd9216d 100644..100755
--- a/dist/js/lib/jquery.min.js
+++ b/dist/js/lib/jquery.min.js
diff --git a/dist/js/lib/localforage.min.js b/dist/js/lib/localforage.min.js
index 2268df4..2268df4 100644..100755
--- a/dist/js/lib/localforage.min.js
+++ b/dist/js/lib/localforage.min.js
diff --git a/dist/js/lib/materialize.min.js b/dist/js/lib/materialize.min.js
index d396693..d396693 100644..100755
--- a/dist/js/lib/materialize.min.js
+++ b/dist/js/lib/materialize.min.js
diff --git a/dist/js/lib/mergedeep.js b/dist/js/lib/mergedeep.js
index fa2403d..fa2403d 100644..100755
--- a/dist/js/lib/mergedeep.js
+++ b/dist/js/lib/mergedeep.js
diff --git a/dist/js/lib/sjcl.js b/dist/js/lib/sjcl.js
index d3d908d..d3d908d 100644..100755
--- a/dist/js/lib/sjcl.js
+++ b/dist/js/lib/sjcl.js
diff --git a/dist/js/lib/themes.js b/dist/js/lib/themes.js
index 1996b9f..1996b9f 100644..100755
--- a/dist/js/lib/themes.js
+++ b/dist/js/lib/themes.js
diff --git a/dist/js/lib/xss.js b/dist/js/lib/xss.js
index f2030f0..f2030f0 100644..100755
--- a/dist/js/lib/xss.js
+++ b/dist/js/lib/xss.js
diff --git a/dist/js/login.js b/dist/js/login.js
index 88cf081..0e8187a 100644..100755
--- a/dist/js/login.js
+++ b/dist/js/login.js
@@ -1,5 +1,5 @@
-document.addEventListener("DOMContentLoaded",()=>{setupEventListeners();})
+document.addEventListener("DOMContentLoaded",()=>{setupEventListeners();try{load_server_message_at_login();}catch(e){console.log("login.js: load_server-message-at-login: silently failed.");}});function load_server_message_at_login(){$.ajax({url:"/server-message-at-login.html",success:(data)=>{$("#server-message-at-login").html(data);},error:()=>{$("#server-message-at-login").html("");}});}
function setupEventListeners(){$("#login-button").click(()=>{login();});window.addEventListener("keyup",(event)=>{if(event.keyCode===13){event.preventDefault();login();}});}
function login(){let username=$("#username").val();let password=$("#password").val();var gsecInstance;try{gsecInstance=new gsec();}catch(error){$.ajax({url:'js/gsec.js?ajaxload',async:false,dataType:"script",});try{gsecInstance=new gsec();}catch(error){alert(D("browserNotSupported"));}}
gsecInstance.login(username,password).then((value)=>{if(typeof value=="string"){let promises_to_run=[localforage.setItem("logged_in",true),localforage.setItem("username",username),localforage.setItem("password",password)];Promise.all(promises_to_run).then(function(){window.location.replace("/pages/timetable.html");});}else{UIAlert("loginFailed");$("#password").val("");}}).catch((err)=>{gsecErrorHandlerUI(err);$("#password").val("");});} \ No newline at end of file
diff --git a/dist/js/logout.js b/dist/js/logout.js
index 3f9f7ed..3f9f7ed 100644..100755
--- a/dist/js/logout.js
+++ b/dist/js/logout.js
diff --git a/dist/js/meals.js b/dist/js/meals.js
index e014f5a..6bec928 100644..100755
--- a/dist/js/meals.js
+++ b/dist/js/meals.js
@@ -12,7 +12,7 @@ subject_header_text=`${dateString.day(datum.getDay())}, ${datum.getDate()}. ${da
meal_node.classList.add("meal-node");meal_node.dataset["index"]=dindex;if(!readonly){meal_node.onclick=()=>{setMenu(date,dmil.value);}}
let meal_node_div=document.createElement("div");let meal_lefttext=document.createElement("span");let meal_righttext=document.createElement("div");meal_righttext.className="secondary-content";if(dmil.selected){meal_lefttext.innerHTML=`<i>${dmil.text}</i>`;meal_righttext.innerText=S("selected");}else{meal_lefttext.innerText=dmil.text;meal_righttext.innerText="";}
meal_node_div.appendChild(meal_lefttext);meal_node_div.appendChild(meal_righttext);meal_node.appendChild(meal_node_div);subject_body_root.appendChild(meal_node);}
-subject_header.appendChild(subject_header_text);subject_body.append(subject_body_root);subject_entry.append(subject_header);subject_entry.append(subject_body);root_element.append(subject_entry);}
+var subject_header_text_span=document.createElement("span");subject_header_text_span.innerText=subject_header_text;subject_header.appendChild(subject_header_text_span);subject_body.append(subject_body_root);subject_entry.append(subject_header);subject_entry.append(subject_body);root_element.append(subject_entry);}
$("#meals-collapsible").append(root_element);}
function clearMeals(){const table=document.getElementById("meals-collapsible");while(table.firstChild){table.removeChild(table.firstChild);}}
function refreshMeals(){clearMeals();loadMeals();}
diff --git a/dist/js/messaging.js b/dist/js/messaging.js
index 1650563..1650563 100644..100755
--- a/dist/js/messaging.js
+++ b/dist/js/messaging.js
diff --git a/dist/js/privacypolicy.js b/dist/js/privacypolicy.js
index 84635e9..84635e9 100644..100755
--- a/dist/js/privacypolicy.js
+++ b/dist/js/privacypolicy.js
diff --git a/dist/js/settings.js b/dist/js/settings.js
index 9e52861..9e52861 100644..100755
--- a/dist/js/settings.js
+++ b/dist/js/settings.js
diff --git a/dist/js/setup-storage.js b/dist/js/setup-storage.js
index be05650..be05650 100644..100755
--- a/dist/js/setup-storage.js
+++ b/dist/js/setup-storage.js
diff --git a/dist/js/teachers.js b/dist/js/teachers.js
index 03ae948..03ae948 100644..100755
--- a/dist/js/teachers.js
+++ b/dist/js/teachers.js
diff --git a/dist/js/timetable.js b/dist/js/timetable.js
index 79539f6..79539f6 100644..100755
--- a/dist/js/timetable.js
+++ b/dist/js/timetable.js
diff --git a/dist/js/tos.js b/dist/js/tos.js
index 84635e9..84635e9 100644..100755
--- a/dist/js/tos.js
+++ b/dist/js/tos.js
diff --git a/dist/login.html b/dist/login.html
index 542b157..95bcc2e 100644..100755
--- a/dist/login.html
+++ b/dist/login.html
@@ -60,6 +60,9 @@
<a href="/pages/privacypolicy.html"><x-dl>thePrivacyPolicy</x-dl></a>
</p>
</div>
+ <div class="row" id="server-message-at-login">
+
+ </div>
</div>
</div>
</body>
diff --git a/dist/logout.html b/dist/logout.html
index c3f9b41..c3f9b41 100644..100755
--- a/dist/logout.html
+++ b/dist/logout.html
diff --git a/dist/manifest.json b/dist/manifest.json
index b8bf5da..b8bf5da 100644..100755
--- a/dist/manifest.json
+++ b/dist/manifest.json
diff --git a/dist/pages/about.html b/dist/pages/about.html
index 0d67d38..2858f1d 100644..100755
--- a/dist/pages/about.html
+++ b/dist/pages/about.html
@@ -76,7 +76,7 @@
<!-- One day in the future we may have sw cache version covered by this as well -->
<h5 class="subheader">
<x-su>version</x-su>
- 1.0.14.3-beta
+ 1.0.14.5-beta
</h5>
</div>
</div>
@@ -160,7 +160,7 @@
<div class="row">
<p>
<small>
- ^HEAD 7b41388f8eb7be4e8250fe9f69194cf70f1a103b
+ ^HEAD 47006bdae8d53e0bb33110f149730962e5591f4d
</small>
</p>
</div>
diff --git a/dist/pages/absences.html b/dist/pages/absences.html
index d50e546..d50e546 100644..100755
--- a/dist/pages/absences.html
+++ b/dist/pages/absences.html
diff --git a/dist/pages/changelog.html b/dist/pages/changelog.html
index 2fbf933..2fbf933 100644..100755
--- a/dist/pages/changelog.html
+++ b/dist/pages/changelog.html
diff --git a/dist/pages/chats.html b/dist/pages/chats.html
index e1cb37c..e1cb37c 100644..100755
--- a/dist/pages/chats.html
+++ b/dist/pages/chats.html
diff --git a/dist/pages/grades.html b/dist/pages/grades.html
index 0a8e5ec..0a8e5ec 100644..100755
--- a/dist/pages/grades.html
+++ b/dist/pages/grades.html
diff --git a/dist/pages/gradings.html b/dist/pages/gradings.html
index ce30046..ce30046 100644..100755
--- a/dist/pages/gradings.html
+++ b/dist/pages/gradings.html
diff --git a/dist/pages/jitsi.html b/dist/pages/jitsi.html
index 678ad9d..678ad9d 100644..100755
--- a/dist/pages/jitsi.html
+++ b/dist/pages/jitsi.html
diff --git a/dist/pages/meals.html b/dist/pages/meals.html
index 590e761..590e761 100644..100755
--- a/dist/pages/meals.html
+++ b/dist/pages/meals.html
diff --git a/dist/pages/messaging.html b/dist/pages/messaging.html
index 5c9fb32..5c9fb32 100644..100755
--- a/dist/pages/messaging.html
+++ b/dist/pages/messaging.html
diff --git a/dist/pages/privacypolicy.html b/dist/pages/privacypolicy.html
index 4876d6b..4876d6b 100644..100755
--- a/dist/pages/privacypolicy.html
+++ b/dist/pages/privacypolicy.html
diff --git a/dist/pages/settings.html b/dist/pages/settings.html
index 5e96b77..5e96b77 100644..100755
--- a/dist/pages/settings.html
+++ b/dist/pages/settings.html
diff --git a/dist/pages/teachers.html b/dist/pages/teachers.html
index b346762..b346762 100644..100755
--- a/dist/pages/teachers.html
+++ b/dist/pages/teachers.html
diff --git a/dist/pages/timetable.html b/dist/pages/timetable.html
index efc6e35..efc6e35 100644..100755
--- a/dist/pages/timetable.html
+++ b/dist/pages/timetable.html
diff --git a/dist/pages/tos.html b/dist/pages/tos.html
index 384b2d3..384b2d3 100644..100755
--- a/dist/pages/tos.html
+++ b/dist/pages/tos.html
diff --git a/dist/server-message-at-login.html b/dist/server-message-at-login.html
new file mode 100755
index 0000000..d0ec9e2
--- /dev/null
+++ b/dist/server-message-at-login.html
@@ -0,0 +1,6 @@
+<h5>
+ Opozorilo razvijalcev / developer's note:
+</h5>
+<p>
+ Srečno v novem šolskem letu 2020/21!
+</p>
diff --git a/dist/sw.js b/dist/sw.js
index bd4562c..7898010 100644..100755
--- 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.14.3-beta-7b41388";
-// commit before the latest is 7b41388f8eb7be4e8250fe9f69194cf70f1a103b
+const static_cache_name = "site-static-1.0.14.5-beta-47006bd";
+// commit before the latest is 47006bdae8d53e0bb33110f149730962e5591f4d
// Got them with find . -not -path '*/\.*' | sed "s/.*/\"&\",/" | grep -v sw.js
// sw.js NE SME BITI CACHAN, ker vsebuje verzijo!
diff --git a/global.bvr b/global.bvr
index 317e505..39715d1 100644
--- a/global.bvr
+++ b/global.bvr
@@ -1,3 +1,3 @@
<@?s bvr_include_path assets/pages-src/ assets/pages-src/misc/@>
<@?s latest_commit ?u 0 -1 ?i .git/refs/heads/dev@>
-<@?s app_version 1.0.14.3-beta@>
+<@?s app_version 1.0.14.5-beta@>