Making improvements

This commit is contained in:
Brian McGonagill 2026-02-04 17:05:47 -06:00
parent 78e0e82449
commit dd7e4a4933
11 changed files with 349 additions and 52 deletions

View file

@ -1,5 +1,174 @@
<template name="workoutLog">
<h1>Workout Log</h1>
<h2>{{routineName}}</h2>
<h1>Create Workout Log</h1>
<h2>{{routine.routineName}}</h2>
<br>
<div class="grid">
<div>
<label for="exerciseName">Exercise Name</label>
<input type="text" class="exerciseName" id="exerciseName" required />
</div>
<div>
<label for="exerciseType">Exercise Type</label>
<select name="exerciseType" id="exerciseType" class="exerciseType">
<option value="" disabled selected>Choose ...</option>
<option value="Aerobic">Aerobic</option>
<option value="Endurance">Endurance</option>
<option value="Flexibility">Flexibility</option>
<option value="Strength">Strength</option>
</select>
</div>
</div>
<div class="grid">
<div>
<label for="exerciseMeasure">Exercise Measurement</label>
<select name="exerciseMeasure" id="exerciseMeasure">
<option value="" disabled selected>Choose ...</option>
<option value="Disatance">Distance</option>
<option value="Rate">Rate</option>
<option value="Time">Time</option>
<option value="Weight">Weight</option>
<option value="Reps">Reps</option>
<option value="Sets">Sets</option>
</select>
</div>
<div>
<label for="exerciseUnitMeasure">Measruement Unit 1</label>
<select name="exerciseUnitMeasure" id="exerciseUnitMeasure">
<option value="" disabled selected>Choose ...</option>
{{#if $eq exMeas1 "Disatance"}}
<option value="Miles">Miles</option>
<option value="Kilometers">Kilometers</option>
<option value="Meters">Meters</option>
<option value="Yards">Yards</option>
<option value="Feet">Feet</option>
{{/if}}
{{#if $eq exMeas1 "Weight"}}
<option value="Kilograms">Kilograms</option>
<option value="Pounds">Pounds</option>
{{/if}}
{{#if $eq exMeas1 "Time"}}
<option value="Hours">Hours</option>
<option value="Minutes">Minutes</option>
<option value="Seconds">Seconds</option>
<option value="Milliseconds">Milliseconds</option>
{{/if}}
{{#if $eq exMeas1 "Rate"}}
<option value="Kilometers per Hour">Kilometers per Hour</option>
<option value="Miles per Hour">Miles per Hour</option>
<option value="Beats per Minute">Beats per Minute</option>
<option value="Steps per Hour">Steps per Hour</option>
<option value="Steps per Minute">Steps per Minute</option>
{{/if}}
{{#if $eq exMeas1 "Sets"}}
<option value="Count">Count</option>
{{/if}}
</select>
</div>
</div>
<div class="grid">
<div>
<label for="exerciseMeasure2">Exercise Measurement 2</label>
<select name="exerciseMeasure2" id="exerciseMeasure2">
<option value="" disabled selected>Choose ...</option>
<option value="Disatance">Distance</option>
<option value="Rate">Rate</option>
<option value="Time">Time</option>
<option value="Weight">Weight</option>
<option value="Reps">Reps</option>
<option value="Sets">Sets</option>
</select>
</div>
<div>
<label for="exerciseUnitMeasure2">Measruement Unit 2</label>
<select name="exerciseUnitMeasure2" id="exerciseUnitMeasure2">
<option value="" disabled selected>Choose ...</option>
{{#if $eq exMeas2 "Disatance"}}
<option value="Miles">Miles</option>
<option value="Kilometers">Kilometers</option>
<option value="Meters">Meters</option>
<option value="Yards">Yards</option>
<option value="Feet">Feet</option>
{{/if}}
{{#if $eq exMeas2 "Weight"}}
<option value="Kilograms">Kilograms</option>
<option value="Pounds">Pounds</option>
{{/if}}
{{#if $eq exMeas2 "Time"}}
<option value="Hours">Hours</option>
<option value="Minutes">Minutes</option>
<option value="Seconds">Seconds</option>
<option value="Milliseconds">Milliseconds</option>
{{/if}}
{{#if $eq exMeas2 "Rate"}}
<option value="Kilometers per Hour">Kilometers per Hour</option>
<option value="Miles per Hour">Miles per Hour</option>
<option value="Beats per Minute">Beats per Minute</option>
<option value="Steps per Hour">Steps per Hour</option>
<option value="Steps per Minute">Steps per Minute</option>
{{/if}}
{{#if $eq exMeas2 "Sets"}}
<option value="Count">Count</option>
{{/if}}
</select>
</div>
</div>
<div class="grid">
<div>
<label for="exerciseMeasure3">Exercise Measurement 3</label>
<select name="exerciseMeasure3" id="exerciseMeasure3">
<option value="" disabled selected>Choose ...</option>
<option value="Disatance">Distance</option>
<option value="Rate">Rate</option>
<option value="Time">Time</option>
<option value="Weight">Weight</option>
<option value="Reps">Reps</option>
<option value="Sets">Sets</option>
</select>
</div>
<div>
<label for="exerciseUnitMeasure3">Measruement Unit 3</label>
<select name="exerciseUnitMeasure3" id="exerciseUnitMeasure3">
<option value="" disabled selected>Choose ...</option>
{{#if $eq exMeas3 "Disatance"}}
<option value="Miles">Miles</option>
<option value="Kilometers">Kilometers</option>
<option value="Meters">Meters</option>
<option value="Yards">Yards</option>
<option value="Feet">Feet</option>
{{/if}}
{{#if $eq exMeas3 "Weight"}}
<option value="Kilograms">Kilograms</option>
<option value="Pounds">Pounds</option>
{{/if}}
{{#if $eq exMeas3 "Time"}}
<option value="Hours">Hours</option>
<option value="Minutes">Minutes</option>
<option value="Seconds">Seconds</option>
<option value="Milliseconds">Milliseconds</option>
{{/if}}
{{#if $eq exMeas3 "Rate"}}
<option value="Kilometers per Hour">Kilometers per Hour</option>
<option value="Miles per Hour">Miles per Hour</option>
<option value="Beats per Minute">Beats per Minute</option>
<option value="Steps per Hour">Steps per Hour</option>
<option value="Steps per Minute">Steps per Minute</option>
{{/if}}
{{#if $eq exMeas3 "Sets"}}
<option value="Count">Count</option>
{{/if}}
</select>
</div>
</div>
<div class="grid">
<div>
<label for="exerciseInstruction">Instructions</label>
<textarea name="exerciseInstruction" id="exerciseInstruction"></textarea>
</div>
</div>
<div class="grid">
<div>
<button class="primary right" id="saveLogExercise">Save</button>
</div>
</div>
{{> snackbar}}
</template>

View file

@ -1,18 +1,89 @@
import { FlowRouter } from 'meteor/ostrio:flow-router-extra';
import { Workouts } from '../../../imports/api/workouts.js';
import { Workouts } from '../../../../imports/api/workouts';
import { WorkoutLog } from '../../../../imports/api/workoutLog';
Template.workoutsLog.onCreated(function() {
Template.workoutLog.onCreated(function() {
this.subscribe("myWorkoutRoutines");
this.subscribe("myWorkoutLog");
});
Template.workoutsLog.onRendered(function() {
Template.workoutLog.onRendered(function() {
});
Template.workoutsLog.helpers({
Template.workoutLog.helpers({
exMeas1: function() {
return Session.get("exMeas1");
},
exMeas2: function() {
return Session.get("exMeas2");
},
exMeas3: function() {
return Session.get("exMeas3");
},
routine: function() {
let routineId = Session.get("routineId");
let routine = Workouts.findOneAsync({ _id: routineId });
return routine;
}
});
Template.workoutsLog.events({
Template.workoutLog.events({
'change #exerciseMeasure, change #exerciseMeasure2, change #exerciseMeasure3' (e) {
let fieldId = e.currentTarget.id;
if (fieldId == "exerciseMeasure") {
let exMeas = $("#exerciseMeasure").val();
if (exMeas == "Sets" || exMeas == "Reps") {
exMeas = "Sets"
}
Session.set("exMeas1", exMeas);
} else if (fieldId == "exerciseMeasure2") {
let exMeas2 = $("#exerciseMeasure2").val();
if (exMeas2 == "Sets" || exMeas2 == "Reps") {
exMeas2 = "Sets"
}
Session.set("exMeas2", exMeas2);
} else {
let exMeas3 = $("#exerciseMeasure3").val();
if (exMeas3 == "Sets" || exMeas3 == "Reps") {
exMeas3 = "Sets"
}
Session.set("exMeas3", exMeas3);
}
},
'click #saveLogExercise' (e) {
let routineId = Session.get("routineId");
let exerciseName = $("#exerciseName").val();
let exerciseType = $("#exerciseType").val();
let exerciseMeasure = $("#exerciseMeasure").val();
let exerciseUnitMeasure = $("#exerciseUnitMeasure").val();
let exerciseMeasure2 = $("#exerciseMeasure2").val();
let exerciseUnitMeasure2 = $("#exerciseUnitMeasure2").val();
let exerciseMeasure3 = $("#exerciseMeasure3").val();
let exerciseUnitMeasure3 = $("#exerciseUnitMeasure3").val();
let exerciseInstruction = $("#exerciseInstruction").val();
if (typeof routineId == 'undefined' || routineId == null || routineId == "") {
showSnackbar("Unable to get Workout!", "red");
return;
} else if (exerciseName == "" || exerciseName == null) {
showSnackbar("Exercise Name is Required!", "red");
return;
} else {
const addExercise = async() => {
try {
const result = await Meteor.callAsync('add.exerciseToLog', routineId, exerciseName, exerciseType, exerciseMeasure, exerciseUnitMeasure, exerciseMeasure2, exerciseUnitMeasure2, exerciseMeasure3, exerciseUnitMeasure3, exerciseInstruction);
if (!result) {
console.log(" ISSUE saving exercise info for loggin.");
showSnackbar("Exercise Not Saved!", "red");
} else {
showSnackbar("Exercise Added!", "green");
}
} catch(error) {
console.log(" ERROR trying to add an exercise to log: " + error);
}
}
addExercise();
}
}
});

View file

@ -17,7 +17,7 @@
{{/if}}
<ul class="collection">
{{#each workoutRoutines}}
<li class="collection-item clickable" id="{{_id}}">{{routineName}}</li>
<li class="collection-item clickable routine" id="{{_id}}">{{routineName}}</li>
{{/each}}
<li class="collection-footer clickable" id="addRoutine"> + Add a Workout Routine</li>
</ul>

View file

@ -45,5 +45,11 @@ Template.workouts.events({
}
addWorkout();
}
}
},
'click .routine' (e) {
let routineId = e.currentTarget.id;
console.log("Routine ID set: " + routineId);
Session.set("routineId", routineId);
FlowRouter.go('/workoutLog');
},
});