Add own user to the score table
This commit is contained in:
parent
589b8deaae
commit
bd6477e9a4
@ -105,7 +105,7 @@
|
|||||||
</tr>
|
</tr>
|
||||||
</template>
|
</template>
|
||||||
<template x-if="$store.state.data.otherUsers.length > 0">
|
<template x-if="$store.state.data.otherUsers.length > 0">
|
||||||
<template x-for="otherUser in $store.state.data.otherUsers">
|
<template x-for="otherUser in $store.state.scoreTable">
|
||||||
<tr>
|
<tr>
|
||||||
<template x-if="otherUser.isHidden">
|
<template x-if="otherUser.isHidden">
|
||||||
<td>
|
<td>
|
||||||
|
|||||||
@ -21,9 +21,18 @@ document.getElementById("submit-activity-template-button")?.addEventListener("cl
|
|||||||
let loadingDiv = document.getElementById("loading-div");
|
let loadingDiv = document.getElementById("loading-div");
|
||||||
let contentDiv = document.getElementById("content-div");
|
let contentDiv = document.getElementById("content-div");
|
||||||
|
|
||||||
|
interface ScoreTableEntry {
|
||||||
|
name: string,
|
||||||
|
isHidden?: boolean,
|
||||||
|
totalKilometers?: number,
|
||||||
|
earliestActivity?: string,
|
||||||
|
latestActivity?: string
|
||||||
|
}
|
||||||
|
|
||||||
// ---------------- ALPINE STATE -----------------------
|
// ---------------- ALPINE STATE -----------------------
|
||||||
interface AlpineState {
|
interface AlpineState {
|
||||||
data: Sykkelaksjon,
|
data: Sykkelaksjon,
|
||||||
|
scoreTable: ScoreTableEntry[],
|
||||||
registerTemplateActivity: (template: ActivityTemplate) => void,
|
registerTemplateActivity: (template: ActivityTemplate) => void,
|
||||||
deleteTemplateActivity: (template: ActivityTemplate) => void,
|
deleteTemplateActivity: (template: ActivityTemplate) => void,
|
||||||
deleteActivity: (activity: Activity) => void,
|
deleteActivity: (activity: Activity) => void,
|
||||||
@ -52,6 +61,7 @@ let defaultData: Sykkelaksjon = {
|
|||||||
|
|
||||||
let alpineState: AlpineState = {
|
let alpineState: AlpineState = {
|
||||||
data: defaultData,
|
data: defaultData,
|
||||||
|
scoreTable: [],
|
||||||
registerTemplateActivity: registerTemplateActivity,
|
registerTemplateActivity: registerTemplateActivity,
|
||||||
deleteTemplateActivity: deleteTemplateActivity,
|
deleteTemplateActivity: deleteTemplateActivity,
|
||||||
deleteActivity: deleteActivity,
|
deleteActivity: deleteActivity,
|
||||||
@ -68,6 +78,26 @@ let alpineState: AlpineState = {
|
|||||||
},
|
},
|
||||||
setServerMessage(newMessage: Sykkelaksjon) {
|
setServerMessage(newMessage: Sykkelaksjon) {
|
||||||
this.data = newMessage;
|
this.data = newMessage;
|
||||||
|
|
||||||
|
let scoreTable: ScoreTableEntry[] = [];
|
||||||
|
newMessage.otherUsers.forEach(user => scoreTable.push(user));
|
||||||
|
|
||||||
|
let totalKilometers = newMessage.activities.reduce((sum, activity) => {
|
||||||
|
return sum += activity.numberOfUnits * activity.activityType.conversionFactor;
|
||||||
|
}, 0.0);
|
||||||
|
let dates = newMessage.activities.map(a => a.date).toSorted();
|
||||||
|
let firstDate = dates.at(0);
|
||||||
|
let lastDate = dates.at(dates.length - 1);
|
||||||
|
scoreTable.push({
|
||||||
|
name: newMessage.name,
|
||||||
|
isHidden: newMessage.isHidden,
|
||||||
|
totalKilometers: totalKilometers,
|
||||||
|
earliestActivity: firstDate,
|
||||||
|
latestActivity: lastDate
|
||||||
|
});
|
||||||
|
|
||||||
|
scoreTable.sort((a, b) => {return (a.totalKilometers ?? 0) - (b.totalKilometers ?? 0)});
|
||||||
|
this.scoreTable = scoreTable;
|
||||||
},
|
},
|
||||||
getServerMessage(): Sykkelaksjon {
|
getServerMessage(): Sykkelaksjon {
|
||||||
return this.data;
|
return this.data;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user