$(document).ready(function() { $(document).on('click', '.addthisExercise',(function() { // $("button.addthisExercise").click(function() { console.log("This exercise name li" + JSON.stringify($(this).closest('li').data())); var newElem = $('
  • '); $(newElem).data('musclearray', $(this).closest('li').data('musclearray')); $(newElem).data('musclearrayMod', $(this).closest('li').data('musclearrayMod')); $(newElem).appendTo('ul#exercises'); $( ".hiddenelement" ).hide(); $("button").button(); $( "ul#exercises" ).sortable( "refresh" ); $( "ul#sets" ).sortable( "refresh" ); $('#newworkout').trigger('sortupdate'); }) ); //filteredExerciseArray = filterarray(originalExerciselist); //PopulateExerciseList(arr); $(document).on('click', '.filter',(function (){ var keyREGEX= ""; if ($(".filter:checked").length > 0) { // any one is checked var len = $('.filter').length; $(".filter").each(function(index, element) { if ($(this).is (':checked')) { // Do stuff keyREGEX += '('+ $(this).val() +')'; } }); //keyREGEX += "'"; keyREGEX = keyREGEX.replace(")(", ")|("); } else { // none is checked keyREGEX = '(none is checked)'; } console.log("Regex= " + keyREGEX); filteredExerciseArray = filterarray(originalExerciselist, keyREGEX); PopulateExerciseList(filteredExerciseArray); console.timeEnd('Filter'); })); function filterarray(input, regex){ console.log('passed regex' + regex); var keyRE=new RegExp(regex); var arr = jQuery.grep(input, function(n, i){ return keyRE.test(n.keywords); // return $.grep(n.keywords, function (item, i) { // return keyRE.test(item); // }); }); console.log("arr " + arr.length); return arr; } ///////////////////////////////// // Pseudocode for 1RM calcs // for each exercise in workout // get H1RM for exercise // C1RMsum = 0 // for each set in exercise // calculate C1RM and store in array // find highest C1RM in array // if C1RM > H1RM then // H1RM = C1RM // set comment to "yay" // for each value in array // set[index] = value/H1RM // C1RMsum += value/H1RM // Done // assume sum sumarray * each in musclearray ////// Make below standalone funtion "updateExerciselistDIV" function PopulateExerciseList(exerciselist) { console.time('PopulateExList'); var newExerciselist = $('
    '); $.each(exerciselist, function (i, item) { //console.log("Exercisename = " + item.name); var newElem = $('
  • '+item.name + ' - ' + item.description + ' - ' + item.keywords +'
  • '); $(newElem).data('name', item.name); $(newElem).data('exid', item._id); $(newElem).data('musclearray', item.musclearray); //$(newElem).data('musclearrayMod', item.musclearrayMod); $(newElem).data('datafields', item.datafields); newExerciselist.append(newElem); }); console.log("newexlist outside= " + newExerciselist); $('#exerciselist').empty(); $(newExerciselist).appendTo('#exerciselist'); $("button").button(); console.timeEnd('PopulateExList'); } var originalExerciselist = $.getValues("/api/exerciselist"); PopulateExerciseList(originalExerciselist); });