Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
5a986a3
agregarimagenes
Sep 19, 2023
7364c12
personajes
Sep 20, 2023
d8db131
cambie en español el h1 del HTML
Jesycl Sep 19, 2023
7205b3d
avance de pagina y nueva carpeta de imagenes
Jesycl Sep 25, 2023
4a0b9dc
Merge pull request #3 from Jesycl/jessica
Jesycl Sep 25, 2023
5128a2e
se agrega estilos en css y se agrega filtro
Sep 26, 2023
1512d64
Merge pull request #2 from danielapadronf/esqueleto-html
Jesycl Sep 26, 2023
76bae94
modificacion main y view
Sep 28, 2023
a8aaf09
Merge pull request #3 from danielapadronf/esqueleto-html
Jesycl Sep 28, 2023
81d3c2d
se realiza filtro para ordenar A-Z y Z-A y estilo flip de carta en hover
Oct 3, 2023
0246a9b
Merge pull request #4 from danielapadronf/esqueleto-html
Jesycl Oct 3, 2023
4526b5b
se realizo filtro por familia y se corrigio error de boton limpiar
Jesycl Oct 4, 2023
2b81dc2
Merge pull request #4 from Jesycl/jessica
danielapadronf Oct 4, 2023
3c21380
cambios en css, html, y correcion de test
Oct 6, 2023
41f3775
Update README.md data lovers
danielapadronf Oct 9, 2023
6010ee8
Update README.md
danielapadronf Oct 9, 2023
0adc57a
Update README.md
danielapadronf Oct 9, 2023
177baa1
se corrigen test y se realiza responsive
Oct 9, 2023
70e6585
Merge branch 'esqueleto-html' of https://github.com/danielapadronf/DE…
Oct 10, 2023
1f138c4
IMAGENES README
Oct 10, 2023
ae8b747
se realizan cambios en test y readme
Oct 10, 2023
38f6807
se realizan cambio para agregar el promedio y estilos, ademas de modi…
Oct 11, 2023
11c6293
se agrega favicon
Oct 12, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
861 changes: 27 additions & 834 deletions README.md

Large diffs are not rendered by default.

7,970 changes: 7,970 additions & 0 deletions package-lock.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"htmlhint": "htmlhint src/*.html test/*.html",
"eslint": "eslint --ext .js src/ test/",
"pretest": "npm run eslint && npm run htmlhint",
"test": "jest --verbose --coverage test/*.spec.js",
"test": "jest --verbose --coverage test/",
"test:e2e": "playwright test",
"test:oas": "jest --verbose tests-read-only/oa/",
"pretest:oas-html": "npm run pretest",
Expand Down
Binary file added src/Img/Casa_Tyrell.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/Game of Thrones.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/Img-inicio.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/Letras-doradas.ico
Binary file not shown.
Binary file added src/Img/Letras-doradas.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/Letras.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/Targaryen.ico
Binary file not shown.
Binary file added src/Img/Targaryen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/baratheon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file added src/Img/imagen1.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/imagen2.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/imagen3.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/lannister.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/stark.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/Img/tarly.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
61 changes: 54 additions & 7 deletions src/dataFunctions.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,56 @@
// estas funciones son de ejemplo
import data from './data/got/got.js';
// import { renderItems } from './view.js';
// const root = document.getElementById('root')

export const example = () => {
return 'example';
};
export const mostrarPagina = (pagina) => {
const paginas = document.querySelectorAll('.pagina');
paginas.forEach(p => p.classList.remove('pagina-activa'));

const paginaSeleccionada = document.getElementById(pagina);
paginaSeleccionada.classList.add('pagina-activa');
}
export const sortFamilia = (value) => {
const familia = data.got;

if (value === "desc") {
familia.sort((a, b) => b.family.localeCompare(a.family));
}

if (value === "asc") {
familia.sort((a, b) => a.family.localeCompare(b.family));
}

return familia; // Devuelve la lista ordenada
}
// Función para filtrar la lista de personajes
export const filterBy = ((data, filterBy, value) =>{
const arrayFamily = data.filter(family => {
if (family [filterBy] === value){
return family;
}
})
return arrayFamily
});

export const getAgeAverage = () => {
const allTheBornDate = data.got.reduce((prev, current) => {
const bornString = current&&current.born || '0'; // Si es null o undefined, se convierte en 0
const bornNumber = parseInt(bornString.replace(/[^0-9]/g, ''), 10);
return prev + bornNumber;
}, 0);

const totalOfCharts = data.got.length

const average = allTheBornDate / totalOfCharts

const averageRounded = average.toFixed(2); // Limitar a dos decimales

const averageTag = document.createElement("p");
averageTag.textContent = `Año promedio de nacimiento DC : ${averageRounded}, del total de personajes: ${totalOfCharts}`
averageTag.classList.add("average");
root.appendChild(averageTag);

}

getAgeAverage(root)

export const anotherExample = () => {
return [];
};
88 changes: 78 additions & 10 deletions src/index.html
Original file line number Diff line number Diff line change
@@ -1,11 +1,79 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Data Lovers</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<script src="main.js" type="module"></script>
</body>
</html>
<html lang="en">

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Juego de Tronos</title>
<link rel="stylesheet" href="style.css" />
<link rel="icon" type="image/x-icon" href="/src/Img/Targaryen.ico">
</head>
<body>
<header>
<h1>
<img src="./Img/Letras-doradas.png" alt="letras doradas game of thrones"/>
</h1>
<div class="contenedor-barra-principal">
<nav class="barra-navegacion">
<button class="boton-inicio">Inicio</button>
<button class="botonPersonajes">Personajes</button>
</nav>
</div>
</header>
<!-- Contenido de la página 1 -->
<div id="pagina1" class="pagina pagina-activa">
<main>
<h2> “Una reina que no confía en nadie es tan tonta como una reina que confía en todo el mundo”.</h2>
<h3>(Daenerys Targaryen)</h3>
</main>
<footer>Jessica Clemente y Daniela Padron<br>@DataLovers</footer>
</div>
<!-- Contenido de la página 2 -->
<div id="pagina2" class="pagina">
<div class="contenedor-barra-principal">
<div class="filters">
<label for="select-filter">Filtrar Casa:</label>
<select id="select-filter" data-testid="select-filter" name="family">
<option value="House Stark">Stark</option>
<option value="Worm">Worm</option>
<option value="House Tyrell">Tyrell</option>
<option value="Qyburn">Qyburn</option>
<option value="House Targaryen">Targaryen</option>
<option value="House Tarly">Tarly</option>
<option value="House Baratheon">Baratheon</option>
<option value="House Lannister">Lannister</option>
<option value="House Greyjoy">Greyjoy</option>
<option value="House Clegane">Clegane</option>
<option value="House Baelish">Baelish</option>
<option value="House Seaworth">Seaworth</option>
<option value="Unkown">Unknown</option>
<option value="Free Folk">Free Folk</option>
<option value="Tarth">Tarth</option>
<option value="Naathi">Naathi</option>
<option value="None">None</option>
<option value="Bolton">Bolton</option>
<option value="Naharis">Naharis</option>
<option value="Mormont">Mormont</option>
<option value="Sparrow">Sparrow</option>
<option value="Viper">Viper</option>
<option value="Sand">Sand</option>
<option value="Greyjoy">Greyjoy</option>
<option value="Lorathi">Lorathi</option>
</select>
<label for="sort-order">Ordenar:</label>
<select id="sort-order" data-testid="select-sort" name="abc">
<option value="asc">A-Z</option>
<option value="desc">Z-A</option>
</select>
<form action="">
<button class="button-clear" type="button" data-testid="button-clear">Limpiar</button>
</form>
</div>
</div>
<section id="root"></section>
</div>
<script type="module" src="view.js"></script>
<script type="module" src="main.js"></script>
<script type="module" src="dataFunctions.js"></script>
</body>
</html>
58 changes: 53 additions & 5 deletions src/main.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,56 @@
import { example } from './dataFunctions.js';
import data from './data/got/got.js';
import { renderItems } from './view.js';
import { sortFamilia, filterBy, mostrarPagina, getAgeAverage } from './dataFunctions.js';

const listaPersonajes = data.got;
let clonData = [...listaPersonajes]
const contenedorPersonajes = document.getElementById('root');
const botonInicio = document.querySelector('.boton-inicio');
const botonPersonajes = document.querySelector('.botonPersonajes');
const sort = document.getElementById("sort-order");
const selectFilter = document.querySelector("#select-filter");
const resetButton = document.querySelector(".button-clear");


const ul = renderItems(listaPersonajes);

contenedorPersonajes.appendChild(renderItems(listaPersonajes));
document.addEventListener('DOMContentLoaded', function() {

// Agrega event listeners para cada botón
botonInicio.addEventListener('click', function() {
mostrarPagina('pagina1');
});

botonPersonajes.addEventListener('click', function() {
mostrarPagina('pagina2');
getAgeAverage()
});

resetButton.addEventListener('click', function() {

contenedorPersonajes.replaceChildren();
contenedorPersonajes.appendChild(ul)
});
});


sort && sort.addEventListener("change", function(event) {
const selectedValue = event.target.value;
const FamiliaOrdenada = sortFamilia(selectedValue);
const ul = renderItems(FamiliaOrdenada);
contenedorPersonajes.replaceChildren();
contenedorPersonajes.appendChild(ul);
});

selectFilter.addEventListener("change",(e) => {
const filtroFamilia = filterBy(listaPersonajes,"family", e.target.value);
contenedorPersonajes.innerHTML = "";
clonData = filtroFamilia;
contenedorPersonajes.appendChild(renderItems(clonData));
});




// import data from './data/lol/lol.js';
import data from './data/pokemon/pokemon.js';
// import data from './data/rickandmorty/rickandmorty.js';

console.log(example, renderItems, data);
Loading