index.html 7.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <meta name="theme-color" media="(prefers-color-scheme: dark)" content="#1a1a1a">
  7. <meta name="description" content="Minimalistic application for logging, tracking, monitoring and improving your workouts">
  8. <title>Workout Tracker</title>
  9. <link rel="stylesheet" href="/index.css">
  10. <link rel="icon" href="/logo.svg" type="image/svg+xml">
  11. <link rel="manifest" href="/manifest.json">
  12. </head>
  13. <body>
  14. <svg class="logo" width="90" height="60" viewBox="10 20 80 50" xmlns="http://www.w3.org/2000/svg">
  15. <defs>
  16. <linearGradient id="logoGradient" x1="0%" y1="0%" x2="100%" y2="0%">
  17. <stop offset="0%" stop-color="#e57600" />
  18. <stop offset="10%" stop-color="#f46036" />
  19. <stop offset="100%" stop-color="#d7263d" />
  20. </linearGradient>
  21. </defs>
  22. <path d="M10,40 Q25,20 50,30 Q75,40 90,30 Q75,50 50,60 Q25,70 10,60 Q25,50 10,40" fill="url(#logoGradient)" />
  23. </svg>
  24. <p id="notifier" style="display:none"></p>
  25. <div id="registerPage" class="page" style="display:none">
  26. <form id="registerForm" class="standardForm">
  27. <h1>Create Account</h1>
  28. <label>Name
  29. <input
  30. id="registerName"
  31. type="text"
  32. placeholder="Name"
  33. required
  34. >
  35. </label>
  36. <label>Email
  37. <input
  38. id="registerEmail"
  39. type="email"
  40. placeholder="Email"
  41. required
  42. >
  43. </label>
  44. <label>Password
  45. <input
  46. id="registerPass"
  47. type="password"
  48. placeholder="Password"
  49. required
  50. >
  51. </label>
  52. <label>Confirm Password
  53. <input
  54. id="registerConfirmPass"
  55. type="password"
  56. placeholder="Confirm Password"
  57. required
  58. >
  59. </label>
  60. <button>Create</button>
  61. </form>
  62. <button id="registerToLogin" class="link">Log In</button>
  63. </div>
  64. <div id="loginPage" class="page" style="display:none">
  65. <form id="loginForm" class="standardForm">
  66. <h1>Log In</h1>
  67. <label>Email
  68. <input
  69. id="loginEmail"
  70. type="email"
  71. placeholder="Email"
  72. required
  73. >
  74. </label>
  75. <label>Password
  76. <input
  77. id="loginPass"
  78. type="password"
  79. placeholder="Password"
  80. required
  81. />
  82. </label>
  83. <button>Log In</button>
  84. </form>
  85. <button id="loginToRegister" class="link">Register</button>
  86. </div>
  87. <div id="homePage" class="page" style="display:none">
  88. <button id="homeNewWorkout" class="button">+ Workout</button>
  89. <button id="installPwa" class="button">Install App</button>
  90. <h1>My Workouts</h1>
  91. <div id="workoutList"></div>
  92. <button id="homeLogout" class="link">Log Out</button>
  93. </div>
  94. <div id="newWorkoutPage" class="page" style="display:none">
  95. <button id="newWorkoutBack" class="button">Cancel</button>
  96. <div id="newWorkoutInputs">
  97. <label>Name of Workout:
  98. <input
  99. id="newWorkoutName"
  100. type="text"
  101. placeholder="Name"
  102. >
  103. </label>
  104. </div>
  105. <button id="newWorkoutFinish" class="button">Create Workout</button>
  106. </div>
  107. <div id="workoutMenuPage", class="page" style="display:none">
  108. <h1 id="workoutMenuTitle"></h1>
  109. <div id="workoutMenuButtons"></div>
  110. <div id="resumeWorkoutContainer" style="display:none">
  111. <h2>You have a previously unfinished session for this workout. What would you like to to?</h2>
  112. <button id="resumeWorkoutCancel" class="button">Cancel</button>
  113. </div>
  114. <div id="deleteWorkoutModal" style="display:none">
  115. <h1>Are you sure that you want to delete this workout?</h1>
  116. <h2>All workout sessions associated with the workout will also be deleted</h2>
  117. <h2 class="dangerText">THIS CANNOT BE UNDONE</h2>
  118. <button id="confirmDeleteWorkoutBtn" class="button">Delete Workout</button>
  119. <button id="cancelDeleteWorkoutBtn" class="button">Cancel</button>
  120. </div>
  121. </div>
  122. <div id="sessionPage" class="page" style="display:none">
  123. <h1 id="sessionExerciseName"></h1>
  124. <p id="previousSession"></p>
  125. <div id="sessionButtonBox">
  126. <button id="sessionNotesBtn" class="button">Notes</button>
  127. <button id="sessionAddSet" class="button">Add Set</button>
  128. </div>
  129. <button id="sessionExercisesBtn" class="button">Exercises</button>
  130. <div id="sessionExercisesList" style="display:none">
  131. <button id="closeExerciseList">X</button>
  132. </div>
  133. <div id="sessionNotesText" style="display:none">
  134. <textarea id="sessionTextArea"></textarea>
  135. <button id="sessionNotesDone" class="button">Done</button>
  136. </div>
  137. <div id="sessionSets"></div>
  138. <button id="nextSessionBtn" class="button">Next Exercise</button>
  139. <button id="finishSessionBtn" class="button">Finish Workout</button>
  140. <template id="weightSet">
  141. <div class="weightSet">
  142. <button class="weightSetDelete">X</button>
  143. <h3></h3>
  144. <label>Weight
  145. <input class="weightSetWeight" type="number" step="1">
  146. </label>
  147. <label>Reps
  148. <input class="weightSetReps" type="number" step="1">
  149. </label>
  150. </div>
  151. </template>
  152. </div>
  153. <div id="editWorkoutPage" class="page" style="display:none">
  154. <button
  155. id="editWorkoutAddExercise"
  156. aria-label="Add Exercise"
  157. class="button"
  158. >+ Exercise</button>
  159. <h1></h1>
  160. <div id="editWorkoutExercises"></div>
  161. <div id="newExerciseContainer" style="display:none">
  162. <input
  163. id="newExerciseInput"
  164. type="text"
  165. placeholder="New Exercise"
  166. />
  167. <button id="newExerciseSubmit">&#10003;</button>
  168. </div>
  169. <button id="editWorkoutSubmit" class="button">Finish</button>
  170. <button id="editWorkoutBack" class="button">Cancel</button>
  171. <template id="editWorkoutExercise">
  172. <div class="editWorkoutExercise">
  173. <div class="workoutMove">
  174. <button class="workoutMoveUp" aria-label="Move up">&#9650;</button>
  175. <button class="workoutMoveDown" aria-label="Move down">&#9660;</button>
  176. </div>
  177. <p></p>
  178. <button class="editWorkoutDelete" aria-label="Delete">X</button>
  179. </div>
  180. </template>
  181. </div>
  182. <script src="/index.js"></script>
  183. </body>
  184. </html>