mirror of
https://github.com/bodyrep/DemoApp.git
synced 2025-12-06 06:01:48 +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