-
Notifications
You must be signed in to change notification settings - Fork 0
/
tableController.js
68 lines (60 loc) · 2.01 KB
/
tableController.js
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
// tableController.js
/**
* Llena la tabla con los datos proporcionados.
* @param {Object[]} data - Los datos a mostrar en la tabla.
*/
export function populateTable(data) {
let tableBody = document.querySelector('#table-data tbody');
tableBody.innerHTML = ''; // Limpiar la tabla
data.forEach(item => {
let row = document.createElement('tr');
Object.entries(item).forEach(([key, value]) => {
if (key !== 'date-message') {
let cell = document.createElement('td');
cell.textContent = value;
row.appendChild(cell);
}
});
tableBody.appendChild(row);
});
}
/**
* Filtra los datos según el rango de fechas seleccionado y actualiza la tabla.
* @param {Object[]} data - Los datos a filtrar.
*/
export function filterData(data) {
const selectedOption = document.getElementById('choise').value;
const today = new Date();
let startDate;
switch (selectedOption) {
case 'last7days':
startDate = new Date(today);
startDate.setDate(today.getDate() - 7);
break;
case 'lastMonth':
startDate = new Date(today);
startDate.setMonth(today.getMonth() - 1);
break;
case 'lastYear':
startDate = new Date(today);
startDate.setFullYear(today.getFullYear() - 1);
break;
default:
startDate = new Date(0); // Fecha muy antigua para incluir todos los datos
}
startDate.setHours(0, 0, 0, 0);
today.setHours(23, 59, 59, 999);
const filteredData = data.filter(item => {
const itemDate = new Date(item['date-message']);
itemDate.setHours(0, 0, 0, 0);
return itemDate >= startDate && itemDate <= today;
});
return filteredData;
}
/**
* Limpia el contenido de la tabla.
*/
export function clearTable() {
let tableBody = document.querySelector('#table-data tbody');
tableBody.innerHTML = ''; // Limpiar el contenido de la tabla
}