mirror of
https://github.com/bodyrep/DemoApp.git
synced 2026-01-25 14:43:00 +00:00
fixed search and filters
This commit is contained in:
5
.idea/copyright/profiles_settings.xml
generated
5
.idea/copyright/profiles_settings.xml
generated
@@ -1,5 +0,0 @@
|
|||||||
<component name="CopyrightManager">
|
|
||||||
<settings default="">
|
|
||||||
<module2copyright />
|
|
||||||
</settings>
|
|
||||||
</component>
|
|
||||||
9
.idea/libraries/sass_stdlib.xml
generated
9
.idea/libraries/sass_stdlib.xml
generated
@@ -1,9 +0,0 @@
|
|||||||
<component name="libraryTable">
|
|
||||||
<library name="sass-stdlib">
|
|
||||||
<CLASSES />
|
|
||||||
<JAVADOC />
|
|
||||||
<SOURCES>
|
|
||||||
<root url="file://$APPLICATION_HOME_DIR$/plugins/sass/lib/stubs/sass_functions.scss" />
|
|
||||||
</SOURCES>
|
|
||||||
</library>
|
|
||||||
</component>
|
|
||||||
5
.idea/scopes/scope_settings.xml
generated
5
.idea/scopes/scope_settings.xml
generated
@@ -1,5 +0,0 @@
|
|||||||
<component name="DependencyValidationManager">
|
|
||||||
<state>
|
|
||||||
<option name="SKIP_IMPORT_STATEMENTS" value="false" />
|
|
||||||
</state>
|
|
||||||
</component>
|
|
||||||
6
app.js
6
app.js
@@ -20,6 +20,7 @@ app.configure(function(){
|
|||||||
app.use(express.bodyParser());
|
app.use(express.bodyParser());
|
||||||
app.use(express.methodOverride());
|
app.use(express.methodOverride());
|
||||||
app.use(express.cookieParser('my secret string'));
|
app.use(express.cookieParser('my secret string'));
|
||||||
|
app.use(express.favicon());
|
||||||
app.use(express.session({
|
app.use(express.session({
|
||||||
secret: 'my secret string',
|
secret: 'my secret string',
|
||||||
maxAge: 3600000,
|
maxAge: 3600000,
|
||||||
@@ -33,8 +34,8 @@ app.configure(function(){
|
|||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
app.set('port', 3000);
|
app.set('port', 3000);
|
||||||
app.use(app.router);
|
|
||||||
app.use(express.static(__dirname + '/public'));
|
app.use(express.static(__dirname + '/public'));
|
||||||
|
app.use(app.router);
|
||||||
});
|
});
|
||||||
|
|
||||||
app.configure('development', function(){
|
app.configure('development', function(){
|
||||||
@@ -53,6 +54,9 @@ require('./routes/session')(app);
|
|||||||
require('./routes/workouts')(app);
|
require('./routes/workouts')(app);
|
||||||
require('./routes/admin')(app);
|
require('./routes/admin')(app);
|
||||||
require('./routes/api')(app);
|
require('./routes/api')(app);
|
||||||
|
// This must be last
|
||||||
|
require('./routes/404')(app);
|
||||||
|
|
||||||
|
|
||||||
http.createServer(app).listen(app.get("port"), function(){
|
http.createServer(app).listen(app.get("port"), function(){
|
||||||
console.log ("Server listening on port " + app.get("port"));
|
console.log ("Server listening on port " + app.get("port"));
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ $(document).ready(function() {
|
|||||||
$('.datepicker').datepicker('setDate', new Date());
|
$('.datepicker').datepicker('setDate', new Date());
|
||||||
//$('.datepicker').datepicker("hide");
|
//$('.datepicker').datepicker("hide");
|
||||||
|
|
||||||
|
//jsut everything work better
|
||||||
|
$.ajax({async:false});
|
||||||
|
|
||||||
jQuery.extend({
|
jQuery.extend({
|
||||||
getValues: function(url) {
|
getValues: function(url) {
|
||||||
@@ -114,6 +116,24 @@ $(document).ready(function() {
|
|||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
$("#Leftpane").delegate("button.recent-link", "click",function () {
|
||||||
|
var id = $(this).attr('value');
|
||||||
|
$('div#Rightpane').empty().load("/workouts/"+ id + "/recent/", function(){
|
||||||
|
$("button").button();
|
||||||
|
});
|
||||||
|
$('div#Leftpane').empty().load("/users/"+ id + "/sidebar", function(){
|
||||||
|
$("button").button();
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#Leftpane").delegate("button.newex-link", "click",function () {
|
||||||
|
var id = $(this).attr('value');
|
||||||
|
$('div#Rightpane').empty().load(id);
|
||||||
|
$('div#Leftpane').empty().load("/workouts/filters", function(){
|
||||||
|
PopulateExerciseList(originalExerciselist);
|
||||||
$("ul#exercises").sortable({
|
$("ul#exercises").sortable({
|
||||||
items: "> li",
|
items: "> li",
|
||||||
cancel: ':input, button' ,
|
cancel: ':input, button' ,
|
||||||
@@ -127,16 +147,37 @@ $(document).ready(function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
//$('#newworkout').trigger('sortupdate');
|
|
||||||
|
|
||||||
$("button.map-link").click(function () {
|
|
||||||
console.log('mapclick');
|
|
||||||
var id = $(this).attr('value');
|
|
||||||
console.log(id);
|
|
||||||
$('div#Rightpane').empty().load(id, function(){
|
|
||||||
PopulateExerciseList(originalExerciselist);
|
|
||||||
});
|
});
|
||||||
|
$("button").button();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#top").delegate("button.home-link", "click",function() {
|
||||||
|
//$("#top").delegate("button.home-link", "click",function () {
|
||||||
|
// window.location = this.id;
|
||||||
|
|
||||||
|
var id = $(this).attr('value');
|
||||||
|
$('div#Rightpane').empty().load("/workouts/"+ id + "/recent/", function(){
|
||||||
|
$("button").button();
|
||||||
|
});
|
||||||
|
$('div#Leftpane').empty().load("/users/"+ id + "/sidebar", function(){
|
||||||
|
$("button").button();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#Rightpane").delegate("a", "click",function() {
|
||||||
|
console.log("yup yup" + $(this).attr('href'));
|
||||||
|
var id = $(this).attr('href');
|
||||||
|
$('div#Rightpane').empty().load(id , function(){
|
||||||
|
$("button").button();
|
||||||
|
});
|
||||||
|
// Stop regular handling of "click" in IE (and some others)
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#Leftpane").delegate("button.map-link", "click",function () {
|
||||||
|
var id = $(this).attr('value');
|
||||||
|
$('div#Rightpane').empty().load(id);
|
||||||
|
$("button").button();
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on('click', '.addthisExercise',(function() {
|
$(document).on('click', '.addthisExercise',(function() {
|
||||||
@@ -157,8 +198,27 @@ $(document).ready(function() {
|
|||||||
//filteredExerciseArray = filterarray(originalExerciselist);
|
//filteredExerciseArray = filterarray(originalExerciselist);
|
||||||
//PopulateExerciseList(arr);
|
//PopulateExerciseList(arr);
|
||||||
|
|
||||||
$(document).on('click', '.filter',(function (){
|
$(document).on('click', '.filter', function(){
|
||||||
|
filterarray();
|
||||||
|
});
|
||||||
|
|
||||||
|
$(document).on('keyup', '#searchbox', function(){
|
||||||
|
filterarray();
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function filterarray(){
|
||||||
|
console.time('Filter');
|
||||||
|
|
||||||
|
var searchstring = $("#searchbox").val();
|
||||||
var keyREGEX= "";
|
var keyREGEX= "";
|
||||||
|
|
||||||
|
if(jQuery.trim(searchstring).length > 0)
|
||||||
|
{
|
||||||
|
keyREGEX += '('+ searchstring +')';
|
||||||
|
}
|
||||||
|
|
||||||
if ($(".filter:checked").length > 0)
|
if ($(".filter:checked").length > 0)
|
||||||
{
|
{
|
||||||
// any one is checked
|
// any one is checked
|
||||||
@@ -172,31 +232,43 @@ $(document).ready(function() {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
//keyREGEX += "'";
|
//keyREGEX += "'";
|
||||||
keyREGEX = keyREGEX.replace(")(", ")|(");
|
keyREGEX = keyREGEX.replace(/\)\(/g, ")|(");
|
||||||
} else {
|
|
||||||
// none is checked
|
|
||||||
keyREGEX = '(none is checked)';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log("Regex= " + keyREGEX);
|
console.log("Regex= " + keyREGEX);
|
||||||
filteredExerciseArray = filterarray(originalExerciselist, keyREGEX);
|
//filteredExerciseArray = filterarray(originalExerciselist, keyREGEX);
|
||||||
PopulateExerciseList(filteredExerciseArray);
|
//PopulateExerciseList(filteredExerciseArray);
|
||||||
console.timeEnd('Filter');
|
|
||||||
}));
|
|
||||||
|
|
||||||
|
$("#exerciselist li").each(function(){
|
||||||
function filterarray(input, regex){
|
//var keywordarray = $(this).data('keywords');
|
||||||
console.log('passed regex' + regex);
|
var keyworddata = $(this).data('keywords').toString();
|
||||||
var keyRE=new RegExp(regex);
|
if(jQuery.trim(searchstring).length > 0) {
|
||||||
var arr = jQuery.grep(input, function(n, i){
|
if ( ($(this).text().search(new RegExp(keyREGEX,'i')) > -1) && (keyworddata.search(new RegExp(keyREGEX,'ig')) > -1) ) {
|
||||||
return keyRE.test(n.keywords);
|
console.log("search" + $(this).text() + " " + keyREGEX);
|
||||||
// return $.grep(n.keywords, function (item, i) {
|
$(this).show();
|
||||||
// return keyRE.test(item);
|
console.log('thisshow1 ' + $(this).text() + ' ' + keyworddata.search(new RegExp(keyREGEX,'ig')) );
|
||||||
// });
|
} else {
|
||||||
});
|
console.log('thishide1 ' + $(this).text() + ' ' + keyworddata.search(new RegExp(keyREGEX,'ig')));
|
||||||
console.log("arr " + arr.length);
|
$(this).hide();
|
||||||
return arr;
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
else if (keyworddata.search(new RegExp(keyREGEX,'ig')) > -1)
|
||||||
|
{
|
||||||
|
console.log('thisshow ' + $(this).text() + ' ' + keyworddata + ' ' + keyworddata.search(new RegExp(keyREGEX,'ig')));
|
||||||
|
$(this).show();
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log('thishide ' + $(this).text() + ' ' + keyworddata + ' ' + keyworddata.search(new RegExp(keyREGEX,'ig')));
|
||||||
|
$(this).hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
console.timeEnd('Filter');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////
|
/////////////////////////////////
|
||||||
// Pseudocode for 1RM calcs
|
// Pseudocode for 1RM calcs
|
||||||
@@ -226,10 +298,11 @@ function PopulateExerciseList(exerciselist) {
|
|||||||
var newExerciselist = $('<div></div>');
|
var newExerciselist = $('<div></div>');
|
||||||
$.each(exerciselist, function (i, item) {
|
$.each(exerciselist, function (i, item) {
|
||||||
//console.log("Exercisename = " + item.name);
|
//console.log("Exercisename = " + item.name);
|
||||||
var newElem = $('<li>'+item.name + ' - ' + item.description + ' - ' + item.keywords +'<button type="button" class="addthisExercise">+</li>');
|
var newElem = $('<li>'+item.name + ' - ' + item.description + '<button type="button" class="addthisExercise">+</li>');
|
||||||
$(newElem).data('name', item.name);
|
$(newElem).data('name', item.name);
|
||||||
$(newElem).data('exid', item._id);
|
$(newElem).data('exid', item._id);
|
||||||
$(newElem).data('musclearray', item.musclearray);
|
$(newElem).data('musclearray', item.musclearray);
|
||||||
|
$(newElem).data('keywords', item.keywords);
|
||||||
//$(newElem).data('musclearrayMod', item.musclearrayMod);
|
//$(newElem).data('musclearrayMod', item.musclearrayMod);
|
||||||
$(newElem).data('datafields', item.datafields);
|
$(newElem).data('datafields', item.datafields);
|
||||||
newExerciselist.append(newElem);
|
newExerciselist.append(newElem);
|
||||||
|
|||||||
@@ -24,6 +24,12 @@ list-style-type: none;
|
|||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#userphoto {
|
||||||
|
width: 160px;
|
||||||
|
height: 160px;
|
||||||
|
background-color: #99B2FF;
|
||||||
|
}
|
||||||
|
|
||||||
#exerciselist {
|
#exerciselist {
|
||||||
width : 500px;
|
width : 500px;
|
||||||
height : 400px;
|
height : 400px;
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ var isAdmin = require('./middleware/is_admin');
|
|||||||
|
|
||||||
module.exports = function(app) {
|
module.exports = function(app) {
|
||||||
app.get('/', loggedIn, isAdmin, function(req, res){
|
app.get('/', loggedIn, isAdmin, function(req, res){
|
||||||
res.render('index', { title: 'Express' });
|
//res.render('index', { title: 'Express' });
|
||||||
|
res.redirect('/users/' + req.session.user.username);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* User Routes
|
* User Routes
|
||||||
*/
|
*/
|
||||||
|
var async = require('async');
|
||||||
var User = require('../data/models/user');
|
var User = require('../data/models/user');
|
||||||
var notLoggedIn = require('./middleware/not_logged_in');
|
var notLoggedIn = require('./middleware/not_logged_in');
|
||||||
var loggedIn = require('./middleware/logged_in');
|
var loggedIn = require('./middleware/logged_in');
|
||||||
@@ -9,35 +9,38 @@ var loadUser = require('./middleware/load_user');
|
|||||||
var isAdmin = require('./middleware/is_admin');
|
var isAdmin = require('./middleware/is_admin');
|
||||||
var restrictUserToSelf = require('./middleware/restrict_user_to_self');
|
var restrictUserToSelf = require('./middleware/restrict_user_to_self');
|
||||||
var maxUsersPerPage = 5;
|
var maxUsersPerPage = 5;
|
||||||
|
var maxWorkoutsPerPage = 5;
|
||||||
|
var Workout = require('../data/models/workout');
|
||||||
|
|
||||||
module.exports = function(app) {
|
module.exports = function(app) {
|
||||||
|
|
||||||
|
|
||||||
app.get('/users', loggedIn, isAdmin, function(req, res, next){
|
app.get('/users', loggedIn, isAdmin, function(req, res, next){
|
||||||
var page = req.query.page && parseInt(req.query.page, 10) || 0;
|
res.redirect('/users/' + req.session.user.username);
|
||||||
|
// var page = req.query.page && parseInt(req.query.page, 10) || 0;
|
||||||
|
|
||||||
User.count(function(err, count) {
|
// User.count(function(err, count) {
|
||||||
if (err) {
|
// if (err) {
|
||||||
return next(err);
|
// return next(err);
|
||||||
}
|
// }
|
||||||
var lastPage = (page + 1) * maxUsersPerPage >= count;
|
// var lastPage = (page + 1) * maxUsersPerPage >= count;
|
||||||
|
|
||||||
User.find({})
|
// User.find({})
|
||||||
.sort('name')
|
// .sort('name')
|
||||||
.skip(page * maxUsersPerPage)
|
// .skip(page * maxUsersPerPage)
|
||||||
.limit(maxUsersPerPage)
|
// .limit(maxUsersPerPage)
|
||||||
.exec(function(err, users) {
|
// .exec(function(err, users) {
|
||||||
if (err) {
|
// if (err) {
|
||||||
return next(err);
|
// return next(err);
|
||||||
}
|
// }
|
||||||
res.render('users/index', {
|
// res.render('users/index', {
|
||||||
title: 'Users',
|
// title: 'Users',
|
||||||
users: users,
|
// users: users,
|
||||||
page: page,
|
// page: page,
|
||||||
lastPage: lastPage
|
// lastPage: lastPage
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/users/new', notLoggedIn, function(req, res) {
|
app.get('/users/new', notLoggedIn, function(req, res) {
|
||||||
@@ -45,10 +48,43 @@ module.exports = function(app) {
|
|||||||
});
|
});
|
||||||
|
|
||||||
app.get('/users/:name', loadUser, function(req, res, next){
|
app.get('/users/:name', loadUser, function(req, res, next){
|
||||||
req.user.recentworkouts(function(err, workouts) {
|
// req.user.recentworkouts(function(err, workouts) {
|
||||||
|
// if (err) {
|
||||||
|
// return next(err);
|
||||||
|
// }
|
||||||
|
|
||||||
|
var page = req.query.page && parseInt(req.query.page, 10) || 0;
|
||||||
|
async.parallel([
|
||||||
|
|
||||||
|
function(next) {
|
||||||
|
Workout.count(next);
|
||||||
|
},
|
||||||
|
|
||||||
|
function(next) {
|
||||||
|
Workout.find({})
|
||||||
|
//.sort('title', 1)
|
||||||
|
.populate('elements.exerciseID')
|
||||||
|
.skip(page * maxWorkoutsPerPage)
|
||||||
|
.limit(maxWorkoutsPerPage)
|
||||||
|
.exec(next);
|
||||||
|
console.log("exercise search finsihed");
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
// callback from async
|
||||||
|
function(err, results) {
|
||||||
|
|
||||||
if (err) {
|
if (err) {
|
||||||
return next(err);
|
return next(err);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var count = results[0];
|
||||||
|
var workouts = results[1];
|
||||||
|
|
||||||
|
var lastPage = (page + 1) * maxWorkoutsPerPage >= count;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
res.render('users/profile', {
|
res.render('users/profile', {
|
||||||
title: 'User profile',
|
title: 'User profile',
|
||||||
user: req.user,
|
user: req.user,
|
||||||
@@ -58,6 +94,15 @@ module.exports = function(app) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
app.get('/users/:name/sidebar', loadUser, function(req, res, next){
|
||||||
|
res.render('users/sidebar', {
|
||||||
|
user: req.user,
|
||||||
|
requested: req.params.name
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
app.post('/users', notLoggedIn, function(req, res, next) {
|
app.post('/users', notLoggedIn, function(req, res, next) {
|
||||||
User.create(req.body, function(err) {
|
User.create(req.body, function(err) {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
|||||||
@@ -17,7 +17,11 @@ var Moment = require('moment');
|
|||||||
|
|
||||||
module.exports = function(app) {
|
module.exports = function(app) {
|
||||||
|
|
||||||
app.get('/workouts/recent', loggedIn, function(req, res, next){
|
app.get('/workouts', loggedIn, function(req, res) {
|
||||||
|
res.redirect('/users/' + req.session.user.username);
|
||||||
|
});
|
||||||
|
|
||||||
|
app.get('/workouts/:id/recent', loggedIn, function(req, res, next){
|
||||||
var page = req.query.page && parseInt(req.query.page, 10) || 0;
|
var page = req.query.page && parseInt(req.query.page, 10) || 0;
|
||||||
async.parallel([
|
async.parallel([
|
||||||
|
|
||||||
@@ -28,6 +32,7 @@ module.exports = function(app) {
|
|||||||
function(next) {
|
function(next) {
|
||||||
Workout.find({})
|
Workout.find({})
|
||||||
//.sort('title', 1)
|
//.sort('title', 1)
|
||||||
|
.populate('elements.exerciseID')
|
||||||
.skip(page * maxWorkoutsPerPage)
|
.skip(page * maxWorkoutsPerPage)
|
||||||
.limit(maxWorkoutsPerPage)
|
.limit(maxWorkoutsPerPage)
|
||||||
.exec(next);
|
.exec(next);
|
||||||
@@ -46,9 +51,10 @@ module.exports = function(app) {
|
|||||||
|
|
||||||
var lastPage = (page + 1) * maxWorkoutsPerPage >= count;
|
var lastPage = (page + 1) * maxWorkoutsPerPage >= count;
|
||||||
|
|
||||||
|
console.log("workouts- " + JSON.stringify(workouts));
|
||||||
|
|
||||||
res.render('workouts/recent', {
|
res.render('workouts/recent', {
|
||||||
title: 'workouts',
|
recentworkouts: workouts,
|
||||||
workouts: workouts,
|
|
||||||
page: page,
|
page: page,
|
||||||
lastPage: lastPage
|
lastPage: lastPage
|
||||||
});
|
});
|
||||||
@@ -61,24 +67,26 @@ module.exports = function(app) {
|
|||||||
res.render('workouts/new', {title: "New workout"});
|
res.render('workouts/new', {title: "New workout"});
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/workouts/:name/recent', loadUser, function(req, res, next){
|
app.get('/workouts/filters', loggedIn, function(req, res) {
|
||||||
req.user.recentworkouts(function(err, workouts) {
|
res.render('workouts/filters');
|
||||||
if (err) {
|
|
||||||
return next(err);
|
|
||||||
}
|
|
||||||
res.render('workouts/recent', {
|
|
||||||
//user: req.user,
|
|
||||||
//requested: req.params.name,
|
|
||||||
recentworkouts: workouts
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// app.get('/workouts/:name/recent', loadUser, function(req, res, next){
|
||||||
|
// req.user.recentworkouts(function(err, workouts) {
|
||||||
|
// if (err) {
|
||||||
|
// return next(err);
|
||||||
|
// }
|
||||||
|
// res.render('workouts/recent', {
|
||||||
|
// //user: req.user,
|
||||||
|
// //requested: req.params.name,
|
||||||
|
// recentworkouts: workouts
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
// });
|
||||||
|
|
||||||
app.get('/workouts/:_id', loggedIn, loadWorkout, function(req, res, next){
|
app.get('/workouts/:_id', loggedIn, loadWorkout, function(req, res, next){
|
||||||
console.log("time" + Moment.utc(req.workout.workoutDate).format("ddd, hA"));
|
console.log("time" + Moment.utc(req.workout.workoutDate).format("ddd, hA"));
|
||||||
var output = MuscleArray(req.workout);
|
|
||||||
console.log('output - ' + JSON.stringify(output));
|
console.log('output - ' + JSON.stringify(output));
|
||||||
|
|
||||||
res.render('workouts/workout', {title: req.workout.title,
|
res.render('workouts/workout', {title: req.workout.title,
|
||||||
workout: req.workout,
|
workout: req.workout,
|
||||||
workouttime: Moment.utc(req.workout.workoutDate).format("ddd, hA")
|
workouttime: Moment.utc(req.workout.workoutDate).format("ddd, hA")
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
extends ../layout
|
script(src='/javascripts/newexercisevalidation.js')
|
||||||
|
|
||||||
block additionalscripts
|
|
||||||
script(src='/javascripts/newexercisevalidation.js')
|
|
||||||
|
|
||||||
block content
|
h1 Edit Exercise<p></p>
|
||||||
h1 Edit Exercise<p></p>
|
|
||||||
|
|
||||||
form(id="newexercise", method="POST", action="/admin/exercises/" + encodeURIComponent(exercise._id))
|
form(id="newexercise", method="POST", action="/admin/exercises/" + encodeURIComponent(exercise._id))
|
||||||
ul
|
ul
|
||||||
li
|
li
|
||||||
label(for="name") Exercise Name<br />
|
label(for="name") Exercise Name<br />
|
||||||
@@ -63,9 +60,9 @@ block content
|
|||||||
li
|
li
|
||||||
input(type="submit", value="Save Changes")
|
input(type="submit", value="Save Changes")
|
||||||
|
|
||||||
p
|
p
|
||||||
a(href="/admin") Admin Index
|
a(href="/admin") Admin Index
|
||||||
p
|
p
|
||||||
a(href="/admin/users") Admin Users
|
a(href="/admin/users") Admin Users
|
||||||
p
|
p
|
||||||
a(href="/admin/exercises") Admin Exercises
|
a(href="/admin/exercises") Admin Exercises
|
||||||
@@ -1,21 +1,18 @@
|
|||||||
extends ../layout
|
h1 Bodyrep
|
||||||
|
p Exercise Admin
|
||||||
|
|
||||||
block content
|
p
|
||||||
h1 Bodyrep
|
|
||||||
p Exercise Admin
|
|
||||||
|
|
||||||
p
|
|
||||||
a(href="/users") List Users
|
a(href="/users") List Users
|
||||||
p
|
p
|
||||||
a(href="/workouts") List workouts
|
a(href="/workouts") List workouts
|
||||||
p
|
p
|
||||||
a(href="/admin") Admin Index
|
a(href="/admin") Admin Index
|
||||||
p
|
p
|
||||||
a(href="/admin/users") Admin Users
|
a(href="/admin/users") Admin Users
|
||||||
p
|
p
|
||||||
a(href="/admin/exercises") Admin Exercises
|
a(href="/admin/exercises") Admin Exercises
|
||||||
p
|
p
|
||||||
a(href="/admin/exercises/new") Add Exercise
|
a(href="/admin/exercises/new") Add Exercise
|
||||||
hr
|
hr
|
||||||
|
|
||||||
p= exercise
|
p= exercise
|
||||||
@@ -1,24 +1,15 @@
|
|||||||
extends ../layout
|
h1 Bodyrep
|
||||||
|
p Exercise Admin
|
||||||
|
|
||||||
block content
|
p
|
||||||
h1 Bodyrep
|
|
||||||
p Exercise Admin
|
|
||||||
|
|
||||||
p
|
|
||||||
a(href="/users") List Users
|
|
||||||
p
|
|
||||||
a(href="/workouts") List workouts
|
|
||||||
p
|
|
||||||
a(href="/admin") Admin Index
|
|
||||||
p
|
|
||||||
a(href="/admin/users") Admin Users
|
a(href="/admin/users") Admin Users
|
||||||
p
|
p
|
||||||
a(href="/admin/exercises") Admin Exercises
|
a(href="/admin/exercises") Admin Exercises
|
||||||
p
|
p
|
||||||
a(href="/admin/exercises/new") Add Exercise
|
a(href="/admin/exercises/new") Add Exercise
|
||||||
hr
|
hr
|
||||||
|
|
||||||
ul
|
ul
|
||||||
- exercises.forEach(function(exercise) {
|
- exercises.forEach(function(exercise) {
|
||||||
li
|
li
|
||||||
a(href="/admin/exercises/" + encodeURIComponent(exercise._id))= exercise.name
|
a(href="/admin/exercises/" + encodeURIComponent(exercise._id))= exercise.name
|
||||||
|
|||||||
@@ -4,12 +4,6 @@
|
|||||||
h1 Bodyrep
|
h1 Bodyrep
|
||||||
p Admin Index
|
p Admin Index
|
||||||
|
|
||||||
p
|
|
||||||
a(href="/users") List Users
|
|
||||||
p
|
|
||||||
a(href="/workouts") List workouts
|
|
||||||
p
|
|
||||||
a(href="/admin") Admin Index
|
|
||||||
p
|
p
|
||||||
a(href="/admin/users") Admin Users
|
a(href="/admin/users") Admin Users
|
||||||
p
|
p
|
||||||
|
|||||||
@@ -1,12 +1,9 @@
|
|||||||
extends ../layout
|
script(src='/javascripts/newexercisevalidation.js')
|
||||||
|
|
||||||
block additionalscripts
|
|
||||||
script(src='/javascripts/newexercisevalidation.js')
|
|
||||||
|
|
||||||
block content
|
h1 New Exercise<p></p>
|
||||||
h1 New Exercise<p></p>
|
|
||||||
|
|
||||||
form(id="newexercise", method="POST", action="/admin/exercises/new")
|
form(id="newexercise", method="POST", action="/admin/exercises/new")
|
||||||
ul
|
ul
|
||||||
li
|
li
|
||||||
label(for="name") Exercise Name<br />
|
label(for="name") Exercise Name<br />
|
||||||
|
|||||||
@@ -1,23 +1,14 @@
|
|||||||
extends ../layout
|
h1 Bodyrep
|
||||||
|
p User Admin
|
||||||
|
|
||||||
block content
|
p
|
||||||
h1 Bodyrep
|
|
||||||
p User Admin
|
|
||||||
|
|
||||||
p
|
|
||||||
a(href="/users") List Users
|
|
||||||
p
|
|
||||||
a(href="/workouts") List workouts
|
|
||||||
p
|
|
||||||
a(href="/admin") Admin Index
|
|
||||||
p
|
|
||||||
a(href="/admin/users") Admin Users
|
a(href="/admin/users") Admin Users
|
||||||
p
|
p
|
||||||
a(href="/admin/exercises") Admin Exercises
|
a(href="/admin/exercises") Admin Exercises
|
||||||
|
|
||||||
hr
|
hr
|
||||||
|
|
||||||
ul
|
ul
|
||||||
- users.forEach(function(user) {
|
- users.forEach(function(user) {
|
||||||
li
|
li
|
||||||
a(href="/users/" + encodeURIComponent(user.username))= user.name
|
a(href="/users/" + encodeURIComponent(user.username))= user.name
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
script(src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js')
|
script(src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js')
|
||||||
script(src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js')
|
script(src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.2/jquery-ui.min.js')
|
||||||
script(src='http://jzaefferer.github.com/jquery-validation/jquery.validate.js')
|
script(src='http://jzaefferer.github.com/jquery-validation/jquery.validate.js')
|
||||||
|
|
||||||
script(src='/javascripts/scripts.js')
|
script(src='/javascripts/scripts.js')
|
||||||
|
|
||||||
//script(src='/javascripts/livevalidation_standalone.compressed.js')
|
//script(src='/javascripts/livevalidation_standalone.compressed.js')
|
||||||
|
|||||||
@@ -1,10 +1,11 @@
|
|||||||
div#top
|
div#top
|
||||||
|
|
||||||
- if (session.user)
|
- if (session.user)
|
||||||
p
|
|
||||||
span
|
span
|
||||||
b UserName
|
b UserName
|
||||||
span= session.user.name
|
span= session.user.name
|
||||||
|
button.home-link(value= encodeURIComponent(session.user.name)) Home
|
||||||
span
|
span
|
||||||
b  UserID
|
b  UserID
|
||||||
span= session.user._id
|
span= session.user._id
|
||||||
|
|||||||
@@ -5,25 +5,8 @@ extends ../layout
|
|||||||
block content
|
block content
|
||||||
|
|
||||||
div#Leftpane
|
div#Leftpane
|
||||||
h2= user.name
|
include ./sidebar
|
||||||
|
|
||||||
- if (session.user)
|
|
||||||
- if (session.user.name === requested)
|
|
||||||
h2 Private View
|
|
||||||
div
|
|
||||||
button.map-link(value="/workouts/" + encodeURIComponent(session.user.name) + "/recent") Recent workouts
|
|
||||||
div
|
|
||||||
button.map-link(value="/workouts/new") Create new workout
|
|
||||||
|
|
||||||
- else
|
|
||||||
h2 Public View
|
|
||||||
|
|
||||||
- if (session.user)
|
|
||||||
- if (session.user.is_admin === true)
|
|
||||||
div
|
|
||||||
button.map-link(value="/admin") Goto Admin Page
|
|
||||||
|
|
||||||
div#Rightpane
|
div#Rightpane
|
||||||
|
|
||||||
include ../workouts/recent
|
include ../workouts/recent
|
||||||
|
|
||||||
|
|||||||
@@ -1,27 +1,5 @@
|
|||||||
//extends ../layout
|
|
||||||
//block content
|
|
||||||
h1 New workout
|
h1 New workout
|
||||||
|
|
||||||
h3 Exercises (dynamically loaded from database)
|
|
||||||
ul#exerciselist
|
|
||||||
li Unpopulated
|
|
||||||
|
|
||||||
div#filters
|
|
||||||
h3 Filters
|
|
||||||
label Free Weights
|
|
||||||
input.filter(type="checkbox", checked=true, value="Free Weights")
|
|
||||||
label Bodyweight
|
|
||||||
input.filter(type="checkbox", checked=true, value="Bodyweight")
|
|
||||||
label Exercise Machines
|
|
||||||
input.filter(type="checkbox", checked=true, value='Exercise Machine')
|
|
||||||
label Kettlebells
|
|
||||||
input.filter(type="checkbox", checked=true, value='Kettlebells')
|
|
||||||
label Cardio
|
|
||||||
input.filter(type="checkbox", checked=true, value='Cardio')
|
|
||||||
|
|
||||||
//button#addExercise(type="button") Add Exercise
|
|
||||||
hr
|
|
||||||
|
|
||||||
form#newworkout(method="POST", action="/workouts")
|
form#newworkout(method="POST", action="/workouts")
|
||||||
ul
|
ul
|
||||||
li
|
li
|
||||||
|
|||||||
@@ -3,5 +3,9 @@ h3 Recent workouts:
|
|||||||
- recentworkouts.forEach(function(workout) {
|
- recentworkouts.forEach(function(workout) {
|
||||||
li
|
li
|
||||||
a.map-link(href="/workouts/" + encodeURIComponent(workout._id))= workout._id
|
a.map-link(href="/workouts/" + encodeURIComponent(workout._id))= workout._id
|
||||||
|
each element in workout.elements
|
||||||
|
li= element.exerciseID.name
|
||||||
|
ol
|
||||||
|
each split in element.splits
|
||||||
|
li Reps: #{split.reps} Weight: #{split.weight}
|
||||||
- });
|
- });
|
||||||
|
|
||||||
|
|||||||
@@ -1,35 +1,9 @@
|
|||||||
extends ../layout
|
h1= workout.title
|
||||||
|
|
||||||
|
ul
|
||||||
block content
|
|
||||||
h1= workout.title
|
|
||||||
|
|
||||||
div!= workout.body
|
|
||||||
|
|
||||||
hr
|
|
||||||
|
|
||||||
p
|
|
||||||
span Workout ID:
|
|
||||||
|
|
||||||
a(href="/workouts/" + encodeURIComponent(workout._id))= workout._id
|
|
||||||
div= workout
|
|
||||||
ul
|
|
||||||
li Time: #{workouttime}
|
li Time: #{workouttime}
|
||||||
each element in workout.elements
|
each element in workout.elements
|
||||||
li= element.exerciseID
|
li= element.exerciseID
|
||||||
ul
|
ul
|
||||||
each split in element.splits
|
each split in element.splits
|
||||||
li Reps: #{split.reps} Weight: #{split.weight}
|
li Reps: #{split.reps} Weight: #{split.weight}
|
||||||
|
|
||||||
- if (session.user)
|
|
||||||
- if (session.user.is_admin === true)
|
|
||||||
form(action="/workouts/" + encodeURIComponent(workout._id), method="POST")
|
|
||||||
input(name="_method", type="hidden", value="DELETE")
|
|
||||||
input(type="submit", value="Delete")
|
|
||||||
p
|
|
||||||
a(href="/workouts") List workouts
|
|
||||||
- else
|
|
||||||
- if (session.user._id == workout.userID)
|
|
||||||
form(action="/workouts/" + encodeURIComponent(workout._id), method="POST")
|
|
||||||
input(name="_method", type="hidden", value="DELETE")
|
|
||||||
input(type="submit", value="Delete")
|
|
||||||
|
|||||||
Reference in New Issue
Block a user