summaryrefslogtreecommitdiffstats
path: root/dist/js/teachers.js
diff options
context:
space:
mode:
authorsijanec <sijanecantonluka@gmail.com>2020-09-26 23:41:56 +0200
committersijanec <sijanecantonluka@gmail.com>2020-09-26 23:41:56 +0200
commit140f8a9b1842bb999da12073ea2e52fd0c72b1b5 (patch)
tree27040633a2974a031ac69a571c3ea82a6021f16d /dist/js/teachers.js
parentmeals now works! todo: fix checkouts and integrate into meals.html (diff)
downloadbeziapp-140f8a9b1842bb999da12073ea2e52fd0c72b1b5.tar
beziapp-140f8a9b1842bb999da12073ea2e52fd0c72b1b5.tar.gz
beziapp-140f8a9b1842bb999da12073ea2e52fd0c72b1b5.tar.bz2
beziapp-140f8a9b1842bb999da12073ea2e52fd0c72b1b5.tar.lz
beziapp-140f8a9b1842bb999da12073ea2e52fd0c72b1b5.tar.xz
beziapp-140f8a9b1842bb999da12073ea2e52fd0c72b1b5.tar.zst
beziapp-140f8a9b1842bb999da12073ea2e52fd0c72b1b5.zip
Diffstat (limited to '')
-rwxr-xr-xdist/js/teachers.js159
1 files changed, 10 insertions, 149 deletions
diff --git a/dist/js/teachers.js b/dist/js/teachers.js
index da83c06..03ae948 100755
--- a/dist/js/teachers.js
+++ b/dist/js/teachers.js
@@ -1,150 +1,11 @@
-// 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 || teachers == [] || force_refresh) {
- try {
- let gsecInstance = new gsec();
- await gsecInstance.login(username, password);
- gsecInstance.fetchTeachers().then( (value) => {
- teachers = value;
- localforage.setItem("teachers", value).then((saved_teachers) => {
- displayData(saved_teachers);
- setLoading(false);
- });
- setLoading(false);
- }).catch( (err) => {
- gsecErrorHandlerUI(err);
- setLoading(false);
- });
- } catch (err) {
- gsecErrorHandlerUI(err);
- setLoading(false);
- }
- } else {
- displayData(teachers);
- setLoading(false);
- }
-}
-
-// Function for displaying data
-function displayData(teachers) {
- 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 });
-});
+var teachers=null;function setLoading(state){if(state){$("#loading-bar").removeClass("hidden");}else{$("#loading-bar").addClass("hidden");}}
+async function loadTeachers(force_refresh=false){setLoading(true);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(teachers==null||teachers==[]||force_refresh){try{let gsecInstance=new gsec();await gsecInstance.login(username,password);gsecInstance.fetchTeachers().then((value)=>{teachers=value;localforage.setItem("teachers",value).then((saved_teachers)=>{displayData(saved_teachers);setLoading(false);});setLoading(false);}).catch((err)=>{gsecErrorHandlerUI(err);setLoading(false);});}catch(err){gsecErrorHandlerUI(err);setLoading(false);}}else{displayData(teachers);setLoading(false);}}
+function displayData(teachers){for(const teacher of Object.keys(teachers)){let row=document.createElement("tr");let cell_name=document.createElement("td");let cell_name_text=document.createTextNode(teacher);let cell_subject=document.createElement("td");var subjectsString="";for(const subject of Object.keys(teachers[teacher]["subjects"])){subjectsString+=subject;subjectsString+=", ";}
+let cell_subject_text=document.createTextNode(subjectsString.slice(0,-2));cell_name.appendChild(cell_name_text);row.appendChild(cell_name);cell_subject.appendChild(cell_subject_text);row.appendChild(cell_subject);$("#teachers-body").append(row);};refreshTableClickHandlers();}
+async function checkLogin(){localforage.getItem("logged_in").then((value)=>{if(value!==true){window.location.replace("/index.html");}}).catch((err)=>{console.log(err);});}
+function clearTable(){const table=document.getElementById("teachers-body");while(table.firstChild){table.removeChild(table.firstChild);}}
+function refreshTableClickHandlers(){$('#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();$("#refresh-icon").click(()=>{clearTable();loadTeachers(true);});refreshTableClickHandlers();const menus=document.querySelectorAll('.side-menu');M.Sidenav.init(menus,{edge:'right',draggable:true});const modals=document.querySelectorAll('.side-modal');M.Sidenav.init(modals,{edge:'left',draggable:false});}); \ No newline at end of file