Эх сурвалжийг харах

Create button to resume a previous workout session.

Lee Morgan 1 жил өмнө
parent
commit
b94a58a753

+ 0 - 1
views/index.html

@@ -130,7 +130,6 @@
 
         <div id="resumeWorkoutContainer" style="display:none">
             <h2>You have a previously unfinished session for this workout. What would you like to to?</h2>
-            <button id="discardWorkoutBtn" class="button">Discard Previous and Start New</button>
             <button id="resumeWorkoutBtn" class="button">Resume Previous Workout</button>
             <button id="resumeWorkoutCancel" class="button">Cancel</button>
         </div>

+ 14 - 3
views/js/pages/session.js

@@ -8,7 +8,14 @@ export default {
     render: async function(workout){
         this.workout = workout;
         this.pastSessions = await this.getPastSessions(workout.id);
-        this.currentSession = this.createNewSession(workout);
+
+        const previous = localStorage.getItem(workout.id);
+        if(previous){
+            this.currentSession = JSON.parse(previous);
+            this.exerciseIndex = this.currentSession.exerciseIndex;
+        }else{
+            this.currentSession = this.createNewSession(workout);
+        }
 
         this.buttons();
         this.changeExercise(0);
@@ -62,7 +69,8 @@ export default {
             workout: workout.id,
             start: new Date(),
             notes: "",
-            exercises: []
+            exercises: [],
+            exerciseIndex: this.exerciseIndex
         };
 
         localStorage.setItem(workout.id, JSON.stringify(session));
@@ -70,7 +78,10 @@ export default {
     },
 
     changeExercise: function(num){
-        if(num !== 0) localStorage.setItem(this.workout.id, JSON.stringify(this.currentSession));
+        if(num !== 0){
+            this.currentSession.exerciseIndex = this.exerciseIndex + 1;
+            localStorage.setItem(this.workout.id, JSON.stringify(this.currentSession));
+        }
         this.exerciseIndex += num;
         if(this.exerciseIndex === this.workout.exercises.length-1){
             document.getElementById("nextSessionBtn").style.display = "none";

+ 11 - 0
views/js/pages/workoutMenu.js

@@ -38,6 +38,12 @@ export default {
         discard.textContent = "Discard Previous and Start New";
         discard.addEventListener("click", ()=>{this.discard(workout)});
         container.appendChild(discard);
+
+        const resume = document.createElement("button");
+        resume.classList.add("button");
+        resume.textContent = "Resume Previous Workout";
+        resume.addEventListener("click", ()=>{this.resume(workout)});
+        container.appendChild(resume);
     },
 
     finish: function(workout){
@@ -71,5 +77,10 @@ export default {
         localStorage.removeItem(workout.id);
         document.getElementById("resumeWorkoutContainer").style.display = "none";
         changePage("session", workout);
+    },
+
+    resume: function(workout){
+        document.getElementById("resumeWorkoutContainer").style.display = "none";
+        changePage("session", workout);
     }
 }