1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
'use strict'
import { dashboard, switchDisplay, popUp, removePopUp, createSearch, createTable, sortAppointment, data, copyArray, filterArray, setDeleteFunctionality, setViewFunctionality, removeForms, sortLogs } from './admin.js'
document.getElementById("nav-users").addEventListener("click", () => {
switchDisplay("students")
}
);
document.getElementById("nav-companies").addEventListener("click", () => {
switchDisplay("companies")
})
document.getElementById('nav-logs').addEventListener('click', () => {
switchDisplay('logs')
})
document.getElementById("toAddCompany").addEventListener("click", () => {
switchDisplay("addCompany")
}
);
document.getElementById("toAddStudent").addEventListener("click", () => {
switchDisplay("addStudent")
}
);
document.getElementById("backToCompanies").addEventListener("click", () => {
switchDisplay("companies")
});
document.getElementById("backToStudent").addEventListener("click", () => {
switchDisplay("students")
});
document.getElementById("nav-appointments").addEventListener("click", () => {
switchDisplay("appointments")
});
//Add a 'view more' option for students and companies
setViewFunctionality()
//Add a 'delete' option for students and companies
setDeleteFunctionality()
//To abort the delete process
document.getElementById('abortAction').addEventListener('click', () => {
removeForms()
removePopUp();
})
//Popups can also be removed by pressing escape
document.addEventListener('keydown', e => {
if (e.key == "Escape") {
removePopUp()
removeForms()
if (document.getElementById('details').style.display != 'none') {
//If we're checking details of a student, go back to students
if (document.getElementsByClassName('viewS').length > 0) switchDisplay('students')
else switchDisplay('companies')
}
}
})
document.getElementById('searchType').addEventListener('change', () => {
const searchType = document.getElementById('searchType').value;
sortLogs(searchType)
})
document.getElementById('logout').addEventListener('click', async () => {
await localStorage.clear('token');
await localStorage.clear('user_type');
location.href='/'
})
window.addEventListener("load", () => {
dashboard();
sortLogs('belang')
switchDisplay("logs");
//Checks if there are new logs to be found. If not, the next Logs button is removed
if (document.getElementById('next-log-page').value == '') document.getElementById('next-log-form').style.visibility ='hidden'
if (document.getElementById('prev-log-page').value == '') document.getElementById('prev-log-form').style.visibility ='hidden'
const filterElements = document.getElementsByClassName("filter");
let count = 0;
for (let element of filterElements)
createSearch(count, element),
count++;
for (let filter of document.getElementsByClassName("filterAction"))
filter.addEventListener("click", () => {
//l, e
let nameInput, type;
//Checks if we're on the studentpage. Else, we can assume we're on the company page
if (document.getElementById("students").style.display != "none" ? (nameInput = document.getElementById("nameSearchS").value,
type = "student") : (nameInput = document.getElementById("nameSearchC").value,
type = "company"))
//If no name was found, create the table without any extras
if (nameInput == '') {
type == "student" ? createTable(data.student) : createTable(data.company)
setViewFunctionality()
setDeleteFunctionality()
return 0 ;
}
let filtered;
//Filter the name through the arrays, depending on wether it's a student or a company
type == "student" ? filtered = filterArray(data.student, nameInput) : filtered = filterArray(data.company, nameInput)
//If no names were found, just create regular table
if (filtered.length == 0) {
type == "student" ? createTable(data.student) : createTable(data.company);
setViewFunctionality()
setDeleteFunctionality()
return 0;
}
//remove found objects from the original array
let rest;
if (type == "student") {
rest = copyArray(data.student);
for (let el of filtered) rest = rest.filter(obj=> obj.name != el.name)
}
else {
rest = copyArray(data.company);
for (let el of filtered) rest = rest.filter(obj => obj.name != el.name)
}
//create table, starting with highlighted names, then the rest
createTable(rest, filtered)
setViewFunctionality()
setDeleteFunctionality()
}
)
setTimeout(() => {
document.getElementById('serverResponse').innerHTML = ''
}, 5000)
sortAppointment()
for (let element of document.getElementsByClassName('token')) {
element.value = localStorage.getItem('token');
}
}
);
|