94 lines
3.7 KiB
JavaScript
94 lines
3.7 KiB
JavaScript
|
|
import { FlowRouter } from 'meteor/ostrio:flow-router-extra';
|
||
|
|
import { Workouts } from '../../../../imports/api/workouts';
|
||
|
|
import { WorkoutLog } from '../../../../imports/api/workoutLog';
|
||
|
|
import { LogEntry } from '../../../../imports/api/logEntry';
|
||
|
|
|
||
|
|
Template.logEntry.onCreated(function() {
|
||
|
|
this.subscribe("myWorkoutRoutines");
|
||
|
|
this.subscribe("myWorkoutLog");
|
||
|
|
this.subscribe("myLogEntries");
|
||
|
|
});
|
||
|
|
|
||
|
|
Template.logEntry.onRendered(function() {
|
||
|
|
Session.set("exId", "");
|
||
|
|
Session.set("exIdSelected", false);
|
||
|
|
});
|
||
|
|
|
||
|
|
Template.logEntry.helpers({
|
||
|
|
workoutLog: function() {
|
||
|
|
return WorkoutLog.find({});
|
||
|
|
},
|
||
|
|
exerciseToLog: function() {
|
||
|
|
let exId = Session.get("exerciseLogId");
|
||
|
|
return WorkoutLog.findOneAsync({ _id: exId });
|
||
|
|
},
|
||
|
|
exIdSelected: function() {
|
||
|
|
return Session.get("exIdSelected");
|
||
|
|
}
|
||
|
|
});
|
||
|
|
|
||
|
|
Template.logEntry.events({
|
||
|
|
'change #selectExerciseToLog' (e) {
|
||
|
|
let exerciseId = $("#selectExerciseToLog").val();
|
||
|
|
Session.set("exerciseLogId", exerciseId);
|
||
|
|
Session.set("exIdSelected", true);
|
||
|
|
},
|
||
|
|
'click #saveLogEntry' (e) {
|
||
|
|
let logId = Session.get("exerciseLogId");
|
||
|
|
|
||
|
|
const getRoutine = async() => {
|
||
|
|
let workout = await WorkoutLog.findOneAsync({ _id: logId });
|
||
|
|
|
||
|
|
if (!workout) {
|
||
|
|
console.log("no workout found.");
|
||
|
|
} else {
|
||
|
|
let routineId = workout.routineId;
|
||
|
|
let exerName = workout.exerciseName;
|
||
|
|
let measure1 = $("#" + workout.exerciseMeasure).val();
|
||
|
|
let measUnit1 = workout.exerciseUnitMeasure;
|
||
|
|
let measure2 = $("#" + workout.exerciseMeasure2).val();
|
||
|
|
let measUnit2 = workout.exerciseUnitMeasure2;
|
||
|
|
let measure3 = $("#" + workout.exerciseMeasure3).val();
|
||
|
|
let measUnit3 = workout.exerciseUnitMeasure3;
|
||
|
|
let measName1 = workout.exerciseMeasure;
|
||
|
|
let measName2 = workout.exerciseMeasure2;
|
||
|
|
let measName3 = workout.exerciseMeasure3;
|
||
|
|
|
||
|
|
let meas1 = Number(measure1);
|
||
|
|
let meas2 = Number(measure2);
|
||
|
|
let meas3 = Number(measure3);
|
||
|
|
|
||
|
|
if (meas1 == "" || meas1 == null) {
|
||
|
|
showSnackbar("Measurement for " + workout.exerciseMeasure + " is required!", " red");
|
||
|
|
return;
|
||
|
|
} else {
|
||
|
|
const saveLogEntry = async() => {
|
||
|
|
try {
|
||
|
|
const result = Meteor.callAsync('add.logEntry', routineId, logId, exerName, measName1, meas1, measUnit1, measName2, meas2, measUnit2, measName3, meas3, measUnit3);
|
||
|
|
if (!result) {
|
||
|
|
console.log(" UNABLE TO SAVE LOG ENTRY!");
|
||
|
|
showSnackbar("Unable to save log entry!", "red");
|
||
|
|
} else {
|
||
|
|
$("#" + workout.exerciseMeasure).val("");
|
||
|
|
$("#" + workout.exerciseMeasure2).val("");
|
||
|
|
$("#" + workout.exerciseMeasure3).val("");
|
||
|
|
$("#selectExerciseToLog").val("");
|
||
|
|
Session.set("exIdSelected", false);
|
||
|
|
Session.set("exerciseLogId", "");
|
||
|
|
showSnackbar("Log Entry Added!", "green");
|
||
|
|
}
|
||
|
|
} catch(error) {
|
||
|
|
console.log(" ERROR saving log entry: " + error);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
saveLogEntry();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
getRoutine();
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
}
|
||
|
|
});
|