diff --git a/client/General/Home/home.html b/client/General/Home/home.html index e0d358d..60b3e3b 100644 --- a/client/General/Home/home.html +++ b/client/General/Home/home.html @@ -3,25 +3,47 @@
-
-
+

Workouts

+
+
+
+

Workouts

+
+
+ {{workoutCount}} +
-
-

{{workoutCount}}

+
+
+

Exercise Logs

+
+
+ {{logCount}} +
+
-
- +
diff --git a/client/General/Home/home.js b/client/General/Home/home.js index cfefccc..ddca94f 100644 --- a/client/General/Home/home.js +++ b/client/General/Home/home.js @@ -6,7 +6,7 @@ import { LogEntry } from '../../../imports/api/logEntry'; Template.home.onCreated(function() { this.subscribe("myWorkoutRoutines"); this.subscribe("myWorkoutLog"); - this.subscribe("myLogEntries"); + this.subscribe("allMyLogEntries"); }); Template.home.onRendered(function() { @@ -20,6 +20,9 @@ Template.home.helpers({ workoutCount: function() { return Workouts.find({}).count(); }, + logCount: function() { + return LogEntry.find({}).count(); + }, }); Template.home.events({ @@ -27,4 +30,10 @@ Template.home.events({ let route = e.currentTarget.id; FlowRouter.go('/' + route); }, + 'click #logWorkout' (e) { + FlowRouter.go('/logEntry'); + }, + 'click #logMeasure' (e) { + FlowRouter.go('/measLogEntry'); + }, }); \ No newline at end of file diff --git a/client/General/Measurements/measLogEntry.html b/client/General/Measurements/measLogEntry.html new file mode 100644 index 0000000..9670993 --- /dev/null +++ b/client/General/Measurements/measLogEntry.html @@ -0,0 +1,23 @@ + \ No newline at end of file diff --git a/client/General/Measurements/measLogEntry.js b/client/General/Measurements/measLogEntry.js new file mode 100644 index 0000000..225cb47 --- /dev/null +++ b/client/General/Measurements/measLogEntry.js @@ -0,0 +1,68 @@ +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; +import { Measurements } from '../../../imports/api/measurements'; +import { MeasureLogEntry } from '../../../imports/api/measureLogEntry'; + +Template.measLogEntry.onCreated(function() { + this.subscribe("myMeasures"); + this.subscribe("myMeasureLog"); +}); + +Template.measLogEntry.onRendered(function() { + Session.set("measIdSelected", false); +}); + +Template.measLogEntry.helpers({ + bodyPart: function() { + return Measurements.find({}); + }, + measIdSelected: function() { + return Session.get("measIdSelected"); + }, + measureToLog: function() { + let partId = Session.get("measurePartId"); + return Measurements.findOneAsync({ _id: partId }); + } +}); + +Template.measLogEntry.events({ + 'change #selectPart' (e) { + Session.set("measIdSelected", true); + let partId = $("#selectPart").val(); + Session.set("measurePartId", partId); + }, + 'click #savePartMeasure' (e) { + let partId = Session.get("measurePartId"); + + const thisMeasure = async() => { + try { + let measInfo = await Measurements.findOneAsync({ _id: partId }); + if (!measInfo) { + console.log(" UNABLE to find measurement info."); + } else { + console.dir(measInfo); + let measure1 = $("#" + measInfo.measurementName).val(); + let measureName = measInfo.measurementName; + let units = measInfo.measurementUnits; + + if (measure1 == "" || measure1 == null) { + showSnackbar("Measurement is required!", "red"); + return; + } else { + let measure = Number(measure1); + const result = await Meteor.callAsync("add.measureLog", measureName, measure, units); + if (!result) { + console.log(" ISSUE adding measurement to database."); + } else { + showSnackbar("Measurement Added!", "green"); + $("#selectPart").val(""); + Session.set("measIdSelected", false); + } + } + } + } catch (error) { + console.log(" ERROR adding measurement: " + error); + } + } + thisMeasure(); + } +}); \ No newline at end of file diff --git a/client/General/Measurements/measurements.html b/client/General/Measurements/measurements.html new file mode 100644 index 0000000..a8378c7 --- /dev/null +++ b/client/General/Measurements/measurements.html @@ -0,0 +1,33 @@ + \ No newline at end of file diff --git a/client/General/Measurements/measurements.js b/client/General/Measurements/measurements.js new file mode 100644 index 0000000..d4fc26a --- /dev/null +++ b/client/General/Measurements/measurements.js @@ -0,0 +1,62 @@ +import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; +import { Measurements } from '../../../imports/api/measurements'; + +Template.measurements.onCreated(function() { + this.subscribe("myMeasures"); +}); + +Template.measurements.onRendered(function() { + Session.set("showAddMeasurementForm", false); +}); + +Template.measurements.helpers({ + showAddMeasurementForm: function() { + return Session.get("showAddMeasurementForm"); + }, + measurements: function() { + return Measurements.find({}); + }, +}); + +Template.measurements.events({ + 'click #addMeasurement' (e) { + Session.set("showAddMeasurementForm", true); + }, + 'click #addMeasurementForm' (e) { + let measurementName = $("#measurementName").val(); + let measurementUnits = $("#measurementUnits").val(); + + if (measurementName == "" || measurementName == null) { + showSnackbar("Measurement Name is Required!", "red"); + return; + } else if (measurementUnits == "" || measurementUnits == null) { + showSnackbar("Measurement Units are Required!", "red"); + return; + } else { + // console.log("Measurement Name: " + measurementName); + const addMeasure = async() => { + try { + const result = await Meteor.callAsync('add.measurement', measurementName, measurementUnits); + if (!result) { + console.log("An issue occurred adding the measurement name."); + showSnackbar("Issue adding measurement!", "red"); + } else { + console.log("Measurement added : " + result); + $("#measurementName").val(""); + $("#measurementUnits").val(""); + showSnackbar("Measurement Added!", "green"); + } + } catch(error) { + console.log(" ERROR adding measurement nemae: " + error); + } + } + addMeasure(); + } + }, + 'click .measure' (e) { + let measureId = e.currentTarget.id; + console.log("Measurement ID set: " + measureId); + Session.set("measureId", measureId); + FlowRouter.go('/measureLog'); + }, +}); \ No newline at end of file diff --git a/client/General/Workouts/WorkoutLogs/logEntry.html b/client/General/Workouts/WorkoutLogs/logEntry.html index 493112e..3915ad2 100644 --- a/client/General/Workouts/WorkoutLogs/logEntry.html +++ b/client/General/Workouts/WorkoutLogs/logEntry.html @@ -1,5 +1,5 @@