mirror of
https://github.com/allan-cff/strava-free-year-in-sport.git
synced 2026-01-18 16:47:35 +01:00
Merge branch 'main' of https://github.com/allan-cff/strava-free-year-in-sport
This commit is contained in:
@@ -137,7 +137,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<p>2/8</p>
|
||||
<p>2/9</p>
|
||||
</div>
|
||||
<div class="fleche fleche-droite">
|
||||
<a href="hours.html">
|
||||
|
||||
@@ -80,15 +80,15 @@
|
||||
|
||||
<footer>
|
||||
<div class="fleche fleche-gauche">
|
||||
<a href="fastest.html">
|
||||
<a href="pictures.html">
|
||||
<img src="./images/fleche-gauche.svg" alt="Flèche vers la gauche">
|
||||
</a>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<p>6/8</p>
|
||||
<p>8/9</p>
|
||||
</div>
|
||||
<div class="fleche fleche-droite">
|
||||
<a href="pictures.html">
|
||||
<a href="recap.html">
|
||||
<img src="./images/fleche-droite.svg" alt="Flèche vers la droite">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -19,6 +19,27 @@ function getBestEquipment(sportType, storedAs = 'equipments'){
|
||||
return best;
|
||||
}
|
||||
|
||||
function getTotals(){
|
||||
return JSON.parse(localStorage.getItem('totals'));
|
||||
}
|
||||
|
||||
function getActivity(id, storedAs='activities'){
|
||||
return JSON.parse(localStorage.getItem(storedAs)).find(act => act.id === id);
|
||||
}
|
||||
|
||||
function parseSeconds(seconds){
|
||||
const hours = (seconds/60/60).toFixed(0);
|
||||
seconds -= hours*60*60;
|
||||
const minutes = (seconds/60).toFixed(0);
|
||||
seconds -= minutes*60;
|
||||
if(hours > 0){
|
||||
return hours + ':' + minutes + ':' + seconds;
|
||||
} else {
|
||||
return minutes + ':' + seconds;
|
||||
}
|
||||
}
|
||||
|
||||
const totals = getTotals();
|
||||
const bestRideEquipment = getBestEquipment('ride');
|
||||
if(bestRideEquipment !== null){
|
||||
const bestBike = JSON.parse(localStorage.getItem(bestRideEquipment.id));
|
||||
@@ -35,4 +56,10 @@ if(bestRunEquipment !== null){
|
||||
document.querySelector('#cap .modele').innerHTML = bestShoes.brand_name + ' ' + bestShoes.model_name;
|
||||
document.querySelector('#cap .nb-km').innerHTML = (bestShoes.year_distance/1000).toFixed(0);
|
||||
document.querySelector('#cap .heures').innerHTML = `Vous avez passé ${bestShoes.year_hours.toFixed(0)}h en compagnie de ${bestShoes.nickname}`;
|
||||
}
|
||||
}
|
||||
if(totals.heartrate.count > 0){
|
||||
document.querySelector('#fc .nombre-sm').innerHTML = (totals.heartrate.total / totals.heartrate.count).toFixed(1);
|
||||
const maxHeartrateActivity = getActivity(totals.heartrate.maxId);
|
||||
document.querySelector('#max #sortie-max p:nth-child(1)').innerHTML = maxHeartrateActivity.name;
|
||||
document.querySelector('#max #sortie-max p:nth-child(2)').innerHTML = `${new Date(maxHeartrateActivity.start_date).toLocaleDateString(undefined, { month: 'short', day: 'numeric' })} | ${(maxHeartrateActivity.distance/1000).toFixed(2)}km | ${parseSeconds(maxHeartrateActivity.moving_time)}`;
|
||||
}
|
||||
@@ -105,7 +105,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<p>5/8</p>
|
||||
<p>5/9</p>
|
||||
</div>
|
||||
<div class="fleche fleche-droite">
|
||||
<a href="performances.html">
|
||||
|
||||
@@ -76,7 +76,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<p>3/8</p>
|
||||
<p>3/9</p>
|
||||
</div>
|
||||
<div class="fleche fleche-droite">
|
||||
<a href="totals.html">
|
||||
|
||||
@@ -241,7 +241,8 @@ function getTotals(storedAs = 'activities', storeAs = 'totals'){
|
||||
heartrate : {
|
||||
total : 0,
|
||||
count : 0,
|
||||
max : 0
|
||||
max : 0,
|
||||
maxId : undefined
|
||||
},
|
||||
ride : {
|
||||
climb : 0,
|
||||
@@ -286,7 +287,10 @@ function getTotals(storedAs = 'activities', storeAs = 'totals'){
|
||||
if("average_heartrate" in activity){
|
||||
totals.heartrate.count += 1;
|
||||
totals.heartrate.total += activity.average_heartrate;
|
||||
totals.heartrate.max = Math.max(totals.heartrate.max, activity.average_heartrate);
|
||||
if(activity.average_heartrate > totals.heartrate.max){
|
||||
totals.heartrate.max = activity.average_heartrate;
|
||||
totals.heartrate.maxId = activity.id;
|
||||
}
|
||||
}
|
||||
switch(activity.type){
|
||||
case 'Ride' :
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<p>1/8</p>
|
||||
<p>1/9</p>
|
||||
</div>
|
||||
<div class="fleche fleche-droite">
|
||||
<a href="days.html">
|
||||
|
||||
@@ -35,12 +35,12 @@
|
||||
<section id="kudos">
|
||||
<div>
|
||||
<h2>Reçus</h2>
|
||||
<p class="nombre-md nb-kudos">54.879</p>
|
||||
<p class="nombre-md nb-kudos">0</p>
|
||||
</div>
|
||||
<div id="most-kudoed">
|
||||
<h2>Maximum</h2>
|
||||
<p class="nombre-md nb-kudos">40</p>
|
||||
<p class="texte-kudos">Nom sortie imagine c'est super long un truc de ouf</p>
|
||||
<p class="nombre-md nb-kudos">0</p>
|
||||
<p class="texte-kudos">no data</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<section id="everest">
|
||||
<p>Pour rappel, l'Everest fait 8.848m de haut.</p>
|
||||
<div>
|
||||
<p class="nombre-md">6,7</p>
|
||||
<p class="nombre-md">0</p>
|
||||
</div>
|
||||
|
||||
</section>
|
||||
@@ -65,7 +65,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<p>6/8</p>
|
||||
<p>6/9</p>
|
||||
</div>
|
||||
<div class="fleche fleche-droite">
|
||||
<a href="pictures.html">
|
||||
|
||||
@@ -31,8 +31,6 @@ const totals = getTotals()
|
||||
numberAnimation('.record .medaille .nombre-sm', getPRNumber());
|
||||
document.querySelector("#kudos .nombre-md").innerHTML = totals.total.kudos;
|
||||
const mostKudoed = JSON.parse(localStorage.getItem('activities')).find(a => a.id === parseInt(localStorage.getItem('most-kudoed'), 10));
|
||||
document.querySelector("#kudos #most-kudoed .nombre-md").innerHTML = mostKudoed.kudos_count;
|
||||
document.querySelector("#kudos #most-kudoed .texte-kudos").innerHTML = mostKudoed.name;
|
||||
if(totals.heartrate.count > 0){
|
||||
document.querySelector("#fc .nombre-sm").innerHTML = (totals.heartrate.total / totals.heartrate.count).toFixed(1);
|
||||
}
|
||||
document.querySelector('#kudos #most-kudoed .nombre-md').innerHTML = mostKudoed.kudos_count;
|
||||
document.querySelector('#kudos #most-kudoed .texte-kudos').innerHTML = mostKudoed.name;
|
||||
document.querySelector('#everest .nombre-md').innerHTML = (totals.total.climb/8848).toFixed(1);
|
||||
@@ -80,10 +80,10 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<p>7/8</p>
|
||||
<p>7/9</p>
|
||||
</div>
|
||||
<div class="fleche fleche-droite">
|
||||
<a href="recap.html">
|
||||
<a href="equipment.html">
|
||||
<img src="./images/fleche-droite.svg" alt="Flèche vers la droite">
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -66,12 +66,12 @@
|
||||
|
||||
<footer>
|
||||
<div class="fleche fleche-gauche">
|
||||
<a href="pictures.html">
|
||||
<a href="equipment.html">
|
||||
<img src="./images/fleche-gauche.svg" alt="Flèche vers la gauche">
|
||||
</a>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<p>8/8</p>
|
||||
<p>9/9</p>
|
||||
</div>
|
||||
<div class="fleche fleche-droite">
|
||||
<a href="landing.html">
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
</a>
|
||||
</div>
|
||||
<div class="pagination">
|
||||
<p>4/8</p>
|
||||
<p>4/9</p>
|
||||
</div>
|
||||
<div class="fleche fleche-droite">
|
||||
<a href="fastest.html">
|
||||
|
||||
Reference in New Issue
Block a user