diff --git a/back/src/controllers/equipe.controller.js b/back/src/controllers/equipe.controller.js index 829dca1bdafe89e2e33a29c0ec103f81c413a5ff..b4fc90675a691e8b869542be6b18e08f48bf4106 100644 --- a/back/src/controllers/equipe.controller.js +++ b/back/src/controllers/equipe.controller.js @@ -50,6 +50,20 @@ function getClassementEquipe(req, res) { con.end(); } +function getSprint(req, res) { + var con = mysql.createConnection(dbConfig); + var query = "Equipe.name as name,score FROM Score JOIN Equipe ON Equipe.id=Score.equipeId WHERE (Equipe.deleted = 0 AND (Score.deleted = 0 AND Score.participantId = 'sprint')) ORDER BY score DESC;" + con.connect(); + con.query(query, (err, result) => { + if (err) { + console.log(err) + return res.send({ success: false }) + } + return res.send(result) + }); + con.end(); +} + function getEquipes(req, res) { var con = mysql.createConnection(dbConfig); var query = "SELECT id,name FROM Equipe WHERE deleted = 0 ORDER BY name ASC;" @@ -124,4 +138,4 @@ function deleteEquipe(req, res) { } -module.exports = { getClassementEquipe, getEquipes, addNewEquipe, updateEquipe, deleteEquipe, getEquipesByUserId } +module.exports = { getClassementEquipe, getEquipes, addNewEquipe, updateEquipe, deleteEquipe, getEquipesByUserId, getSprint } diff --git a/back/src/routes/api.js b/back/src/routes/api.js index 492c5485bc722f48b926470d035279ae1be2ad69..c00bcef7fc8ccf3a4f1940a9b4026213756082e3 100644 --- a/back/src/routes/api.js +++ b/back/src/routes/api.js @@ -20,6 +20,7 @@ router.get('/nombre_participants', controller.participant.getNombreParticipants) router.get('/participants_by_id', controller.participant.getParticipantsById); router.get('/participants_ids', controller.participant.getParticipantsIdentifiants); router.get('/my_scores', controller.participant.getResultatsPersonnels); +router.get('/sprint', controller.equipe.getSprint) router.get('/administrateurs/login', controller.administrateur.getAdminsLogins); router.get('/staffeurs/login', controller.staffeurs.getStaffeursLogins); diff --git a/front/src/components/Classement.js b/front/src/components/Classement.js index bf0258c0a7f3b93f6f95d934d69ced6313aa1ab4..f3c00ef6cdd3c056df402ce7521a779043bcb59e 100644 --- a/front/src/components/Classement.js +++ b/front/src/components/Classement.js @@ -2,6 +2,7 @@ import React, { Component } from "react"; import { MDBContainer, MDBRow, MDBCol, MDBTabPane, MDBTabContent, MDBNav, MDBNavItem, MDBNavLink, MDBIcon } from "mdbreact"; import ClassIndiv from './Classement/ClassementIndividuel'; import ClassEquipe from './Classement/ClassementEquipe'; +import ClassSprint from './Classement/ClassementSprint'; class Classement extends Component { state = { @@ -38,6 +39,11 @@ class Classement extends Component { <MDBIcon icon="users" className="mr-1" /> Associations </MDBNavLink> </MDBNavItem> + <MDBNavItem> + <MDBNavLink link to="#" active={this.state.items["default"] === "3"} onClick={this.togglePills("default", "3")} > + <MDBIcon icon="running" className="mr-1" /> Sprint + </MDBNavLink> + </MDBNavItem> </MDBNav> <MDBTabContent activeItem={this.state.items["default"]}> <MDBTabPane tabId="1"> @@ -46,6 +52,9 @@ class Classement extends Component { <MDBTabPane tabId="2"> <ClassEquipe /> </MDBTabPane> + <MDBTabPane tabId="2"> + <ClassSprint /> + </MDBTabPane> </MDBTabContent> </MDBCol> </MDBRow> diff --git a/front/src/components/Classement/ClassementSprint.js b/front/src/components/Classement/ClassementSprint.js new file mode 100644 index 0000000000000000000000000000000000000000..a5339b213a308a1806c63cc02fd648de3acea8b1 --- /dev/null +++ b/front/src/components/Classement/ClassementSprint.js @@ -0,0 +1,65 @@ +import React, { useState, useEffect } from 'react'; +import axios from 'axios'; +import { MDBDataTableV5 } from 'mdbreact'; +import eventData from "../../eventData/eventData.json"; + +export default function ClassEquipe() { + + var data = []; + var [participants,setParticipants] = useState([]); + useEffect(() => { + const interval = setInterval(() => { + axios.get('/api/sprint').then((response) => setParticipants(response.data)); + }, 500); + return () => clearInterval(interval); + }, []); + + function RefreshData() { + var i = 1; + participants.map((item) => + data.push( + { + rank: i++, + association: item.name, + distance: item.score, + dons: Math.trunc(item.score*eventData.argentParMetre)+" €" + }, + ) + ); + return({ + columns: [ + { + label: '# Rang', + field: 'rank', + sort: 'disabled', + width: 100, + }, + { + label: 'Association', + field: 'association', + width: 150, + sort: 'disabled', + attributes: { + 'aria-controls': 'DataTable', + 'aria-label': 'Association', + }, + }, + { + label: 'Distance (m)', + field: 'distance', + sort: 'disabled', + width: 100, + }, + { + label: 'Dons rapportés', + field: 'dons', + sort: 'disabled', + width: 100, + }, + ], + rows: data}) + } + + + return <MDBDataTableV5 paging={false} hover striped info={false} data={RefreshData()} searchLabel="Rechercher" responsiveLg />; +} \ No newline at end of file diff --git a/front/src/components/LeaderboardSB/ClassementEquipe.js b/front/src/components/LeaderboardSB/ClassementEquipe.js index f9320858e5a9756e58fa3919cf0ebf70398f5368..058b1ad68d84b0ad55fb5a3d2550d8c93c1fa37b 100644 --- a/front/src/components/LeaderboardSB/ClassementEquipe.js +++ b/front/src/components/LeaderboardSB/ClassementEquipe.js @@ -22,7 +22,7 @@ const BasicTable = () => { <tr> <th>#</th> <th>Association</th> - <th>Distance</th> + <th>Distance (m)</th> <th>Participants</th> </tr> </MDBTableHead> diff --git a/front/src/components/LeaderboardSB/ClassementIndividuel.js b/front/src/components/LeaderboardSB/ClassementIndividuel.js index f7290b458019bd06811cadeb892a94e90e7debcf..100eef11daa8706f2c030f4c6d8307ad6987c86b 100644 --- a/front/src/components/LeaderboardSB/ClassementIndividuel.js +++ b/front/src/components/LeaderboardSB/ClassementIndividuel.js @@ -22,7 +22,7 @@ const BasicTable = () => { <th>#</th> <th>Rameuse/Rameur</th> <th>Association(s)</th> - <th>Distance</th> + <th>Distance (m)</th> </tr> </MDBTableHead> <MDBTableBody> diff --git a/front/src/components/Login/SubmitForm.js b/front/src/components/Login/SubmitForm.js index 0f9b0ffae6290a565388910df337d46448a1769b..267ac754dcdd70984347d4b790f836dac8bea0f1 100644 --- a/front/src/components/Login/SubmitForm.js +++ b/front/src/components/Login/SubmitForm.js @@ -9,7 +9,7 @@ function Submit(props) { var realId; var realName; - if (timenow < 0/*eventData.dateFin*/) { + if (timenow <= eventData.dateFin) { realId = props.participant.value; realName = props.participant.label }