-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.js
More file actions
40 lines (40 loc) · 1.64 KB
/
Copy pathmain.js
File metadata and controls
40 lines (40 loc) · 1.64 KB
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
import { dataCourses } from './dataCourses.js';
var coursesTbody = document.getElementById('courses');
var btnfilterByName = document.getElementById("button-filterByName");
var inputSearchBox = document.getElementById("search-box");
var totalCreditElm = document.getElementById("total-credits");
btnfilterByName.onclick = function () { return applyFilterByName(); };
renderCoursesInTable(dataCourses);
totalCreditElm.innerHTML = "" + getTotalCredits(dataCourses);
function renderCoursesInTable(courses) {
console.log('Desplegando cursos');
courses.forEach(function (course) {
var trElement = document.createElement("tr");
trElement.innerHTML = "<td>" + course.name + "</td>\n <td>" + course.professor + "</td>\n <td>" + course.credits + "</td>";
coursesTbody.appendChild(trElement);
});
}
function applyFilterByName() {
var text = inputSearchBox.value;
text = (text == null) ? '' : text;
clearCoursesInTable();
var coursesFiltered = searchCourseByName(text, dataCourses);
renderCoursesInTable(coursesFiltered);
}
function searchCourseByName(nameKey, courses) {
return nameKey === '' ? dataCourses : courses.filter(function (c) {
return c.name.match(nameKey);
});
}
function getTotalCredits(courses) {
var totalCredits = 0;
courses.forEach(function (course) { return totalCredits = totalCredits + course.credits; });
return totalCredits;
}
function clearCoursesInTable() {
while (coursesTbody.hasChildNodes()) {
if (coursesTbody.firstChild != null) {
coursesTbody.removeChild(coursesTbody.firstChild);
}
}
}