-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.ts
45 lines (38 loc) · 1.94 KB
/
main.ts
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
import { Serie } from './Serie.js';
import { series } from './data.js';
let seriesTbody: HTMLElement = document.getElementById('series-info')!;
const averageSeasonElm: HTMLElement = document.getElementById("average-seasons")!;
let seriesCardElm: HTMLElement = document.getElementById("series-cards")!;
renderSeriesInTable(series);
averageSeasonElm.innerHTML = `Average number of seasons: ${getAverageSeasons(series)}`
function renderSeriesInTable(series: Serie[]): void {
console.log('Desplegando series en la tabla...');
series.forEach((serie) => {
let trElement = document.createElement("tr");
trElement.className = "clickable-element";
trElement.innerHTML = `<th class="firstnum" scope="row">${serie.num}</th>
<td class="seriesname">${serie.name}</td>
<td>${serie.channel}</td>
<td>${serie.seasons}</td>`;
trElement.addEventListener("click", () => { showSeriesCard(serie); });
seriesTbody.appendChild(trElement);
});
}
function getAverageSeasons(series: Serie[]): number {
let totalSeasons: number = 0;
series.forEach((serie) => totalSeasons = totalSeasons + serie.seasons);
return totalSeasons / series.length;
}
function showSeriesCard(serie: Serie): void {
console.log('Mostrando detalles de serie...');
seriesCardElm.innerHTML = `<div class="card" style="width: 18rem;">
<img src="${serie.picture}" class="card-img-top">
<div class="card-body">
<h5 class="card-title">${serie.name}</h5>
<p class="card-text">${serie.description}</p>
</div>
<div class="card-body">
<a href="${serie.link}" class="card-link" target="_blank">${serie.link}</a>
</div>
</div>`;
}