editWorkout.js 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. export default {
  2. rendered: false,
  3. render: function(workout){
  4. document.querySelector("#editWorkoutPage h1").textContent = workout.name;
  5. this.displayExercises(workout.exercises);
  6. if(!this.rendered){
  7. this.buttons();
  8. this.rendered = true;
  9. }
  10. },
  11. buttons: function(){
  12. document.getElementById("editWorkoutBack").addEventListener("click", ()=>{changePage("home")});
  13. },
  14. displayExercises: function(exercises){
  15. const container = document.getElementById("editWorkoutExercises");
  16. const template = document.getElementById("editWorkoutExercise").content.children[0];
  17. for(let i = 0; i < exercises.length; i++){
  18. const exercise = template.cloneNode(true);
  19. exercise.setAttribute("data-id", exercises[i]._id);
  20. exercise.querySelector("p").textContent = exercises[i].name;
  21. exercise.querySelector(".editWorkoutDelete").addEventListener("click", ()=>{
  22. container.removeChild(exercise);
  23. });
  24. exercise.querySelector(".workoutMoveUp").addEventListener("click", (e)=>{
  25. this.moveExercise(e.target.parentElement.parentElement, true);
  26. });
  27. exercise.querySelector(".workoutMoveDown").addEventListener("click", (e)=>{
  28. this.moveExercise(e.target.parentElement.parentElement, false);
  29. });
  30. container.appendChild(exercise);
  31. }
  32. },
  33. moveExercise: function(elem, moveUp){
  34. const otherElem = moveUp ? elem.previousElementSibling : elem.nextElementSibling;
  35. if(moveUp){
  36. elem.parentElement.insertBefore(elem, otherElem);
  37. }else{
  38. elem.parentElement.insertBefore(otherElem, elem);
  39. }
  40. }
  41. }