From c301d332c6a90d1b0037386b8ef05b2a4ca6daa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Fri, 6 Mar 2020 14:33:35 +0100 Subject: all js files updated with i18n, not tested yet --- js/teachers.js | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'js/teachers.js') diff --git a/js/teachers.js b/js/teachers.js index 39232b5..9634c06 100644 --- a/js/teachers.js +++ b/js/teachers.js @@ -11,7 +11,8 @@ var teachers = null; * @return {String} Returns day as string */ function dayOfWeekAsString(dayIndex) { - return ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"][dayIndex]; + var daysToReturn = [S("monday"), S("tuesday"), S("wednesday"), S("thursday"), S("friday"), S("saturday"), S("sunday")]; + return daysToReturn[dayIndex]; } // Set loading bar visibility @@ -61,7 +62,7 @@ async function loadTeachers(force_refresh = false) { success: (data) => { // If data is null, the request failed if (data === null) { - M.toast({ html: "Request failed!" }); + UIAlert(D("requestFailed")); setLoading(false); } else { // Save teachers & populate table @@ -74,7 +75,7 @@ async function loadTeachers(force_refresh = false) { }, error: () => { - M.toast({ html: "No internet connection!" }); + UIAlert(D("noInternetConnection")); setLoading(false); } @@ -148,9 +149,9 @@ function teacherInfo(teacher_id) { let office_lesson = teacher_object["govorilneure"]["solskaura"]; document.getElementById("teacher-name").innerText = name; - document.getElementById("teacher-subject").innerText = "Subject: " + subject; + document.getElementById("teacher-subject").innerText = S("schoolSubject") + ": " + subject; - document.getElementById("teacher-office").innerText = office_day + ", lesson " + office_lesson; + document.getElementById("teacher-office").innerText = office_day + ", " + S("lesson") + " " + office_lesson; const modal = document.querySelectorAll('.side-modal')[0]; M.Sidenav.getInstance(modal).open(); @@ -176,4 +177,4 @@ document.addEventListener("DOMContentLoaded", () => { // Setup side modal const modals = document.querySelectorAll('.side-modal'); M.Sidenav.init(modals, { edge: 'left', draggable: false }); -}); \ No newline at end of file +}); -- cgit v1.2.3 From 3b288cc59b6528550fb5a818ac98a75ac758078c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Fri, 6 Mar 2020 22:04:10 +0100 Subject: meals.js fix - still timing issues --- js/teachers.js | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) (limited to 'js/teachers.js') diff --git a/js/teachers.js b/js/teachers.js index 9634c06..bb5137b 100644 --- a/js/teachers.js +++ b/js/teachers.js @@ -3,18 +3,6 @@ const API_ENDPOINT = "https://gimb.tk/test.php"; var teachers = null; - -/** -* Converts a day number to a string. -* -* @param {Number} dayIndex -* @return {String} Returns day as string -*/ -function dayOfWeekAsString(dayIndex) { - var daysToReturn = [S("monday"), S("tuesday"), S("wednesday"), S("thursday"), S("friday"), S("saturday"), S("sunday")]; - return daysToReturn[dayIndex]; -} - // Set loading bar visibility function setLoading(state) { if (state) { @@ -145,7 +133,7 @@ function teacherInfo(teacher_id) { let name = teacher_object["ime"]; let subject = teacher_object["predmeti"][0]["ime"]; - let office_day = dayOfWeekAsString(teacher_object["govorilneure"]["dan"]); + let office_day = dateString.day(teacher_object["govorilneure"]["dan"]); let office_lesson = teacher_object["govorilneure"]["solskaura"]; document.getElementById("teacher-name").innerText = name; -- cgit v1.2.3 From a4e25ed95b896f39aadec6123543dae1bc80e8fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Sat, 21 Mar 2020 00:58:21 +0100 Subject: teachers.js, absences.js: uporabljajo gsec.js; gsec.js: spremembe apija --- js/teachers.js | 173 +++++++++++++++++++++++++-------------------------------- 1 file changed, 77 insertions(+), 96 deletions(-) (limited to 'js/teachers.js') diff --git a/js/teachers.js b/js/teachers.js index bb5137b..c41a621 100644 --- a/js/teachers.js +++ b/js/teachers.js @@ -1,4 +1,4 @@ -const API_ENDPOINT = "https://gimb.tk/test.php"; +// const API_ENDPOINT = "https://gimb.tk/test.php"; // deprecated // const API_ENDPOINT = "http://localhost:5000/test.php"; var teachers = null; @@ -14,91 +14,71 @@ function setLoading(state) { // Function, responsible for fetching and displaying data async function loadTeachers(force_refresh = false) { - setLoading(true); - - // Load required data - let promises_to_run = [ - localforage.getItem("username").then((value) => { - username = value; - }), - localforage.getItem("password").then((value) => { - password = value; - }), - localforage.getItem("teachers").then((value) => { - teachers = value; - }) - ]; - - Promise.all(promises_to_run).then(() => { - - // If we don't have a list of teachers, query it - if (teachers === null || force_refresh) { - $.ajax({ - url: API_ENDPOINT, - crossDomain: true, - - data: { - "u": username, - "p": password, - "m": "fetchprofesorji" - }, - dataType: "json", - - cache: false, - type: "GET", - - success: (data) => { - // If data is null, the request failed - if (data === null) { - UIAlert(D("requestFailed")); - setLoading(false); - } else { - // Save teachers & populate table - localforage.setItem("teachers", data).then((value) => { - teachers = value; - displayData(); - setLoading(false); - }); - } - }, - - error: () => { - UIAlert(D("noInternetConnection")); - setLoading(false); - } - - }) - } else { - displayData(); - setLoading(false); - } - }); + setLoading(true); + // Load required data + let promises_to_run = [ + localforage.getItem("username").then((value) => { + username = value; + }), + localforage.getItem("password").then((value) => { + password = value; + }), + localforage.getItem("teachers").then((value) => { + teachers = value; + }) + ]; + await Promise.all(promises_to_run); + // If we don't have a list of teachers, query it + if (teachers === null || force_refresh) { + try { + let gsecInstance = new gsec(); + await gsecInstance.login(username, password); + gsecInstance.fetchTeachers().then( (value) => { + teachers = value; + localforage.setItem("teachers", value).then((value) => { + displayData(); + setLoading(false); + }); + setLoading(false); + }).catch( (err) => { + gsecErrorHandlerUI(err); + setLoading(false); + }); + } catch (err) { + gsecErrorHandlerUI(err); + setLoading(false); + } + } else { + displayData(); + setLoading(false); + } } // Function for displaying data function displayData() { - - teachers.forEach(element => { - // Create row - let row = document.createElement("tr"); - // Create cell 1 - let cell_name = document.createElement("td"); - let cell_name_text = document.createTextNode(element["ime"]); - // Create cell 2 - let cell_subject = document.createElement("td"); - // Array ([0]) is useless, since every teacher is duplicated (for each subject) - let cell_subject_text = document.createTextNode(element["predmeti"][0]["ime"]); - - cell_name.appendChild(cell_name_text); - row.appendChild(cell_name); - - cell_subject.appendChild(cell_subject_text); - row.appendChild(cell_subject); - - $("#teachers-body").append(row); - }); - // Refresh handlers - refreshTableClickHandlers(); + for(const teacher of Object.keys(teachers)) { + // Create row + let row = document.createElement("tr"); + // Create cell 1 + let cell_name = document.createElement("td"); + let cell_name_text = document.createTextNode(teacher); + // Create cell 2 + let cell_subject = document.createElement("td"); + // Array ([0]) is useless, since every teacher is duplicated (for each subject) // <-- ne velja za gsec.js, velja pa za gimsisextclient, PHP varianta + var subjectsString = ""; + for(const subject of Object.keys(teachers[teacher]["subjects"])) { + subjectsString += subject; + subjectsString += ", "; + } + let cell_subject_text = document.createTextNode(subjectsString.slice(0, -2)); // slajsnemo zadnji ", " + cell_name.appendChild(cell_name_text); + row.appendChild(cell_name); + cell_subject.appendChild(cell_subject_text); + row.appendChild(cell_subject); + $("#teachers-body").append(row); + }; + // Refresh handlers + refreshTableClickHandlers(); } async function checkLogin() { @@ -129,20 +109,21 @@ function refreshTableClickHandlers() { } function teacherInfo(teacher_id) { - let teacher_object = teachers[teacher_id]; - - let name = teacher_object["ime"]; - let subject = teacher_object["predmeti"][0]["ime"]; - let office_day = dateString.day(teacher_object["govorilneure"]["dan"]); - let office_lesson = teacher_object["govorilneure"]["solskaura"]; - - document.getElementById("teacher-name").innerText = name; - document.getElementById("teacher-subject").innerText = S("schoolSubject") + ": " + subject; - - document.getElementById("teacher-office").innerText = office_day + ", " + S("lesson") + " " + office_lesson; - - const modal = document.querySelectorAll('.side-modal')[0]; - M.Sidenav.getInstance(modal).open(); + let name = Object.keys(teachers)[teacher_id]; + let teacher_object = teachers[name]; + var subjectsString = ""; + for(const subject of Object.keys(teacher_object["subjects"])) { + subjectsString += subject; + subjectsString += ", "; + } + let subject = subjectsString.slice(0, -2); + let office_day = dateString.day(teacher_object["tpMeetings"]["day"]); + let office_lesson = teacher_object["tpMeetings"]["period"]; + document.getElementById("teacher-name").innerText = name; + document.getElementById("teacher-subject").innerText = S("schoolSubject") + ": " + subject; + document.getElementById("teacher-office").innerText = office_day + ", " + S("lesson") + " " + office_lesson; + const modal = document.querySelectorAll('.side-modal')[0]; + M.Sidenav.getInstance(modal).open(); } document.addEventListener("DOMContentLoaded", () => { -- cgit v1.2.3 From 07cb830c35f2bed8cfa8abcd1e31fc5bf965db9d Mon Sep 17 00:00:00 2001 From: rstular Date: Thu, 14 May 2020 01:51:10 +0200 Subject: Styling changes, first round of bug fixes There are (probably) more changes incoming, but we need to discuss them first --- js/teachers.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'js/teachers.js') diff --git a/js/teachers.js b/js/teachers.js index c41a621..aab7d74 100644 --- a/js/teachers.js +++ b/js/teachers.js @@ -119,10 +119,11 @@ function teacherInfo(teacher_id) { let subject = subjectsString.slice(0, -2); let office_day = dateString.day(teacher_object["tpMeetings"]["day"]); let office_lesson = teacher_object["tpMeetings"]["period"]; - document.getElementById("teacher-name").innerText = name; - document.getElementById("teacher-subject").innerText = S("schoolSubject") + ": " + subject; - document.getElementById("teacher-office").innerText = office_day + ", " + S("lesson") + " " + office_lesson; - const modal = document.querySelectorAll('.side-modal')[0]; + $("#teacher-name").text(name); + $("#teacher-subject").text(`${S("schoolSubject")}: ${subject}`); + $("#teacher-office").text(`${office_day}, ${S("lesson")} ${office_lesson}`); + + const modal = document.querySelectorAll(".side-modal")[0]; M.Sidenav.getInstance(modal).open(); } -- cgit v1.2.3 From ad675cbe9738577b236c5a682e4629c562ee4a76 Mon Sep 17 00:00:00 2001 From: rstular Date: Sat, 16 May 2020 23:20:42 +0200 Subject: Linting --- js/teachers.js | 152 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 76 insertions(+), 76 deletions(-) (limited to 'js/teachers.js') diff --git a/js/teachers.js b/js/teachers.js index aab7d74..5fc2baf 100644 --- a/js/teachers.js +++ b/js/teachers.js @@ -14,71 +14,71 @@ function setLoading(state) { // Function, responsible for fetching and displaying data async function loadTeachers(force_refresh = false) { - setLoading(true); - // Load required data - let promises_to_run = [ - localforage.getItem("username").then((value) => { - username = value; - }), - localforage.getItem("password").then((value) => { - password = value; - }), - localforage.getItem("teachers").then((value) => { - teachers = value; - }) - ]; - await Promise.all(promises_to_run); - // If we don't have a list of teachers, query it - if (teachers === null || force_refresh) { - try { - let gsecInstance = new gsec(); - await gsecInstance.login(username, password); - gsecInstance.fetchTeachers().then( (value) => { - teachers = value; - localforage.setItem("teachers", value).then((value) => { - displayData(); - setLoading(false); - }); - setLoading(false); - }).catch( (err) => { - gsecErrorHandlerUI(err); - setLoading(false); - }); - } catch (err) { - gsecErrorHandlerUI(err); - setLoading(false); - } - } else { - displayData(); - setLoading(false); - } + setLoading(true); + // Load required data + let promises_to_run = [ + localforage.getItem("username").then((value) => { + username = value; + }), + localforage.getItem("password").then((value) => { + password = value; + }), + localforage.getItem("teachers").then((value) => { + teachers = value; + }) + ]; + await Promise.all(promises_to_run); + // If we don't have a list of teachers, query it + if (teachers === null || force_refresh) { + try { + let gsecInstance = new gsec(); + await gsecInstance.login(username, password); + gsecInstance.fetchTeachers().then( (value) => { + teachers = value; + localforage.setItem("teachers", value).then(() => { + displayData(); + setLoading(false); + }); + setLoading(false); + }).catch( (err) => { + gsecErrorHandlerUI(err); + setLoading(false); + }); + } catch (err) { + gsecErrorHandlerUI(err); + setLoading(false); + } + } else { + displayData(); + setLoading(false); + } } // Function for displaying data function displayData() { - for(const teacher of Object.keys(teachers)) { - // Create row - let row = document.createElement("tr"); - // Create cell 1 - let cell_name = document.createElement("td"); - let cell_name_text = document.createTextNode(teacher); - // Create cell 2 - let cell_subject = document.createElement("td"); - // Array ([0]) is useless, since every teacher is duplicated (for each subject) // <-- ne velja za gsec.js, velja pa za gimsisextclient, PHP varianta - var subjectsString = ""; - for(const subject of Object.keys(teachers[teacher]["subjects"])) { - subjectsString += subject; - subjectsString += ", "; - } - let cell_subject_text = document.createTextNode(subjectsString.slice(0, -2)); // slajsnemo zadnji ", " - cell_name.appendChild(cell_name_text); - row.appendChild(cell_name); - cell_subject.appendChild(cell_subject_text); - row.appendChild(cell_subject); - $("#teachers-body").append(row); - }; - // Refresh handlers - refreshTableClickHandlers(); + for(const teacher of Object.keys(teachers)) { + // Create row + let row = document.createElement("tr"); + // Create cell 1 + let cell_name = document.createElement("td"); + let cell_name_text = document.createTextNode(teacher); + // Create cell 2 + let cell_subject = document.createElement("td"); + // Array ([0]) is useless, since every teacher is duplicated (for each subject) // <-- ne velja za gsec.js, velja pa za gimsisextclient, PHP varianta + var subjectsString = ""; + for(const subject of Object.keys(teachers[teacher]["subjects"])) { + subjectsString += subject; + subjectsString += ", "; + } + let cell_subject_text = document.createTextNode(subjectsString.slice(0, -2)); // slajsnemo zadnji ", " + cell_name.appendChild(cell_name_text); + row.appendChild(cell_name); + cell_subject.appendChild(cell_subject_text); + row.appendChild(cell_subject); + $("#teachers-body").append(row); + }; + // Refresh handlers + refreshTableClickHandlers(); } async function checkLogin() { @@ -109,22 +109,22 @@ function refreshTableClickHandlers() { } function teacherInfo(teacher_id) { - let name = Object.keys(teachers)[teacher_id]; - let teacher_object = teachers[name]; - var subjectsString = ""; - for(const subject of Object.keys(teacher_object["subjects"])) { - subjectsString += subject; - subjectsString += ", "; - } - let subject = subjectsString.slice(0, -2); - let office_day = dateString.day(teacher_object["tpMeetings"]["day"]); - let office_lesson = teacher_object["tpMeetings"]["period"]; - $("#teacher-name").text(name); - $("#teacher-subject").text(`${S("schoolSubject")}: ${subject}`); - $("#teacher-office").text(`${office_day}, ${S("lesson")} ${office_lesson}`); + let name = Object.keys(teachers)[teacher_id]; + let teacher_object = teachers[name]; + var subjectsString = ""; + for(const subject of Object.keys(teacher_object["subjects"])) { + subjectsString += subject; + subjectsString += ", "; + } + let subject = subjectsString.slice(0, -2); + let office_day = dateString.day(teacher_object["tpMeetings"]["day"]); + let office_lesson = teacher_object["tpMeetings"]["period"]; + $("#teacher-name").text(name); + $("#teacher-subject").text(`${S("schoolSubject")}: ${subject}`); + $("#teacher-office").text(`${office_day}, ${S("lesson")} ${office_lesson}`); - const modal = document.querySelectorAll(".side-modal")[0]; - M.Sidenav.getInstance(modal).open(); + const modal = document.querySelectorAll(".side-modal")[0]; + M.Sidenav.getInstance(modal).open(); } document.addEventListener("DOMContentLoaded", () => { -- cgit v1.2.3 From fc66b376cb3a2c73843cc882d500cfd743c0790e Mon Sep 17 00:00:00 2001 From: sijanec Date: Sun, 17 May 2020 00:13:40 +0200 Subject: dist should work, TODO: minify and bundle --- js/teachers.js | 150 --------------------------------------------------------- 1 file changed, 150 deletions(-) delete mode 100644 js/teachers.js (limited to 'js/teachers.js') diff --git a/js/teachers.js b/js/teachers.js deleted file mode 100644 index 5fc2baf..0000000 --- a/js/teachers.js +++ /dev/null @@ -1,150 +0,0 @@ -// const API_ENDPOINT = "https://gimb.tk/test.php"; // deprecated -// const API_ENDPOINT = "http://localhost:5000/test.php"; - -var teachers = null; - -// Set loading bar visibility -function setLoading(state) { - if (state) { - $("#loading-bar").removeClass("hidden"); - } else { - $("#loading-bar").addClass("hidden"); - } -} - -// Function, responsible for fetching and displaying data -async function loadTeachers(force_refresh = false) { - setLoading(true); - // Load required data - let promises_to_run = [ - localforage.getItem("username").then((value) => { - username = value; - }), - localforage.getItem("password").then((value) => { - password = value; - }), - localforage.getItem("teachers").then((value) => { - teachers = value; - }) - ]; - await Promise.all(promises_to_run); - // If we don't have a list of teachers, query it - if (teachers === null || force_refresh) { - try { - let gsecInstance = new gsec(); - await gsecInstance.login(username, password); - gsecInstance.fetchTeachers().then( (value) => { - teachers = value; - localforage.setItem("teachers", value).then(() => { - displayData(); - setLoading(false); - }); - setLoading(false); - }).catch( (err) => { - gsecErrorHandlerUI(err); - setLoading(false); - }); - } catch (err) { - gsecErrorHandlerUI(err); - setLoading(false); - } - } else { - displayData(); - setLoading(false); - } -} - -// Function for displaying data -function displayData() { - for(const teacher of Object.keys(teachers)) { - // Create row - let row = document.createElement("tr"); - // Create cell 1 - let cell_name = document.createElement("td"); - let cell_name_text = document.createTextNode(teacher); - // Create cell 2 - let cell_subject = document.createElement("td"); - // Array ([0]) is useless, since every teacher is duplicated (for each subject) // <-- ne velja za gsec.js, velja pa za gimsisextclient, PHP varianta - var subjectsString = ""; - for(const subject of Object.keys(teachers[teacher]["subjects"])) { - subjectsString += subject; - subjectsString += ", "; - } - let cell_subject_text = document.createTextNode(subjectsString.slice(0, -2)); // slajsnemo zadnji ", " - cell_name.appendChild(cell_name_text); - row.appendChild(cell_name); - cell_subject.appendChild(cell_subject_text); - row.appendChild(cell_subject); - $("#teachers-body").append(row); - }; - // Refresh handlers - refreshTableClickHandlers(); -} - -async function checkLogin() { - localforage.getItem("logged_in").then((value) => { - // This code runs once the value has been loaded - // from the offline store. - if (value !== true) { - window.location.replace("/index.html"); - } - }).catch((err) => { - // This code runs if there were any errors - console.log(err); - }); -} - -function clearTable() { - const table = document.getElementById("teachers-body"); - while (table.firstChild) { - table.removeChild(table.firstChild); - } -} - -function refreshTableClickHandlers() { - // Arrow function doesn't work apparently? - $('#teachers-body').find("tr").click(function () { - teacherInfo($(this).index()); - }); -} - -function teacherInfo(teacher_id) { - let name = Object.keys(teachers)[teacher_id]; - let teacher_object = teachers[name]; - var subjectsString = ""; - for(const subject of Object.keys(teacher_object["subjects"])) { - subjectsString += subject; - subjectsString += ", "; - } - let subject = subjectsString.slice(0, -2); - let office_day = dateString.day(teacher_object["tpMeetings"]["day"]); - let office_lesson = teacher_object["tpMeetings"]["period"]; - $("#teacher-name").text(name); - $("#teacher-subject").text(`${S("schoolSubject")}: ${subject}`); - $("#teacher-office").text(`${office_day}, ${S("lesson")} ${office_lesson}`); - - const modal = document.querySelectorAll(".side-modal")[0]; - M.Sidenav.getInstance(modal).open(); -} - -document.addEventListener("DOMContentLoaded", () => { - checkLogin(); - loadTeachers(); - - // Setup refresh handler - $("#refresh-icon").click(() => { - clearTable(); - loadTeachers(true); - }); - - // Set row onClick functions - refreshTableClickHandlers(); - - // Setup side menu - const menus = document.querySelectorAll('.side-menu'); - M.Sidenav.init(menus, { edge: 'right', draggable: true }); - - // Setup side modal - const modals = document.querySelectorAll('.side-modal'); - M.Sidenav.init(modals, { edge: 'left', draggable: false }); -}); -- cgit v1.2.3