Forráskód Böngészése

Only show non-archvied exercises to users.

Lee Morgan 1 éve
szülő
commit
699811ff61

+ 9 - 2
controllers/workout.js

@@ -129,11 +129,18 @@ const updateExercises = (exercises, data)=>{
  @return {Object} - Modified Workout object
  */
 const responseWorkout = (workout)=>{
-    return {
+    const data = {
         id: workout._id,
         name: workout.name,
-        exercises: workout.exercises
+        exercises: []
     };
+
+    for(let i = 0; i < workout.exercises.length; i++){
+        if(workout.exercises[i].archived) continue;
+        data.exercises.push(workout.exercises[i]);
+    }
+
+    return data;
 }
 
 export {

+ 4 - 1
views/js/pages/editWorkout.js

@@ -116,7 +116,10 @@ export default {
                     notify("error", response.error.message);
                 }else{
                     notify("success", "Workout updated");
-                    changePage("workoutMenu", response);
+                    changePage("home", {
+                        type: "replace",
+                        workout: response
+                    });
                 }
             })
             .catch((err)=>{

+ 27 - 3
views/js/pages/home.js

@@ -64,8 +64,17 @@ export default {
         }
     },
 
+    handleUpdate: function(update){
+        switch(update.type){
+            case "new": this.addWorkout(update.workout); break;
+            case "remove": this.removeWorkout(update.workout); break;
+            case "replace": this.replaceWorkout(update.workout); break;
+        }
+    },
+
     addWorkout: function(workout){
         const button = document.createElement("button");
+        button.workoutId = workout.id;
         button.classList.add("button");
         button.textContent = workout.name;
         button.addEventListener("click", ()=>{
@@ -74,9 +83,24 @@ export default {
         this.workoutList.appendChild(button);
     },
 
-    handleUpdate: function(update){
-        switch(update.type){
-            case "new": this.addWorkout(update.workout); break;
+    removeWorkout: function(workoutId){
+        const workouts = this.workoutList.children;
+        for(let i = 0; i < workouts.length; i++){
+            if(workouts[i].workoutId === workoutId){
+                this.workoutList.removeChild(workouts[i]);
+                break;
+            }
+        }
+    },
+
+    replaceWorkout: function(workout){
+        const workouts = this.workoutList.children;
+        for(let i = 0; i < workouts.length; i++){
+            if(workouts[i].workoutId === workout.id){
+                this.workoutList.removeChild(workouts[i]);
+                this.addWorkout(workout);
+                break;
+            }
         }
     }
 }

+ 4 - 2
views/js/pages/workoutMenu.js

@@ -151,8 +151,10 @@ export default {
                 if(response.error){
                     notify("error", response.error.message);
                 }else{
-                    console.log("delete");
-                    //update workouts
+                    changePage("home", {
+                        type: "remove",
+                        workout: workout.id
+                    });
                 }
             })
             .catch((err)=>{