| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- export default {
- workout: null,
- exerciseIndex: 0,
- pastSessions: null,
- previousExercise: null,
- render: async function(workout){
- this.workout = workout;
- this.pastSessions = await this.getPastSessions(workout.id);
- this.switchExercise(0);
- },
- getPastSessions: async function(id){
- const sessions = await fetch(`/session/${id}`, {
- method: "GET",
- headers: {
- "Content-Type": "application/json"
- }
- });
- if(sessions.error){
- notify("error", "ERROR: Unable to retrieve past workouts");
- return [];
- }
- return await sessions.json();
- },
- switchExercise: function(num){
- this.exerciseIndex += num;
- this.previousExercise = this.findPreviousExercise();
- this.renderPreviousSessionData();
- this.renderExercise();
- },
- findPreviousExercise: function(){
- for(let i = 0; i < this.pastSessions.length; i++){
- for(let j = 0; j < this.pastSessions[i].exercises.length; j++){
- const exercise = this.pastSessions[i].exercises[j];
- if(exercise.exerciseId === this.workout.exercises[this.exerciseIndex]){
- return exercise;
- }
- }
- }
- return null;
- },
- renderExercise: function(){
- const container = document.getElementById("sessionSets");
- const weightTemplate = document.getElementById("weightSet").content.children[0];
- let setCount = 0;
- const title = document.createElement("h1");
- title.textContent = this.workout.exercises[this.exerciseIndex].name;
- container.appendChild(title);
- if(this.previousExercise){
- setCount = this.previousExercise.sets.length;
- }else{
- setCount = 3;
- }
- for(let i = 0; i < setCount; i++){
- const weightSet = weightTemplate.cloneNode(true);
- weightSet.querySelector("h3").textContent = `Set #${i+1}`;
- if(this.previousExercise){
- weightSet.querySelector(".weightSetWeight").value = this.previousExercise.sets[i].weight;
- }
- weightSet.querySelector(".weightSetWeight").addEventListener("change", this.update.bind(this));
- container.appendChild(weightSet);
- }
- },
- renderPreviousSessionData: function(){
- const container = document.getElementById("previousSession");
- if(!this.previousExercise){
- const p = document.createElement("p");
- p.id = "noSessionText";
- p.textContent = "No previous workout data to display";
- container.appendChild(p);
- }else{
- console.log("not implemented");
- }
- },
- update: function(){
- console.log("something");
- }
- }
|