summaryrefslogtreecommitdiffstats
path: root/dist/js/teachers.js
blob: 03ae94891ee6245a96ea3f8b3afb87f99afc7b40 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11

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});});