mirror of
https://github.com/sstent/alex_app1.git
synced 2026-01-26 17:12:37 +00:00
basics working
This commit is contained in:
337
static/javascripts/script_admin.js
Normal file
337
static/javascripts/script_admin.js
Normal file
@@ -0,0 +1,337 @@
|
||||
$(document).ready(function() {
|
||||
//makes buttons buttons
|
||||
$("button").button();
|
||||
|
||||
|
||||
$("#ExerciseEditorForm").dialog({ autoOpen: false });
|
||||
$( "#ExerciseEditorForm" ).dialog( "option", "minHeight", 330 );
|
||||
$( "#ExerciseEditorForm" ).dialog( "option", "minWidth", 630 );
|
||||
$( "#ExerciseEditorForm" ).dialog({ buttons: [
|
||||
{
|
||||
text: "Close/Cancel",
|
||||
click: function() { $(this).dialog("close"); }
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
$("button#addexerciseformopen").click(function() {
|
||||
// socket.emit('getexercises', 'please');
|
||||
$('ul#editexercise li').remove();
|
||||
$('span.EditExerciseID').removeAttr('docid');
|
||||
var newElem = $('<li><label>Name</label><input type="text" name="exercise.name" value=""></li>');
|
||||
newElem.append('<li><label>Exercise Class</label><input type="text" name="exercise.class" value=""></li>');
|
||||
newElem.append('<li><label>Muscle Data Array</label><input type="text" name="exercise.muscledata" value=""></li>');
|
||||
$(newElem).appendTo('#editexercise');
|
||||
$("#ExerciseEditorForm").dialog("open");
|
||||
});
|
||||
|
||||
// $("#Activity").dialog({ autoOpen: false });
|
||||
// $( "#Activity" ).dialog( "option", "minHeight", 330 );
|
||||
// $( "#Activity" ).dialog( "option", "minWidth", 730 );
|
||||
// $( "#Activity" ).dialog({ buttons: [
|
||||
// {
|
||||
// text: "Close/Cancel",
|
||||
// click: function() { $(this).dialog("close"); }
|
||||
// }
|
||||
// ]
|
||||
// });
|
||||
|
||||
// $("button#openactivities").click(function() {
|
||||
// //
|
||||
// $("#Activity").dialog("open");
|
||||
// });
|
||||
|
||||
|
||||
|
||||
//makes datepickers
|
||||
$( "#datepicker" ).datepicker();
|
||||
$('#Activity').find('input.datepicker').datepicker();
|
||||
$('#Activity').find('input.datepicker').datepicker('setDate', new Date());
|
||||
|
||||
var socket = io.connect();
|
||||
exercise_autocompletedata = "unset";
|
||||
bike_autocompletedata = "unset";
|
||||
|
||||
socket.emit('getactivites', 'please');
|
||||
socket.emit('getexercises', 'please');
|
||||
socket.emit('getexerciselist', 'cardio');
|
||||
socket.emit('getexerciselist', 'weights');
|
||||
|
||||
socket.on('populateactivities', function(json) {
|
||||
console.log('#poulate recieved');
|
||||
var content = "";
|
||||
$(".workoutdata").hide();
|
||||
$('#ActivityList').empty();
|
||||
$( "#ActivityList" ).html(
|
||||
$( "#movieTemplate1" ).render( json )
|
||||
);
|
||||
$(".ui-accordion-content").css("display", "block");
|
||||
// $("#ActivityList").accordion('destroy').accordion({
|
||||
// header: 'h3',
|
||||
// active: false,
|
||||
// collapsible: true
|
||||
// });
|
||||
});
|
||||
//poulate activity by id
|
||||
socket.on('populateactivitybyid', function(json) {
|
||||
// clear it first
|
||||
$('ul#sortable li').remove('.removable');
|
||||
$('span.ActivityID').removeAttr('docid');
|
||||
$('#Activity').find('input').attr('value','');
|
||||
$('#Activity').find('input.datepicker').datepicker();
|
||||
$('#Activity').find('input.datepicker').datepicker('setDate', new Date());
|
||||
|
||||
//set document id
|
||||
$('span.ActivityID').attr('docid',json._id);
|
||||
//poulate name
|
||||
// $('input[name="Activities.Activity.name"]').attr('value', json.Activities.Activity.name)
|
||||
//poulate date
|
||||
$('input[name="Activities.Activity.date"]').attr('value', json.Activities.Activity.date)
|
||||
// Activities.Activity.date
|
||||
// for each lap
|
||||
if ("Lap" in json.Activities.Activity) {
|
||||
var array = json.Activities.Activity.Lap;
|
||||
$.each(array, function(index, value) {
|
||||
////if cardio
|
||||
if ("cardio" in value) {
|
||||
//get exercise muscledata
|
||||
var lapmuscledata = exercise_autocompletedata[value.cardio.selection].muscledata;
|
||||
AddPopulatedLap("Cardio", value.cardio.name, value.cardio.time, value.cardio.distance, "", "" , "", exercise_autocompletedata[value.cardio.selection].muscledata)
|
||||
};
|
||||
////if exercise
|
||||
if ("exercise" in value) {
|
||||
//get exercise muscledata
|
||||
console.log("selction = " + value.exercise.selection);
|
||||
var lapmuscledata = exercise_autocompletedata[value.exercise.selection].muscledata;
|
||||
AddPopulatedLap("Exercise", value.exercise.name, "", "", value.exercise.sets, value.exercise.reps , value.exercise.weight , lapmuscledata)
|
||||
};
|
||||
});
|
||||
};
|
||||
///refresh table
|
||||
$('#sortable').trigger('sortupdate');
|
||||
|
||||
});
|
||||
|
||||
|
||||
socket.on('populateexercisebyid', function(array) {
|
||||
// clear it first
|
||||
$('ul#editexercise li').remove();
|
||||
$('span.EditExerciseID').removeAttr('docid');
|
||||
//set document id
|
||||
$('span.EditExerciseID').attr('docid',array._id);
|
||||
console.log('name= ' + array.exercise.name);
|
||||
console.log('class= ' + array.exercise.class);
|
||||
console.log('muscledata= ' + array.exercise.muscledata);
|
||||
var newElem = $('<li><input type="text" name="exercise.name" value="'+ array.exercise.name + '"><input type="text" name="exercise.class" value="'+ array.exercise.class + '"><input type="text" name="exercise.muscledata" value="'+ array.exercise.muscledata + '"></li>');
|
||||
$(newElem).appendTo('#editexercise');
|
||||
});
|
||||
|
||||
|
||||
|
||||
function AddPopulatedLap(type, name, time, distance, sets, reps, weight, muscledata) {
|
||||
console.log('type= ' + type);
|
||||
console.log('muscledata= ' + muscledata);
|
||||
var newElem = $('.new-lap').clone(true).attr('style', 'display: block');
|
||||
$(newElem).removeClass('new-lap');
|
||||
$(newElem).appendTo('#sortable');
|
||||
$(newElem).children('.laptype').val(type).trigger('change');
|
||||
$(newElem).children('input').attr('disabled',false);
|
||||
$(newElem).find('.lapname').attr('value', name);
|
||||
$(newElem).find('.lapdistance').attr('value', distance);
|
||||
$(newElem).find('.laptime').attr('value', time);
|
||||
$(newElem).find('.sets').attr('value', sets);
|
||||
$(newElem).find('.reps').attr('value', reps);
|
||||
$(newElem).find('.weight').attr('value', weight);
|
||||
$(newElem).find('.muscledata').attr('value', muscledata);
|
||||
$(newElem).sortable( "refresh" );
|
||||
};
|
||||
|
||||
function AddPopulatedExercise(name, exclass, muscledata) {
|
||||
//$(newElem).sortable( "refresh" );
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
////populate exercise tables
|
||||
socket.on('populateexercises', function(json) {
|
||||
var content = "";
|
||||
$('ul#exercises li').remove();
|
||||
///// for loop
|
||||
var array = json;
|
||||
exercise_autocompletedata = array;
|
||||
$.each(json, function(index, array) {
|
||||
$( "ul#exercises" ).append('<li><input type="text" name="exercise.name" value="'+ array.exercise.name + '"><input type="text" name="exercise.class" value="'+ array.exercise.class + '"><input type="text" name="exercise.muscledata" value="'+ array.exercise.muscledata + '"><a href=# class="exercisedelete" title="' + array._id +'" >Delete</a><a href=# class="exerciseedit" title="' + array._id +'" >Edit</a></li>');
|
||||
})
|
||||
;
|
||||
});
|
||||
|
||||
//THe Sortable Stuff
|
||||
$("#sortable").sortable({
|
||||
placeholder: "ui-state-highlight",
|
||||
revert: true,
|
||||
stop: function(event, ui) {
|
||||
$('#sortable').trigger('sortupdate')
|
||||
},
|
||||
|
||||
});
|
||||
|
||||
$("#sortable").bind('sortupdate', function(event, ui) {
|
||||
$('#sortable li').each(function(){
|
||||
var itemindex= $(this).index()
|
||||
$(this).children('label.uiindex').html('Exercise '+ itemindex );
|
||||
$(this).find('input, select').not('.laptype').each(function(){
|
||||
var newname = $(this).attr('name').replace(/\[[0-9]*\]/,'[' + itemindex + ']');
|
||||
$(this).attr("name",newname);
|
||||
});
|
||||
$(this).find('input.exertags').autocomplete({source: exercise_autocompletedata});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
$("#sortableexercises").bind('sortupdate', function(event, ui) {
|
||||
$('#sortableexercises li').each(function(){
|
||||
var itemindex= $(this).index()
|
||||
$(this).find('input, select').each(function(){
|
||||
var newname = $(this).attr('name').replace(/\[[0-9]*\]/,'[' + itemindex + ']');
|
||||
$(this).attr("name",newname);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$('#ActivityList').delegate('a.activitydelete', 'click', function() {
|
||||
socket.emit('delactivity', $(this).attr('title'));
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#ActivityList').delegate('a.activityedit', 'click', function() {
|
||||
socket.emit('getactivitybyid', $(this).attr('title'));
|
||||
$("#Activity").dialog("open");
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#exercises').delegate('a.exercisedelete', 'click', function() {
|
||||
console.log("exercisedelete_click");
|
||||
socket.emit('delexercise', $(this).attr('title'));
|
||||
return false;
|
||||
});
|
||||
|
||||
$('#exercises').delegate('a.exerciseedit', 'click', function() {
|
||||
console.log("exerciseedit_click");
|
||||
socket.emit('getexercisebyid', $(this).attr('title'));
|
||||
$("#ExerciseEditorForm").dialog("open");
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
|
||||
$('ul').on('click', '.delete',function() {
|
||||
$(this).closest('li').remove();
|
||||
$('#sortable').trigger('sortupdate')
|
||||
});
|
||||
|
||||
//adds selectable element
|
||||
$("button").click(function() {
|
||||
var addtype = $(this).attr('value');
|
||||
var newElem = $('.new-' + addtype).clone(true).attr('style', 'display: block');
|
||||
$(newElem).removeClass("new-" + addtype);
|
||||
$(newElem).children('input').attr('disabled',false);
|
||||
$(newElem).appendTo('#sortable');
|
||||
$(newElem).sortable( "refresh" );
|
||||
|
||||
|
||||
$('#sortable').trigger('sortupdate');
|
||||
//$('#sortableexercises').trigger('sortupdate');
|
||||
});
|
||||
|
||||
// $("button.AddExercise").click(function() {
|
||||
// $( "ul#sortableexercises" ).append('<li class=ui-state-default><input type="text" name="exercise[].name" hint="Name" placeholder="Exercise Name"><input type="text" name="exercise[].class" placeholder="cardio or weights"><input class="addexercisemusclearray" type="text" name="exercise[].muscledata" hint="Muscle Array" placeholder="Muscle Array"><a href=# class=delete>delete</a></li>')
|
||||
// $('#sortableexercises').trigger('sortupdate');
|
||||
// });
|
||||
|
||||
|
||||
// $('#save').click(function() {
|
||||
// var docid =$(this).closest('span').attr('docid');
|
||||
// var selector= "#myForm"
|
||||
// var formDataAll = $(selector).toObject({mode: 'all'});
|
||||
// socket.emit('addactivity', formDataAll[0], docid);
|
||||
// $('ul#sortable li').remove('.removable');
|
||||
// $('#Activity').find('input').attr('value','');
|
||||
// $('span.ActivityID').removeAttr('docid');
|
||||
// $('#Activity').find('input.datepicker').datepicker();
|
||||
// $('#Activity').find('input.datepicker').datepicker('setDate', new Date());
|
||||
// socket.emit('getactivites', 'please');
|
||||
// socket.emit('getexercises', 'please');
|
||||
// return false;
|
||||
|
||||
// });
|
||||
|
||||
$('#saveexercises').click(function() {
|
||||
console.log("saving exercise");
|
||||
var docid =$(this).closest('span').attr('docid');
|
||||
var selector= "#EditExerciseForm"
|
||||
var formDataAll = $(selector).toObject({mode: 'all'});
|
||||
socket.emit('updateexercises', formDataAll[0], docid);
|
||||
//cleanup[]
|
||||
$('ul#newexercises').find('input').attr('value','');
|
||||
$('ul#newexercises').find('select').attr('selected','');
|
||||
//socket.emit('getactivites', 'please');
|
||||
socket.emit('getexercises', 'please');
|
||||
return false;
|
||||
});
|
||||
|
||||
|
||||
$('#cancelform').click(function() {
|
||||
$('ul#sortable li').remove('.removable');
|
||||
$('span.ActivityID').removeAttr('docid');
|
||||
$('#Activity').find('input').attr('value','');
|
||||
$('#Activity').find('input.datepicker').datepicker();
|
||||
$('#Activity').find('input.datepicker').datepicker('setDate', new Date());
|
||||
return false;
|
||||
socket.emit('getactivites', 'please');
|
||||
socket.emit('getexercises', 'please');
|
||||
});
|
||||
|
||||
$('#cancelexerciseform').click(function(){
|
||||
//$('ul#editexercise li').remove();
|
||||
$('#editexercise li').children('input').attr('value','');
|
||||
$('span.EditExerciseID').removeAttr('docid');
|
||||
socket.emit('getexercises', 'please');
|
||||
//return false;
|
||||
});
|
||||
|
||||
$('ul').on('change', '.laptype',function() {
|
||||
console.log ('value= ' + $(this).val() );
|
||||
var currentselect;
|
||||
switch($(this).val()) {
|
||||
case "Cardio":
|
||||
$(this).siblings('span').html('<select class="ExerciseDropDownCardio" name="Activities.Activity.Lap[0].cardio.selection"></select><input type="text" class="lapdistance" name="Activities.Activity.Lap[0].cardio.distance" placeholder="Distance"><input type="text" class="laptime" name="Activities.Activity.Lap[0].cardio.time" placeholder="hh:mm:ss"><input style="display: none" type=text class="muscledata" name="Activities.Activity.Lap[0].cardio.muscledata"><a href=# class=delete>delete</a>');
|
||||
$(exercise_autocompletedata).each(function(index)
|
||||
{
|
||||
var option = $('<option />');
|
||||
if (this.class == 'cardio') {
|
||||
option.attr('value', index).text(this.name);
|
||||
$('.ExerciseDropDownCardio').append(option);
|
||||
};
|
||||
});
|
||||
|
||||
break;
|
||||
case "Exercise":
|
||||
$(this).siblings('span').html('<select class="ExerciseDropDown" name="Activities.Activity.Lap[0].exercise.selection"></select> <input type="text" class="sets" name="Activities.Activity.Lap[0].exercise.sets" placeholder="Sets"><input type="text" class="reps" name="Activities.Activity.Lap[0].exercise.reps" placeholder="Reps"><input type="text" name="Activities.Activity.Lap[0].exercise.weight" class="weight" placeholder="Weight in KG"><input style="display: none" type=text class="muscledata" name="Activities.Activity.Lap[0].exercise.muscledata"><a href=# class=delete>delete</a>');
|
||||
$(exercise_autocompletedata).each(function(index)
|
||||
{
|
||||
console.log("resetingdropdown")
|
||||
var option = $('<option />');
|
||||
if (this.class == 'weights') {
|
||||
option.attr('value', index).text(this.name);
|
||||
$('.ExerciseDropDown').append(option);
|
||||
};
|
||||
});
|
||||
break;
|
||||
};
|
||||
$('#sortable').trigger('sortupdate')
|
||||
});
|
||||
|
||||
//document closing
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user