mirror of
https://github.com/appen-isen/site-interpromo-2024.git
synced 2026-03-18 21:40:39 +01:00
remade sports.js + rewrited duplicate code in functions
This commit is contained in:
@@ -4,22 +4,27 @@ import pb from './login.js'
|
||||
const SportList = await pb.collection('sport').getFullList({});
|
||||
|
||||
const classBasketballList = await pb.collection('class_basketball').getFullList({
|
||||
sort: '+classement',
|
||||
expand: 'team',
|
||||
});
|
||||
|
||||
const classVoleyballList = await pb.collection('class_voleyball').getFullList({
|
||||
sort: '+classement',
|
||||
expand: 'team',
|
||||
});
|
||||
|
||||
const classFootballList = await pb.collection('class_football').getFullList({
|
||||
sort: '+classement',
|
||||
expand: 'team',
|
||||
});
|
||||
|
||||
const classHandballList = await pb.collection('class_handball').getFullList({
|
||||
sort: '+classement',
|
||||
expand: 'team',
|
||||
});
|
||||
|
||||
const classDefiList = await pb.collection('class_defi').getFullList({
|
||||
sort: '+classement',
|
||||
expand: 'team',
|
||||
});
|
||||
|
||||
@@ -28,60 +33,40 @@ const matchList = await pb.collection('match').getFullList({
|
||||
expand: 'sport,team1,team2',
|
||||
});
|
||||
|
||||
const sportCardContainer = document.getElementById("sportContainer");
|
||||
SportList.forEach(sport => {
|
||||
//Création de la carte
|
||||
const card = document.createElement('div');
|
||||
card.classList.add('card', 'my-3');
|
||||
const cardHeader = document.createElement('div');
|
||||
cardHeader.classList.add('card-header', 'text-center', 'bg-light-subtle', 'text-emphasis-light');
|
||||
//Affichage du nom du sport en majuscule
|
||||
cardHeader.innerHTML = sport.name.toUpperCase();
|
||||
card.appendChild(cardHeader);
|
||||
const cardBody = document.createElement('div');
|
||||
cardBody.classList.add('card-body', 'bg-light-subtle', 'text-emphasis-light');
|
||||
//Affichage de l'équipe en tête
|
||||
const cardTitle = document.createElement('h5');
|
||||
cardTitle.classList.add('card-title');
|
||||
let equipe = "";
|
||||
if(sport.name === "basketball") {
|
||||
classBasketballList.forEach(classe => {
|
||||
if(classe.classement === 1){
|
||||
equipe = classe.expand.team.name;
|
||||
}
|
||||
});
|
||||
} else if(sport.name === "volleyball") {
|
||||
classVoleyballList.forEach(classe => {
|
||||
if(classe.classement === 1){
|
||||
equipe = classe.expand.team.name;
|
||||
}
|
||||
});
|
||||
} else if(sport.name === "football") {
|
||||
classFootballList.forEach(classe => {
|
||||
if(classe.classement === 1){
|
||||
equipe = classe.expand.team.name;
|
||||
}
|
||||
});
|
||||
} else if(sport.name === "handball") {
|
||||
classHandballList.forEach(classe => {
|
||||
if(classe.classement === 1){
|
||||
equipe = classe.expand.team.name;
|
||||
}
|
||||
});
|
||||
} else if(sport.name === "defi") {
|
||||
classDefiList.forEach(classe => {
|
||||
if(classe.classement === 1){
|
||||
equipe = classe.expand.team.name;
|
||||
}
|
||||
});
|
||||
function selectWinner(orderedClassementList){
|
||||
if(orderedClassementList.length != 0){
|
||||
let firtClasse = orderedClassementList[0]
|
||||
if(firtClasse.classement === 1){
|
||||
return firtClasse.expand.team.name;
|
||||
} else {
|
||||
orderedClassementList.forEach(classe => {
|
||||
if(classe.classement === 1){
|
||||
return classe.expand.team.name;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
cardTitle.innerHTML = "Equipe en tête : " + equipe;
|
||||
cardBody.appendChild(cardTitle);
|
||||
card.appendChild(cardBody);
|
||||
//Affichage du prochain match
|
||||
const cardFooter = document.createElement('div');
|
||||
cardFooter.classList.add('card-footer', 'bg-light-subtle', 'text-emphasis-light');
|
||||
//Affichage du prochain match du sport
|
||||
return "";
|
||||
}
|
||||
|
||||
function getSportWinningTeam(sport){
|
||||
switch(sport.name){
|
||||
case "basketball":
|
||||
return selectWinner(classBasketballList)
|
||||
case "volleyball":
|
||||
return selectWinner(classVoleyballList)
|
||||
case "football":
|
||||
return selectWinner(classFootballList)
|
||||
case "handball":
|
||||
return selectWinner(classHandballList)
|
||||
case "defi enduro":
|
||||
return selectWinner(classDefiList) //TODO
|
||||
case "badminton":
|
||||
return "" //TODO
|
||||
}
|
||||
}
|
||||
|
||||
function getSportNextMatchText(sport){
|
||||
let match = "";
|
||||
matchList.forEach(matche => {
|
||||
if(matche.expand.sport.name === sport.name){
|
||||
@@ -89,15 +74,28 @@ SportList.forEach(sport => {
|
||||
}
|
||||
});
|
||||
if(match === ""){
|
||||
cardFooter.innerHTML = "Pas de match prévu";
|
||||
card.appendChild(cardFooter);
|
||||
sportCardContainer.appendChild(card);
|
||||
return;
|
||||
return "Pas de match prévu";
|
||||
}
|
||||
const time_start = new Date(match.heure_debut);
|
||||
cardFooter.innerHTML = "Prochain match : " + match.expand.team1.name + " vs " + match.expand.team2.name + " à " + time_start.getHours() + "h" + time_start.getMinutes();
|
||||
card.appendChild(cardFooter);
|
||||
sportCardContainer.appendChild(card);
|
||||
return "Prochain match : " + match.expand.team1.name + " vs " + match.expand.team2.name + " à " + time_start.getHours() + "h" + time_start.getMinutes();
|
||||
}
|
||||
|
||||
function getSportCard(sport){
|
||||
let winner = getSportWinningTeam(sport)
|
||||
let title = winner === "" ? "La compétition n'a pas commencé" : ("Equipe en tête : " + winner)
|
||||
return `
|
||||
<div class="card my-3">
|
||||
<div class="card-header text-center bg-light-subtle text-emphasis-light">${sport.name.toUpperCase()}</div>
|
||||
<div class="card-body bg-light-subtle text-emphasis-light">
|
||||
<h5 class="card-title">${title}</h5>
|
||||
</div>
|
||||
<div class="card-footer bg-light-subtle text-emphasis-light">${getSportNextMatchText(sport)}</div>
|
||||
</div>`
|
||||
}
|
||||
|
||||
const sportCardContainer = document.getElementById("sportContainer");
|
||||
SportList.forEach(sport => {
|
||||
sportCardContainer.insertAdjacentHTML("beforeend", getSportCard(sport))
|
||||
});
|
||||
|
||||
|
||||
|
||||
@@ -6,22 +6,27 @@ const EquipeList = await pb.collection('equipes').getFullList({
|
||||
});
|
||||
|
||||
const classBasketballList = await pb.collection('class_basketball').getFullList({
|
||||
sort: '+classement',
|
||||
expand: 'team',
|
||||
});
|
||||
|
||||
const classVoleyballList = await pb.collection('class_voleyball').getFullList({
|
||||
sort: '+classement',
|
||||
expand: 'team',
|
||||
});
|
||||
|
||||
const classFootballList = await pb.collection('class_football').getFullList({
|
||||
sort: '+classement',
|
||||
expand: 'team',
|
||||
});
|
||||
|
||||
const classHandballList = await pb.collection('class_handball').getFullList({
|
||||
sort: '+classement',
|
||||
expand: 'team',
|
||||
});
|
||||
|
||||
const classDefiList = await pb.collection('class_defi').getFullList({
|
||||
sort: '+classement',
|
||||
expand: 'team',
|
||||
});
|
||||
|
||||
@@ -33,42 +38,32 @@ const matchList = await pb.collection('match').getFullList({
|
||||
expand: 'team1,team2,sport',
|
||||
});
|
||||
|
||||
function findClassementInClassementList(classementList, equipe){
|
||||
if(classementList.length != 0){
|
||||
classementList.forEach(classe => {
|
||||
if (classe.expand.team.name === equipe.name) {
|
||||
return classe.classement;
|
||||
}
|
||||
});
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
function getTeamClassement(equipe){
|
||||
switch(equipe.expand.sport.name){
|
||||
case "football":
|
||||
classFootballList.forEach(classe => {
|
||||
if (classe.expand.team.name === equipe.name) {
|
||||
return classe.classement;
|
||||
}
|
||||
});
|
||||
return findClassementInClassementList(classFootballList, equipe);
|
||||
case "handball":
|
||||
classHandballList.forEach(classe => {
|
||||
if (classe.expand.team.name === equipe.name) {
|
||||
return classe.classement;
|
||||
}
|
||||
});
|
||||
return findClassementInClassementList(classHandballList, equipe);
|
||||
case "volleyball":
|
||||
classVoleyballList.forEach(classe => {
|
||||
if (classe.expand.team.name === equipe.name) {
|
||||
return classe.classement;
|
||||
}
|
||||
});
|
||||
return findClassementInClassementList(classVoleyballList, equipe);
|
||||
case "basketball":
|
||||
classBasketballList.forEach(classe => {
|
||||
if (classe.expand.team.name === equipe.name) {
|
||||
return classe.classement;
|
||||
}
|
||||
});
|
||||
return findClassementInClassementList(classBasketballList, equipe);
|
||||
case "badminton":
|
||||
//return ``
|
||||
return 0;
|
||||
case "defi enduro":
|
||||
classDefiList.forEach(classe => {
|
||||
if (classe.expand.team.name === equipe.name) {
|
||||
return classe.classement;
|
||||
}
|
||||
});
|
||||
return findClassementInClassementList(classDefiList, equipe);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
function getTeamRow(equipe){
|
||||
|
||||
Reference in New Issue
Block a user