mirror of
https://github.com/bodyrep/DemoApp.git
synced 2026-01-25 14:43:00 +00:00
add dynmic exercsie list, keywords(hardcoded), datafields(hardcoded), adding exercises from exercise list, and show hide for delete button.
This commit is contained in:
25
public/javascripts/workout.js
Normal file
25
public/javascripts/workout.js
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
$(document).ready(function() {
|
||||||
|
|
||||||
|
$.each($.getValues("/api/exerciselist"), function(i, item) {
|
||||||
|
console.log("Exercisename = " + item.name);
|
||||||
|
var newElem = $('<li>'+item.name + ' - ' + item.description + ' - ' + item.keywords +'<button type="button" class="addthisExercise">+</li>');
|
||||||
|
$(newElem).data('name', item.name);
|
||||||
|
$(newElem).data('datafields', item.datafields);
|
||||||
|
console.log("This - " + JSON.stringify($(newElem).data()));
|
||||||
|
$(newElem).appendTo('#exerciselist');
|
||||||
|
$("button").button();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("button.addthisExercise").click(function() {
|
||||||
|
console.log("This exercise name li" + JSON.stringify($(this).closest('li').data()));
|
||||||
|
var newElem = $('<li class=ui-state-default ><label for="element">elements[0][exerciseID]<br /></label><input name="elements[][exerciseID]" class="element" value="' + $(this).closest('li').data('name') + '"><button type="button" class="addSet">Add Set</button><button type="button" class="delete">Delete Exercise</button><ul class="sets"><li class="set"><label for="element" name="elements[0][splits][0][reps]">elements[0][splits][0][reps]<br /></label><input name="elements[0][splits][0][reps]" class="element"><label for="element" name="elements[0][splits][0][weight]"><br />elements[0][splits][0][weight]<br /></label><input name="elements[0][splits][0][weight]" class="element"><button type="button" class="delete">Delete Set</button></li></ul></li>');
|
||||||
|
$(newElem).appendTo('ul#exercises');
|
||||||
|
$("button").button();
|
||||||
|
$( "ul#exercises" ).sortable( "refresh" );
|
||||||
|
$( "ul#sets" ).sortable( "refresh" );
|
||||||
|
$('#newworkout').trigger('sortupdate');
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
33
routes/api.js
Normal file
33
routes/api.js
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
/*
|
||||||
|
* api Routes
|
||||||
|
*/
|
||||||
|
|
||||||
|
var async = require('async');
|
||||||
|
|
||||||
|
var Workout = require('../data/models/workout');
|
||||||
|
var notLoggedIn = require('./middleware/not_logged_in');
|
||||||
|
var loadWorkout = require('./middleware/load_workout');
|
||||||
|
var loggedIn = require('./middleware/logged_in');
|
||||||
|
var maxWorkoutsPerPage = 5;
|
||||||
|
var Exercise = require('../data/models/exercise');
|
||||||
|
var loadExercise = require('./middleware/load_exercise');
|
||||||
|
var Moment = require('moment');
|
||||||
|
|
||||||
|
module.exports = function(app) {
|
||||||
|
|
||||||
|
app.get('/api/exerciselist', function(req, res) {
|
||||||
|
res.contentType('json');
|
||||||
|
Exercise.find()
|
||||||
|
.exec(function(err, exercises) {
|
||||||
|
if (err) {
|
||||||
|
return next(err);
|
||||||
|
}
|
||||||
|
if (! exercises) {
|
||||||
|
return res.send(JSON.stringify({ "error": "true" }));
|
||||||
|
}
|
||||||
|
res.send(exercises);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
};
|
||||||
71
views/admin/editexercise.jade
Normal file
71
views/admin/editexercise.jade
Normal file
@@ -0,0 +1,71 @@
|
|||||||
|
extends ../layout
|
||||||
|
|
||||||
|
block additionalscripts
|
||||||
|
script(src='/javascripts/newexercisevalidation.js')
|
||||||
|
|
||||||
|
block content
|
||||||
|
h1 Edit Exercise<p></p>
|
||||||
|
|
||||||
|
form(id="newexercise", method="POST", action="/admin/exercises/" + encodeURIComponent(exercise._id))
|
||||||
|
ul
|
||||||
|
li
|
||||||
|
label(for="name") Exercise Name<br />
|
||||||
|
input#name(name="name", value= exercise.name, oldvalue= exercise.name)
|
||||||
|
input#_id(name="_id", value= exercise._id, type='hidden')
|
||||||
|
|
||||||
|
li
|
||||||
|
label(for="type") Exercise Type<br />
|
||||||
|
|
||||||
|
//- first a little prep
|
||||||
|
- freeweights = ('freeweights'==exercise.type) ? 'selected' : null;
|
||||||
|
- machine = ('machine'==exercise.type) ? 'selected' : null;
|
||||||
|
- bodyweight = ('bodyweight'==exercise.type) ? 'selected' : null;
|
||||||
|
- kettlebells = ('kettelbells'==exercise.type) ? 'selected' : null;
|
||||||
|
- cardio = ('cardio'==exercise.type) ? 'selected' : null;
|
||||||
|
|
||||||
|
select#type(name="type")
|
||||||
|
option(value='notselected') Select One
|
||||||
|
option(value='freeweights', selected=freeweights) Free Weights
|
||||||
|
option(value='machine', selected=machine) Exercise Machine
|
||||||
|
option(value='bodyweight', selected=bodyweight) Bodyweight
|
||||||
|
option(value='kettlebells', selected=kettlebells) Kettlebells
|
||||||
|
option(value='cardio', selected=cardio) Cardio
|
||||||
|
|
||||||
|
li
|
||||||
|
label(for="type") Exercise Description<br />
|
||||||
|
input#description(name="description", value= exercise.description)
|
||||||
|
li
|
||||||
|
label(for="type") Exercise Difficulty<br />
|
||||||
|
input#difficulty(name="difficulty", value= exercise.difficulty)
|
||||||
|
i = 0
|
||||||
|
- for (i ; i < 10; ++i) {
|
||||||
|
marray = "musclearray[" + i + "]"
|
||||||
|
li
|
||||||
|
label(for="type") Muscle data #{i}
|
||||||
|
input(name= marray, class="musclearray", id= marray, value= exercise.musclearray[i])
|
||||||
|
- }
|
||||||
|
li
|
||||||
|
keywordlist = [ 'Free Weights', 'Exercise Machine', 'Bodyweight', 'Kettlebells', 'Cardio']
|
||||||
|
label(for="type") Keywords<br />
|
||||||
|
select#type(name="keywords", multiple="multiple")
|
||||||
|
- for keyword in keywordlist
|
||||||
|
option(selected=exercise.keywords.indexOf(keyword) != -1) #{keyword}
|
||||||
|
|
||||||
|
|
||||||
|
li
|
||||||
|
label(for="type") Alternatives<br />
|
||||||
|
li
|
||||||
|
datafieldlist = ['Reps','Weight','Time','Distance']
|
||||||
|
label(for="datafields") Datafields<br />
|
||||||
|
select#type(name="datafields", multiple="multiple")
|
||||||
|
- for datafield in datafieldlist
|
||||||
|
option(selected=exercise.datafields.indexOf(datafield) != -1) #{datafield}
|
||||||
|
li
|
||||||
|
input(type="submit", value="Save Changes")
|
||||||
|
|
||||||
|
p
|
||||||
|
a(href="/admin") Admin Index
|
||||||
|
p
|
||||||
|
a(href="/admin/users") Admin Users
|
||||||
|
p
|
||||||
|
a(href="/admin/exercises") Admin Exercises
|
||||||
Reference in New Issue
Block a user