diff --git a/assets/js/lesson-metadata.min.js b/assets/js/lesson-metadata.min.js index 31b9ce024e..faa98ba563 100644 --- a/assets/js/lesson-metadata.min.js +++ b/assets/js/lesson-metadata.min.js @@ -1 +1 @@ -jQuery(document).ready(function(){var e;jQuery.fn.exists=function(){return this.length>0},jQuery.fn.validateCourseInput=function(){return 0!=jQuery("#course-title").val().replace(/^\s+|\s+$/g,"").length?!0:!1},jQuery.fn.validateQuestionInput=function(e,t){if("add"==e)return 0!=jQuery("#add_question").val().replace(/^\s+|\s+$/g,"").length?!0:!1;if("edit"==e){var n=t.closest("tr").prev("tr").find("td:first").text();return 0!=jQuery("#question_"+n).val().replace(/^\s+|\s+$/g,"").length?!0:!1}return!1},jQuery.fn.resetQuestionTable=function(){jQuery("tr.question-quick-edit").each(function(){jQuery(this).hasClass("hidden")||jQuery(this).addClass("hidden")})},jQuery.fn.resetAddQuestionForm=function(){jQuery("#add-new-question").find("div").find("input").each(function(){"radio"!=jQuery(this).attr("type")&&jQuery(this).attr("value","")}),jQuery("#add-new-question").find("div").find("textarea").each(function(){jQuery(this).attr("value","")})},jQuery.fn.checkQuizGradeType=function(e){var t,n=[];jQuery("#add-question-metadata > table > tbody > tr input.question_type").each(function(){t=jQuery(this).val(),n.push(t)}),e&&n.push(e);for(var i,s=!1,o=0;o0?jQuery("#no-questions-message").hasClass("hidden")||jQuery("#no-questions-message").addClass("hidden"):jQuery("#no-questions-message").removeClass("hidden"),jQuery.fn.updateQuestionRows()},jQuery.fn.saveQuizGradeType=function(){var e=jQuery("input#quiz_grade_type").is(":checked")?"auto":"manual",t=jQuery("input#quiz_grade_type_disabled").val(),n="quiz_grade_type="+e;return n+="&quiz_grade_type_disabled="+t,n+="&quiz_id="+jQuery("#quiz_id").attr("value"),jQuery.post(ajaxurl,{action:"lesson_update_grade_type",lesson_update_grade_type_nonce:woo_localized_data.lesson_update_grade_type_nonce,data:n},function(){}),!1},jQuery.fn.saveQuestionOrder=function(e){var t="question_order="+e;return t+="&quiz_id="+jQuery("#quiz_id").attr("value"),jQuery.post(ajaxurl,{action:"lesson_update_question_order",lesson_update_question_order_nonce:woo_localized_data.lesson_update_question_order_nonce,data:t},function(){}),!1},jQuery.fn.saveQuestionOrderRandom=function(){var e=jQuery("input#random_question_order").is(":checked")?"yes":"no",t="random_question_order="+e;return t+="&quiz_id="+jQuery("#quiz_id").attr("value"),jQuery.post(ajaxurl,{action:"lesson_update_question_order_random",lesson_update_question_order_random_nonce:woo_localized_data.lesson_update_question_order_random_nonce,data:t},function(){}),!1},jQuery.fn.updateQuestionRows=function(){var e=1,t="alternate";jQuery("#add-question-metadata").find("td.question-number").each(function(){if(jQuery(this).find("span.number").text(e),jQuery(this).closest("tbody").removeClass().addClass(t),t="alternate"==t?"":"alternate",""!=jQuery(this).find("span.total-number").text()){var n=parseInt(jQuery(this).find("span.total-number").text()),i=e+n-1,s="";s=e==i?e:e+" - "+i,jQuery(this).find("span.row-numbers").text(s),e+=n}else e++})},jQuery.fn.updateQuestionOrder=function(){var e="";jQuery("#sortable-questions").find("input.row_question_id").each(function(t){t>0&&(e+=","),e+=jQuery(this).val()}),jQuery("input#question-order").attr("value",e),jQuery.fn.saveQuestionOrder(e)},jQuery.fn.uploadQuestionMedia=function(t){var n=t.attr("id"),i=n.replace("_button",""),s=n.replace("_button","_preview"),o=n.replace("_button","_link"),u=n.replace("_button","_button_delete");e=wp.media.frames.file_frame=wp.media({title:t.data("uploader_title"),button:{text:t.data("uploader_button_text")},multiple:!1}),e.on("select",function(){attachment=e.state().get("selection").first().toJSON(),jQuery("#"+i).val(attachment.id);var n=attachment.type,a=!1;"image"==n&&(a=!0);var r=attachment.title;r&&""!=r||(r=attachment.filename);var d=''+r+"";jQuery("#"+o).removeClass("hidden"),jQuery("#"+o).html(d),a?(jQuery("#"+s).removeClass("hidden"),jQuery("#"+s).attr("src",attachment.sizes.thumbnail.url)):(jQuery("#"+s).addClass("hidden"),jQuery("#"+s).attr("src","")),t.text(woo_localized_data.change_file),jQuery("#"+u).removeClass("hidden")}),e.open()},jQuery.fn.deleteQuestionMedia=function(e){var t=e.attr("id"),n=t.replace("_button_delete","_button"),i=t.replace("_button_delete",""),s=t.replace("_button_delete","_preview"),o=t.replace("_button_delete","_link");jQuery("#"+i).val(""),jQuery("#"+s).addClass("hidden"),jQuery("#"+s).attr("src",""),jQuery("#"+o).addClass("hidden"),jQuery("#"+o).html(),jQuery("#"+n).text(woo_localized_data.add_file),e.addClass("hidden")},jQuery.fn.updateAnswerOrder=function(e){var t="",n="";e.find("input.question_answer").each(function(e){t=jQuery(this).attr("rel"),""!=t&&(e>0&&(n+=","),n+=jQuery(this).attr("rel"))}),e.find("input.answer_order").attr("value",n)},jQuery.fn.htmlentities=function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},jQuery.fn.ucwords=function(e){return e=e.toLowerCase(),e=e.replace("-"," "),e=e.replace("boolean","True/False"),e.replace(/(^([a-zA-Z\p{M}]))|([ -][a-zA-Z\p{M}])/g,function(e){return e.toUpperCase()})},jQuery.fn.filterExistingQuestions=function(e){var t="",n="",i="",s="",o="",u=1;return jQuery("tbody#existing-questions").fadeTo("fast",.33),n=jQuery("#existing-status").val(),t+="question_status="+n,""!=jQuery("#existing-type").val()&&(i=jQuery("#existing-type").val(),t+="&question_type="+i),""!=jQuery("#existing-category").val()&&(s=jQuery("#existing-category").val(),t+="&question_category="+s),""!=jQuery("#existing-search").val()&&(o=jQuery("#existing-search").val(),t+="&question_search="+o),u=e?e:jQuery("#existing-page").val(),t+="&question_page="+u,jQuery.post(ajaxurl,{action:"filter_existing_questions",filter_existing_questions_nonce:woo_localized_data.filter_existing_questions_nonce,data:t},function(e){if(e){var t=parseInt(e.count),n=parseInt(e.page),i=10*n;jQuery("tbody#existing-questions").html(e.html),jQuery("tbody#existing-questions").fadeTo("fast",1),jQuery("#existing-page").val(n),n>1?jQuery("#existing-pagination .prev").removeClass("no-paging"):jQuery("#existing-pagination .prev").addClass("no-paging"),t>=i?jQuery("#existing-pagination .next").removeClass("no-paging"):jQuery("#existing-pagination .next").addClass("no-paging")}}),!1},jQuery.fn.scrollToElement=function(e){var t=30,n=800,i=jQuery(e).offset().top-t;return jQuery("html:not(:animated),body:not(:animated)").animate({scrollTop:i},n),!1},jQuery("input.gapfill-field").each(function(){jQuery(this).change(function(){var e=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_pre]").val(),t=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_gap]").val(),n=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_post]").val();jQuery(this).parent("div").find("p.gapfill-preview").html(e+" "+t+" "+n)}),jQuery(this).keyup(function(){var e=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_pre]").val(),t=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_gap]").val(),n=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_post]").val();jQuery(this).parent("div").find("p.gapfill-preview").html(e+" "+t+" "+n)})}),jQuery("#add-quiz-metadata").on("change","#quiz_grade_type",function(){jQuery.fn.saveQuizGradeType()}),jQuery("#lesson-complexity-options").exists()&&jQuery("#lesson-complexity-options").chosen(),jQuery("#lesson-prerequisite-options").exists()&&jQuery("#lesson-prerequisite-options").chosen(),jQuery("#lesson-course-options").exists()&&jQuery("#lesson-course-options").chosen(),jQuery("#course-prerequisite-options").exists()&&jQuery("#course-prerequisite-options").chosen(),jQuery("#lesson-course-details #course-category-options").exists()&&jQuery("#lesson-course-details #course-category-options").chosen(),jQuery("#course-woocommerce-product-options").exists()&&"-"!=jQuery("#course-woocommerce-product-options").val()&&jQuery("#course-woocommerce-product-options").chosen(),jQuery("#add-question-type-options").exists()&&jQuery("#add-question-type-options").chosen(),jQuery("#add-question-category-options").exists()&&jQuery("#add-question-category-options").chosen(),jQuery("#add-multiple-question-options").exists()&&jQuery("#add-multiple-question-options").chosen(),jQuery("#course-wc-product #course-woocommerce-product-options").exists()&&jQuery("#course-woocommerce-product-options").chosen(),jQuery("#add-multiple-question-category-options").exists()&&jQuery("#add-multiple-question-category-options").chosen(),jQuery("div.woothemes-sensei-settings form select").each(function(){jQuery(this).hasClass("range-input")||jQuery(this).chosen()}),jQuery("#lesson-course-details").addClass("hidden"),jQuery("#lesson-course-add").click(function(){jQuery("#lesson-course-actions").hide(),jQuery("#lesson-course-details").removeClass("hidden")}),jQuery("#lesson-course-details p").on("click","a.lesson_course_cancel",function(){jQuery("#lesson-course-actions").show(),jQuery("#lesson-course-details").addClass("hidden")}),jQuery("#lesson-course-details p").on("click","a.lesson_course_save",function(){var e=jQuery.fn.validateCourseInput();if(e){var t="";return t+="course_prerequisite="+jQuery("#course-prerequisite-options").val(),t+="&course_woocommerce_product="+jQuery("#course-woocommerce-product-options").val(),t+="&course_category="+jQuery("#course-category-options").val(),t+="&course_title="+encodeURIComponent(jQuery("#course-title").attr("value")),t+="&course_content="+encodeURIComponent(jQuery("#course-content").attr("value")),t+="&action=add",jQuery.post(ajaxurl,{action:"lesson_add_course",lesson_add_course_nonce:woo_localized_data.lesson_add_course_nonce,data:t},function(e){e>0&&(jQuery("#lesson-course-actions").show(),jQuery("#lesson-course-details").addClass("hidden"),jQuery("#lesson-course-options").append(jQuery("").attr("value",e).text(jQuery("#course-title").attr("value"))),jQuery("#lesson-course-options").val(e),jQuery("#lesson-course-options").trigger("chosen:updated"))}),!1}jQuery("#course-title").focus()}),jQuery("#add-question-actions").on("change","select.question-type-select",function(){var e=jQuery(this).val();switch(jQuery("#add-new-question").find("div.question_default_fields").hide(),jQuery("#add-new-question").find("div.question_boolean_fields").hide(),jQuery("#add-new-question").find("div.question_gapfill_fields").hide(),jQuery("#add-new-question").find("div.question_multiline_fields").hide(),jQuery("#add-new-question").find("div.question_singleline_fields").hide(),jQuery("#add-new-question").find("div.question_fileupload_fields").hide(),jQuery(".add_question_random_order").hide(),e){case"multiple-choice":jQuery("#add-new-question").find("div.question_default_fields").show(),jQuery(".add_question_random_order").show();break;case"boolean":jQuery("#add-new-question").find("div.question_boolean_fields").show();break;case"gap-fill":jQuery("#add-new-question").find("div.question_gapfill_fields").show();break;case"multi-line":jQuery("#add-new-question").find("div.question_multiline_fields").show();break;case"single-line":jQuery("#add-new-question").find("div.question_singleline_fields").show();break;case"file-upload":jQuery("#add-new-question").find("div.question_fileupload_fields").show()}}),jQuery("#add-question-metadata").on("click","a.question_table_edit",function(){var e=jQuery(this).closest("tr").next("tr").find(".question_original_counter").text();jQuery("#add-question-actions button.add_question_answer").removeClass("hidden"),jQuery.fn.resetAddQuestionForm(),jQuery.fn.resetQuestionTable(),jQuery(this).closest("tr").next("tr").removeClass("hidden"),jQuery("#question_"+e).focus()}),jQuery("#add-question-metadata").on("click","a.lesson_question_cancel",function(){jQuery(this).closest("tr.question-quick-edit").addClass("hidden")}),jQuery("#add-new-question").on("click","a.add_question_save",function(){var e="",t="multiple-choice",n="",i="true",s=jQuery.fn.validateQuestionInput("add",jQuery(this));if(s){e+="quiz_id="+jQuery("#quiz_id").attr("value"),e+="&action=add",""!=jQuery("#add-question-type-options").val()&&(t=jQuery("#add-question-type-options").val()),""!=jQuery("#add-question-category-options").val()&&(n=jQuery("#add-question-category-options").val());var o="question_default_fields";switch(t){case"multiple-choice":o="question_default_fields";break;case"boolean":o="question_boolean_fields";break;case"gap-fill":o="question_gapfill_fields";break;case"multi-line":o="question_multiline_fields";break;case"single-line":o="question_singleline_fields";break;case"file-upload":o="question_fileupload_fields"}jQuery("#add-new-question").find("div.question_required_fields").find("input").each(function(){"radio"!=jQuery(this).attr("type")&&(e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).attr("value")))}),""!=jQuery("#add-new-question").find("div.question_required_fields").find("textarea").val()&&(e+="&"+jQuery("#add-new-question").find("div.question_required_fields").find("textarea").attr("name")+"="+encodeURIComponent(jQuery("#add-new-question").find("div.question_required_fields").find("textarea").val()));var u=0;jQuery("#add-new-question").find("div."+o).find("input").each(function(){"radio"==jQuery(this).attr("type")?0==u&&(i=jQuery("input[name="+jQuery(this).attr("name")+"]:checked").attr("value"),e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(i),u++):e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).attr("value"))}),""!=jQuery("#add_question_right_answer_essay").val()&&"question_essay_fields"==o&&(e+="&"+jQuery("#add_question_right_answer_essay").attr("name")+"="+encodeURIComponent(jQuery("#add_question_right_answer_essay").val())),""!=jQuery("#add_question_right_answer_multiline").val()&&"question_multiline_fields"==o&&(e+="&"+jQuery("#add_question_right_answer_multiline").attr("name")+"="+encodeURIComponent(jQuery("#add_question_right_answer_multiline").val())),e+="&question_type="+t,e+="&question_category="+n,questionGrade=jQuery("#add-question-grade").val(),e+="&question_grade="+questionGrade;var a=parseInt(jQuery("#question_counter").attr("value"));e+="&question_count="+a;var r=jQuery("#add-new-question").find(".answer_order").attr("value");e+="&answer_order="+r;var d=jQuery("#add-new-question").find(".question_media").attr("value");if(e+="&question_media="+d,""!=jQuery("div#add-new-question").find("div."+o).find(".answer_feedback").exists()){var l=jQuery("#add-new-question").find("div."+o).find(".answer_feedback").attr("value");e+="&answer_feedback="+encodeURIComponent(l)}var c="no";return jQuery("div#add-new-question").find(".random_order").is(":checked")&&(c="yes"),e+="&random_order="+c,jQuery.post(ajaxurl,{action:"lesson_update_question",lesson_update_question_nonce:woo_localized_data.lesson_update_question_nonce,data:e},function(e){if(e){jQuery.fn.updateQuestionCount(1,"+"),jQuery("#add-question-metadata table").append(e),jQuery.fn.resetAddQuestionForm(),jQuery.fn.checkQuizGradeType(t);var n=jQuery("#show_questions").attr("max");n++,jQuery("#show_questions").attr("max",n),jQuery.fn.scrollToElement("#lesson-quiz")}}),!1}jQuery("#add_question").focus()}),jQuery("#add-new-question").on("click","a.add_multiple_save",function(){var e="",t="",n=0;e+="quiz_id="+jQuery("#quiz_id").attr("value"),""!=jQuery("#add-multiple-question-count").val()&&(n=parseInt(jQuery("#add-multiple-question-count").val())),e+="&question_number="+n;var i=parseInt(jQuery("#add-multiple-question-count").attr("max"));if(n>i)return alert(woo_localized_data.too_many_for_cat),jQuery("#add-multiple-question-count").focus(),!1;""!=jQuery("#add-multiple-question-category-options").val()&&(t=jQuery("#add-multiple-question-category-options").val()),e+="&question_category="+t;var s=parseInt(jQuery("#question_counter").attr("value"));return e+="&question_count="+s,t&&n?(jQuery.post(ajaxurl,{action:"lesson_add_multiple_questions",lesson_add_multiple_questions_nonce:woo_localized_data.lesson_add_multiple_questions_nonce,data:e},function(e){if(e){jQuery("#add-multiple-question-category-options").val(""),jQuery("#add-multiple-question-count").val("1"),jQuery.fn.updateQuestionCount(n,"+"),jQuery("#add-question-metadata table").append(e),jQuery.fn.updateQuestionOrder();var t=jQuery("#show_questions").attr("max");t+=n,jQuery("#show_questions").attr("max",t),jQuery.fn.scrollToElement("#lesson-quiz")}}),!1):void jQuery("#add-multiple-question-category-options").focus()}),jQuery("#add-question-metadata").on("click","a.question_table_save",function(){var e="",t="",n=jQuery.fn.validateQuestionInput("edit",jQuery(this));if(n){e+="quiz_id="+jQuery("#quiz_id").attr("value"),e+="&action=save",jQuery(this).closest("td").children("input").each(function(){e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).attr("value"))}),t=jQuery(this).closest("td").find("span.question_original_counter").text(),""!=jQuery(this).closest("td").find("input.question_type").val()&&(questionType=jQuery(this).closest("td").find("input.question_type").val());var i="question_default_fields";switch(questionType){case"multiple-choice":i="question_default_fields";break;case"boolean":i="question_boolean_fields";break;case"gap-fill":i="question_gapfill_fields";break;case"essay-paste":i="question_essay_fields";break;case"multi-line":i="question_multiline_fields";break;case"single-line":i="question_singleline_fields";break;case"file-upload":i="question_fileupload_fields"}jQuery(this).closest("td").find("div.question_required_fields").find("input").each(function(){"radio"!=jQuery(this).attr("type")&&(e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).attr("value")))}),""!=jQuery(this).closest("td").find("div.question_required_fields").find("textarea").val()&&(e+="&"+jQuery(this).closest("td").find("div.question_required_fields").find("textarea").attr("name")+"="+encodeURIComponent(jQuery(this).closest("td").find("div.question_required_fields").find("textarea").val()));var s=0;jQuery(this).closest("td").find("div."+i).find("input").each(function(){"radio"==jQuery(this).attr("type")?0==s&&(e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery("input[name="+jQuery(this).attr("name")+"]:checked").attr("value")),s++):e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).attr("value"))}),""!=jQuery(this).closest("td").find("div."+i).find("textarea").val()&&"question_multiline_fields"==i&&(e+="&"+jQuery(this).closest("td").find("div."+i).find("textarea").attr("name")+"="+encodeURIComponent(jQuery(this).closest("td").find("div."+i).find("textarea").val())),"question_fileupload_fields"==i&&jQuery(this).closest("td").find("div."+i).find("textarea").each(function(){e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).val())}),e+="&question_type="+questionType,questionGrade=jQuery(this).closest("td").find("input.question_grade").val(),e+="&question_grade="+questionGrade;var o=parseInt(jQuery("#question_counter").attr("value"));e+="&question_count="+o;var u=jQuery(this).closest("td").find(".answer_order").attr("value");e+="&answer_order="+u;var a=jQuery(this).closest("td").find(".question_media").attr("value");if(e+="&question_media="+a,""!=jQuery(this).closest("td").find(".answer_feedback").exists()){var r=jQuery(this).closest("td").find(".answer_feedback").attr("value");e+="&answer_feedback="+encodeURIComponent(r)}var d="no";return jQuery(this).closest("td").find(".random_order").is(":checked")&&(d="yes"),e+="&random_order="+d,jQuery.post(ajaxurl,{action:"lesson_update_question",lesson_update_question_nonce:woo_localized_data.lesson_update_question_nonce,data:e},function(e){if(e){var n,i;n=jQuery("#question_"+t).closest("tr").find(".question_required_fields input[name=question] ").val(),jQuery("#question_"+t).closest("tr").prev().find(".question-title-column").html(n),i=jQuery("#question_"+t).closest("tr").find(".question_required_fields input[name=question_grade] ").val(),jQuery("#question_"+t).closest("tr").prev().find(".question-grade-column").html(i),jQuery("#question_"+t).closest("tr").addClass("hidden")}}),!1}}),jQuery("#add-question-metadata").on("click","a.question_table_delete",function(){var e="",t="",n="",i=confirm(woo_localized_data.confirm_remove);if(i){e+="&action=delete",jQuery(this).closest("tr").next("tr").find("td").find("input").each(function(){"question_id"==jQuery(this).attr("name")&&(t=jQuery(this).attr("value"),e+="&question_id="+jQuery(this).attr("value"))}),e+="&quiz_id="+jQuery("#quiz_id").attr("value"),n=jQuery(this).closest("tr").find("td.question-number span.number").text();var s=jQuery(this).closest("tbody");return jQuery.post(ajaxurl,{action:"lesson_update_question",lesson_update_question_nonce:woo_localized_data.lesson_update_question_nonce,data:e},function(e){if(e){jQuery("#add-question-metadata > table > tbody > tr").children("td").each(function(){return jQuery(this).find("span.number").text()==n?(jQuery(this).closest("tr").next("tr").remove(),jQuery(this).closest("tr").remove(),!1):void 0}),jQuery.fn.updateQuestionCount(1,"-"),jQuery.fn.checkQuizGradeType(!1),jQuery.fn.updateAnswerOrder(s);var t=parseInt(jQuery("#show_questions").attr("max"));t--,jQuery("#show_questions").attr("max",t);var i=parseInt(jQuery("#show_questions").val());i>t&&jQuery("#show_questions").val(t)}}),!1}}),jQuery("#add-question-metadata").on("click","a.question_multiple_delete",function(){var e="",t=confirm(woo_localized_data.confirm_remove_multiple);if(t){e+="question_id="+jQuery(this).attr("rel"),e+="&quiz_id="+jQuery("#quiz_id").attr("value");{var n=jQuery(this).closest("tr").find("td.question-number span.number").text(),i=jQuery(this).closest("tr").find("td.question-number span.total-number").text();jQuery(this).closest("tbody")}return jQuery.post(ajaxurl,{action:"lesson_remove_multiple_questions",lesson_remove_multiple_questions_nonce:woo_localized_data.lesson_remove_multiple_questions_nonce,data:e},function(e){if(e){jQuery("#add-question-metadata > table > tbody > tr").children("td").each(function(){return jQuery(this).find("span.number").text()==n?(jQuery(this).closest("tr").remove(),!1):void 0}),jQuery.fn.updateQuestionCount(i,"-");var t=parseInt(jQuery("#show_questions").attr("max"));t-=i,jQuery("#show_questions").attr("max",t);var s=parseInt(jQuery("#show_questions").val());s>t&&jQuery("#show_questions").val(t)}}),!1}}),jQuery("#add-new-question").on("click","a.add_existing_save",function(){var e="",t="",n=0;if(jQuery("#existing-questions").find("input.existing-item").each(function(){if(jQuery(this).is(":checked")){var t=jQuery(this).val();e+=t+",",++n}}),e){t="questions="+e,t+="&quiz_id="+jQuery("#quiz_id").attr("value");var i=parseInt(jQuery("#question_counter").attr("value"));return t+="&question_count="+i,jQuery.post(ajaxurl,{action:"lesson_add_existing_questions",lesson_add_existing_questions_nonce:woo_localized_data.lesson_add_existing_questions_nonce,data:t},function(e){if(e){jQuery.fn.updateQuestionCount(n,"+"),jQuery("#add-question-metadata table").append(e),jQuery.fn.checkQuizGradeType();var t=jQuery("#show_questions").attr("max");t+=n,jQuery("#show_questions").attr("max",t),jQuery.fn.scrollToElement("#lesson-quiz"),jQuery("#existing-questions").find("input.existing-item").each(function(){jQuery(this).removeAttr("checked")})}}),!1}}),jQuery("#existing-filter-button").click(function(){jQuery.fn.filterExistingQuestions(1)}),jQuery("#existing-pagination").on("click","a",function(){var e=parseInt(jQuery("#existing-page").val()),t=e;jQuery(this).hasClass("prev")?t=e-1:jQuery(this).hasClass("next")&&(t=e+1),t=parseInt(t),jQuery.fn.filterExistingQuestions(t)}),jQuery("#quiz-settings").on("change","#pass_required",function(){var e=jQuery(this).attr("checked");"checked"==e?jQuery(".form-field.quiz_passmark").removeClass("hidden"):(jQuery(".form-field.quiz_passmark").addClass("hidden"),jQuery("#quiz_passmark").val(0))}),jQuery("#quiz-settings").on("change","#random_question_order",function(){jQuery.fn.saveQuestionOrderRandom()}),jQuery("#add-question-main").on("blur",".question_answer",function(){var e=jQuery(this).val(),t=jQuery(this);return dataToPost="&answer_value="+e,jQuery.post(ajaxurl,{action:"question_get_answer_id",data:dataToPost},function(e){e&&(t.attr("rel",e),jQuery.fn.updateAnswerOrder(t.closest("div")))}),!1}),jQuery("#add-question-main").on("click",".add_wrong_answer_option",function(){var e=jQuery(this).attr("rel"),t=jQuery(this).closest("div.multiple-choice-answers").find(".wrong_answer_count").text();t++;var n='';jQuery(this).closest("div").before(n)}),jQuery("#add-question-main").on("click",".add_right_answer_option",function(){var e=jQuery(this).attr("rel"),t=jQuery(this).closest("div.multiple-choice-answers").find(".right_answer_count").text();t++;var n='';jQuery(this).closest("div").before(n)}),jQuery("#add-question-main").on("click",".remove_answer_option",function(){jQuery(this).closest("label.answer").remove()}),jQuery(".multiple-choice-answers").sortable({items:"label.answer"}),jQuery(".multiple-choice-answers").bind("sortstop",function(){jQuery.fn.updateAnswerOrder(jQuery(this))}),jQuery("#sortable-questions").sortable({items:"tbody",start:function(e,t){t.placeholder.html(" ")}}),jQuery("#sortable-questions").bind("sortstop",function(){jQuery.fn.updateQuestionOrder(),jQuery.fn.updateQuestionRows()}),jQuery("#add-question-main").on("click",".upload_media_file_button",function(e){e.preventDefault(),jQuery.fn.uploadQuestionMedia(jQuery(this))}),jQuery("#add-question-main").on("click",".delete_media_file_button",function(e){e.preventDefault(),jQuery.fn.deleteQuestionMedia(jQuery(this))}),jQuery("#add-question-main").on("click",".question_media_preview",function(e){e.preventDefault(),jQuery.fn.uploadQuestionMedia(jQuery(this).closest("div").find(".upload_media_file_button"))}),jQuery("#add-new-question .tab-content:not(:first)").addClass("hidden"),jQuery(".add-question-tabs .nav-tab").click(function(){var e=jQuery(this).attr("id"),t=e+"-content";jQuery("#add-new-question .nav-tab").removeClass("nav-tab-active"),jQuery(this).addClass("nav-tab-active"),jQuery("#add-new-question .tab-content").addClass("hidden"),jQuery("#"+t).removeClass("hidden")}),jQuery("#add-multiple-question-category-options").change(function(){var e=jQuery(this).val(),t="cat="+e;jQuery.post(ajaxurl,{action:"get_question_category_limit",data:t},function(e){if(e){var t=parseInt(e);t&&jQuery("#add-multiple-question-count").attr("max",t)}})}),jQuery("#existing-table th.check-column input").click(function(){jQuery("#existing-questions").find(":checkbox").attr("checked",this.checked)}),jQuery("tbody#existing-questions").on("click","tr td:not(.cb)",function(){jQuery(this).closest("tr").find(":checkbox").each(function(){jQuery(this).prop("checked",!jQuery(this).prop("checked"))})}),jQuery("#lesson-complexity-options").exists()&&jQuery("#lesson-complexity-options").chosen(),jQuery("#lesson-prerequisite-options").exists()&&jQuery("#lesson-prerequisite-options").chosen(),jQuery("#lesson-course-options").exists()&&jQuery("#lesson-course-options").chosen(),jQuery("#course-prerequisite-options").exists()&&jQuery("#course-prerequisite-options").chosen(),jQuery("#course-category-options").exists()&&jQuery("#course-category-options").chosen(),jQuery("#course-woocommerce-product-options").exists()&&"-"!=jQuery("#course-woocommerce-product-options").val()&&jQuery("#course-woocommerce-product-options").chosen(),jQuery("#add-question-type-options").exists()&&jQuery("#add-question-type-options").chosen(),jQuery("#add-question-category-options").exists()&&jQuery("#add-question-category-options").chosen(),jQuery("#add-multiple-question-options").exists()&&jQuery("#add-multiple-question-options").chosen(),jQuery("select#course-woocommerce-product-options").exists()&&jQuery("select#course-woocommerce-product-options").chosen(),jQuery("#add-multiple-question-category-options").exists()&&jQuery("#add-multiple-question-category-options").chosen(),jQuery("div.woothemes-sensei-settings form select").each(function(){jQuery(this).hasClass("range-input")||jQuery(this).chosen()}),jQuery(".post-type-question #post-body-content").exists()&&jQuery(".post-type-question #post-body-content").remove()}); \ No newline at end of file +jQuery(document).ready(function(){var e;jQuery.fn.exists=function(){return this.length>0},jQuery.fn.validateCourseInput=function(){return 0!=jQuery("#course-title").val().replace(/^\s+|\s+$/g,"").length?!0:!1},jQuery.fn.validateQuestionInput=function(e,t){if("add"==e)return 0!=jQuery("#add_question").val().replace(/^\s+|\s+$/g,"").length?!0:!1;if("edit"==e){var n=t.closest("tr").prev("tr").find("td:first").text();return 0!=jQuery("#question_"+n).val().replace(/^\s+|\s+$/g,"").length?!0:!1}return!1},jQuery.fn.resetQuestionTable=function(){jQuery("tr.question-quick-edit").each(function(){jQuery(this).hasClass("hidden")||jQuery(this).addClass("hidden")})},jQuery.fn.resetAddQuestionForm=function(){jQuery("#add-new-question").find("div").find("input").each(function(){"radio"!=jQuery(this).attr("type")&&jQuery(this).attr("value","")}),jQuery("#add-new-question").find("div").find("textarea").each(function(){jQuery(this).attr("value","")})},jQuery.fn.checkQuizGradeType=function(e){var t,n=[];jQuery("#add-question-metadata > table > tbody > tr input.question_type").each(function(){t=jQuery(this).val(),n.push(t)}),e&&n.push(e);for(var i,s=!1,o=0;o0?jQuery("#no-questions-message").hasClass("hidden")||jQuery("#no-questions-message").addClass("hidden"):jQuery("#no-questions-message").removeClass("hidden"),jQuery.fn.updateQuestionRows()},jQuery.fn.saveQuizGradeType=function(){var e=jQuery("input#quiz_grade_type").is(":checked")?"auto":"manual",t=jQuery("input#quiz_grade_type_disabled").val(),n="quiz_grade_type="+e;return n+="&quiz_grade_type_disabled="+t,n+="&quiz_id="+jQuery("#quiz_id").attr("value"),jQuery.post(ajaxurl,{action:"lesson_update_grade_type",lesson_update_grade_type_nonce:woo_localized_data.lesson_update_grade_type_nonce,data:n},function(){}),!1},jQuery.fn.saveQuestionOrder=function(e){var t="question_order="+e;return t+="&quiz_id="+jQuery("#quiz_id").attr("value"),jQuery.post(ajaxurl,{action:"lesson_update_question_order",lesson_update_question_order_nonce:woo_localized_data.lesson_update_question_order_nonce,data:t},function(){}),!1},jQuery.fn.saveQuestionOrderRandom=function(){var e=jQuery("input#random_question_order").is(":checked")?"yes":"no",t="random_question_order="+e;return t+="&quiz_id="+jQuery("#quiz_id").attr("value"),jQuery.post(ajaxurl,{action:"lesson_update_question_order_random",lesson_update_question_order_random_nonce:woo_localized_data.lesson_update_question_order_random_nonce,data:t},function(){}),!1},jQuery.fn.updateQuestionRows=function(){var e=1,t="alternate";jQuery("#add-question-metadata").find("td.question-number").each(function(){if(jQuery(this).find("span.number").text(e),jQuery(this).closest("tbody").removeClass().addClass(t),t="alternate"==t?"":"alternate",""!=jQuery(this).find("span.total-number").text()){var n=parseInt(jQuery(this).find("span.total-number").text()),i=e+n-1,s="";s=e==i?e:e+" - "+i,jQuery(this).find("span.row-numbers").text(s),e+=n}else e++})},jQuery.fn.updateQuestionOrder=function(){var e="";jQuery("#sortable-questions").find("input.row_question_id").each(function(t){t>0&&(e+=","),e+=jQuery(this).val()}),jQuery("input#question-order").attr("value",e),jQuery.fn.saveQuestionOrder(e)},jQuery.fn.uploadQuestionMedia=function(t){var n=t.attr("id"),i=n.replace("_button",""),s=n.replace("_button","_preview"),o=n.replace("_button","_link"),u=n.replace("_button","_button_delete");e=wp.media.frames.file_frame=wp.media({title:t.data("uploader_title"),button:{text:t.data("uploader_button_text")},multiple:!1}),e.on("select",function(){attachment=e.state().get("selection").first().toJSON(),jQuery("#"+i).val(attachment.id);var n=attachment.type,a=!1;"image"==n&&(a=!0);var r=attachment.title;r&&""!=r||(r=attachment.filename);var d=''+r+"";jQuery("#"+o).removeClass("hidden"),jQuery("#"+o).html(d),a?(jQuery("#"+s).removeClass("hidden"),jQuery("#"+s).attr("src",attachment.sizes.thumbnail.url)):(jQuery("#"+s).addClass("hidden"),jQuery("#"+s).attr("src","")),t.text(woo_localized_data.change_file),jQuery("#"+u).removeClass("hidden")}),e.open()},jQuery.fn.deleteQuestionMedia=function(e){var t=e.attr("id"),n=t.replace("_button_delete","_button"),i=t.replace("_button_delete",""),s=t.replace("_button_delete","_preview"),o=t.replace("_button_delete","_link");jQuery("#"+i).val(""),jQuery("#"+s).addClass("hidden"),jQuery("#"+s).attr("src",""),jQuery("#"+o).addClass("hidden"),jQuery("#"+o).html(),jQuery("#"+n).text(woo_localized_data.add_file),e.addClass("hidden")},jQuery.fn.updateAnswerOrder=function(e){var t="",n="";e.find("input.question_answer").each(function(e){t=jQuery(this).attr("rel"),""!=t&&(e>0&&(n+=","),n+=jQuery(this).attr("rel"))}),e.find("input.answer_order").attr("value",n)},jQuery.fn.htmlentities=function(e){return String(e).replace(/&/g,"&").replace(//g,">").replace(/"/g,""")},jQuery.fn.ucwords=function(e){return e=e.toLowerCase(),e=e.replace("-"," "),e=e.replace("boolean","True/False"),e.replace(/(^([a-zA-Z\p{M}]))|([ -][a-zA-Z\p{M}])/g,function(e){return e.toUpperCase()})},jQuery.fn.filterExistingQuestions=function(e){var t="",n="",i="",s="",o="",u=1;return jQuery("tbody#existing-questions").fadeTo("fast",.33),n=jQuery("#existing-status").val(),t+="question_status="+n,""!=jQuery("#existing-type").val()&&(i=jQuery("#existing-type").val(),t+="&question_type="+i),""!=jQuery("#existing-category").val()&&(s=jQuery("#existing-category").val(),t+="&question_category="+s),""!=jQuery("#existing-search").val()&&(o=jQuery("#existing-search").val(),t+="&question_search="+o),u=e?e:jQuery("#existing-page").val(),t+="&question_page="+u,jQuery.post(ajaxurl,{action:"filter_existing_questions",filter_existing_questions_nonce:woo_localized_data.filter_existing_questions_nonce,data:t},function(e){if(e){var t=parseInt(e.count),n=parseInt(e.page),i=10*n;jQuery("tbody#existing-questions").html(e.html),jQuery("tbody#existing-questions").fadeTo("fast",1),jQuery("#existing-page").val(n),n>1?jQuery("#existing-pagination .prev").removeClass("no-paging"):jQuery("#existing-pagination .prev").addClass("no-paging"),t>=i?jQuery("#existing-pagination .next").removeClass("no-paging"):jQuery("#existing-pagination .next").addClass("no-paging")}}),!1},jQuery.fn.scrollToElement=function(e){var t=30,n=800,i=jQuery(e).offset().top-t;return jQuery("html:not(:animated),body:not(:animated)").animate({scrollTop:i},n),!1},jQuery("input.gapfill-field").each(function(){jQuery(this).change(function(){var e=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_pre]").val(),t=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_gap]").val(),n=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_post]").val();jQuery(this).parent("div").find("p.gapfill-preview").html(e+" "+t+" "+n)}),jQuery(this).keyup(function(){var e=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_pre]").val(),t=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_gap]").val(),n=jQuery(this).parent("div").find("input[name=add_question_right_answer_gapfill_post]").val();jQuery(this).parent("div").find("p.gapfill-preview").html(e+" "+t+" "+n)})}),jQuery("#add-quiz-metadata").on("change","#quiz_grade_type",function(){jQuery.fn.saveQuizGradeType()}),jQuery("#lesson-complexity-options").exists()&&jQuery("#lesson-complexity-options").chosen(),jQuery("#lesson-prerequisite-options").exists()&&jQuery("#lesson-prerequisite-options").chosen(),jQuery("#lesson-course-options").exists()&&jQuery("#lesson-course-options").chosen(),jQuery("#course-prerequisite-options").exists()&&jQuery("#course-prerequisite-options").chosen(),jQuery("#lesson-course-details #course-category-options").exists()&&jQuery("#lesson-course-details #course-category-options").chosen(),jQuery("#course-woocommerce-product-options").exists()&&"-"!=jQuery("#course-woocommerce-product-options").val()&&jQuery("#course-woocommerce-product-options").chosen(),jQuery("#add-question-type-options").exists()&&jQuery("#add-question-type-options").chosen(),jQuery("#add-question-category-options").exists()&&jQuery("#add-question-category-options").chosen(),jQuery("#add-multiple-question-options").exists()&&jQuery("#add-multiple-question-options").chosen(),jQuery("#course-wc-product #course-woocommerce-product-options").exists()&&jQuery("#course-woocommerce-product-options").chosen(),jQuery("#add-multiple-question-category-options").exists()&&jQuery("#add-multiple-question-category-options").chosen(),jQuery("div.woothemes-sensei-settings form select").each(function(){jQuery(this).hasClass("range-input")||jQuery(this).chosen()}),jQuery("#lesson-course-details").addClass("hidden"),jQuery("#lesson-course-add").click(function(){jQuery("#lesson-course-actions").hide(),jQuery("#lesson-course-details").removeClass("hidden")}),jQuery("#lesson-course-details p").on("click","a.lesson_course_cancel",function(){jQuery("#lesson-course-actions").show(),jQuery("#lesson-course-details").addClass("hidden")}),jQuery("#lesson-course-details p").on("click","a.lesson_course_save",function(){var e=jQuery.fn.validateCourseInput();if(e){var t="";return t+="course_prerequisite="+jQuery("#course-prerequisite-options").val(),t+="&course_woocommerce_product="+jQuery("#course-woocommerce-product-options").val(),t+="&course_category="+jQuery("#course-category-options").val(),t+="&course_title="+encodeURIComponent(jQuery("#course-title").attr("value")),t+="&course_content="+encodeURIComponent(jQuery("#course-content").attr("value")),t+="&action=add",jQuery.post(ajaxurl,{action:"lesson_add_course",lesson_add_course_nonce:woo_localized_data.lesson_add_course_nonce,data:t},function(e){e>0&&(jQuery("#lesson-course-actions").show(),jQuery("#lesson-course-details").addClass("hidden"),jQuery("#lesson-course-options").append(jQuery("").attr("value",e).text(jQuery("#course-title").attr("value"))),jQuery("#lesson-course-options").val(e),jQuery("#lesson-course-options").trigger("chosen:updated"))}),!1}jQuery("#course-title").focus()}),jQuery("#add-question-actions").on("change","select.question-type-select",function(){var e=jQuery(this).val();switch(jQuery("#add-new-question").find("div.question_default_fields").hide(),jQuery("#add-new-question").find("div.question_boolean_fields").hide(),jQuery("#add-new-question").find("div.question_gapfill_fields").hide(),jQuery("#add-new-question").find("div.question_multiline_fields").hide(),jQuery("#add-new-question").find("div.question_singleline_fields").hide(),jQuery("#add-new-question").find("div.question_fileupload_fields").hide(),jQuery(".add_question_random_order").hide(),e){case"multiple-choice":jQuery("#add-new-question").find("div.question_default_fields").show(),jQuery(".add_question_random_order").show();break;case"boolean":jQuery("#add-new-question").find("div.question_boolean_fields").show();break;case"gap-fill":jQuery("#add-new-question").find("div.question_gapfill_fields").show();break;case"multi-line":jQuery("#add-new-question").find("div.question_multiline_fields").show();break;case"single-line":jQuery("#add-new-question").find("div.question_singleline_fields").show();break;case"file-upload":jQuery("#add-new-question").find("div.question_fileupload_fields").show()}}),jQuery("#add-question-metadata").on("click","a.question_table_edit",function(){var e=jQuery(this).closest("tr").next("tr").find(".question_original_counter").text();jQuery("#add-question-actions button.add_question_answer").removeClass("hidden"),jQuery.fn.resetAddQuestionForm(),jQuery.fn.resetQuestionTable(),jQuery(this).closest("tr").next("tr").removeClass("hidden"),jQuery("#question_"+e).focus()}),jQuery("#add-question-metadata").on("click","a.lesson_question_cancel",function(){jQuery(this).closest("tr.question-quick-edit").addClass("hidden")}),jQuery("#add-new-question").on("click","a.add_question_save",function(){var e="",t="multiple-choice",n="",i="true",s=jQuery.fn.validateQuestionInput("add",jQuery(this));if(s){e+="quiz_id="+jQuery("#quiz_id").attr("value"),e+="&action=add",""!=jQuery("#add-question-type-options").val()&&(t=jQuery("#add-question-type-options").val()),""!=jQuery("#add-question-category-options").val()&&(n=jQuery("#add-question-category-options").val());var o="question_default_fields";switch(t){case"multiple-choice":o="question_default_fields";break;case"boolean":o="question_boolean_fields";break;case"gap-fill":o="question_gapfill_fields";break;case"multi-line":o="question_multiline_fields";break;case"single-line":o="question_singleline_fields";break;case"file-upload":o="question_fileupload_fields"}jQuery("#add-new-question").find("div.question_required_fields").find("input").each(function(){"radio"!=jQuery(this).attr("type")&&(e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).attr("value")))}),""!=jQuery("#add-new-question").find("div.question_required_fields").find("textarea").val()&&(e+="&"+jQuery("#add-new-question").find("div.question_required_fields").find("textarea").attr("name")+"="+encodeURIComponent(jQuery("#add-new-question").find("div.question_required_fields").find("textarea").val()));var u=0;jQuery("#add-new-question").find("div."+o).find("input").each(function(){"radio"==jQuery(this).attr("type")?0==u&&(i=jQuery("input[name="+jQuery(this).attr("name")+"]:checked").attr("value"),e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(i),u++):e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).attr("value"))}),""!=jQuery("#add_question_right_answer_essay").val()&&"question_essay_fields"==o&&(e+="&"+jQuery("#add_question_right_answer_essay").attr("name")+"="+encodeURIComponent(jQuery("#add_question_right_answer_essay").val())),""!=jQuery("#add_question_right_answer_multiline").val()&&"question_multiline_fields"==o&&(e+="&"+jQuery("#add_question_right_answer_multiline").attr("name")+"="+encodeURIComponent(jQuery("#add_question_right_answer_multiline").val())),e+="&question_type="+t,e+="&question_category="+n,questionGrade=jQuery("#add-question-grade").val(),e+="&question_grade="+questionGrade;var a=parseInt(jQuery("#question_counter").attr("value"));e+="&question_count="+a;var r=jQuery("#add-new-question").find(".answer_order").attr("value");e+="&answer_order="+r;var d=jQuery("#add-new-question").find(".question_media").attr("value");if(e+="&question_media="+d,""!=jQuery("div#add-new-question").find("div."+o).find(".answer_feedback").exists()){var l=jQuery("#add-new-question").find("div."+o).find(".answer_feedback").attr("value");e+="&answer_feedback="+encodeURIComponent(l)}var c="no";return jQuery("div#add-new-question").find(".random_order").is(":checked")&&(c="yes"),e+="&random_order="+c,jQuery.post(ajaxurl,{action:"lesson_update_question",lesson_update_question_nonce:woo_localized_data.lesson_update_question_nonce,data:e},function(e){if(e){jQuery.fn.updateQuestionCount(1,"+"),jQuery("#add-question-metadata table").append(e),jQuery.fn.resetAddQuestionForm(),jQuery.fn.checkQuizGradeType(t);var n=jQuery("#show_questions").attr("max");n++,jQuery("#show_questions").attr("max",n),jQuery.fn.scrollToElement("#lesson-quiz")}}),!1}jQuery("#add_question").focus()}),jQuery("#add-new-question").on("click","a.add_multiple_save",function(){var e="",t="",n=0;e+="quiz_id="+jQuery("#quiz_id").attr("value"),""!=jQuery("#add-multiple-question-count").val()&&(n=parseInt(jQuery("#add-multiple-question-count").val())),e+="&question_number="+n;var i=parseInt(jQuery("#add-multiple-question-count").attr("max"));if(n>i)return alert(woo_localized_data.too_many_for_cat),jQuery("#add-multiple-question-count").focus(),!1;""!=jQuery("#add-multiple-question-category-options").val()&&(t=jQuery("#add-multiple-question-category-options").val()),e+="&question_category="+t;var s=parseInt(jQuery("#question_counter").attr("value"));return e+="&question_count="+s,t&&n?(jQuery.post(ajaxurl,{action:"lesson_add_multiple_questions",lesson_add_multiple_questions_nonce:woo_localized_data.lesson_add_multiple_questions_nonce,data:e},function(e){if(e){jQuery("#add-multiple-question-category-options").val(""),jQuery("#add-multiple-question-count").val("1"),jQuery.fn.updateQuestionCount(n,"+"),jQuery("#add-question-metadata table").append(e),jQuery.fn.updateQuestionOrder();var t=jQuery("#show_questions").attr("max");t+=n,jQuery("#show_questions").attr("max",t),jQuery.fn.scrollToElement("#lesson-quiz")}}),!1):void jQuery("#add-multiple-question-category-options").focus()}),jQuery("#add-question-metadata").on("click","a.question_table_save",function(){var e="",t="",n=jQuery.fn.validateQuestionInput("edit",jQuery(this));if(n){e+="quiz_id="+jQuery("#quiz_id").attr("value"),e+="&action=save",jQuery(this).closest("td").children("input").each(function(){e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).attr("value"))}),t=jQuery(this).closest("td").find("span.question_original_counter").text(),""!=jQuery(this).closest("td").find("input.question_type").val()&&(questionType=jQuery(this).closest("td").find("input.question_type").val());var i="question_default_fields";switch(questionType){case"multiple-choice":i="question_default_fields";break;case"boolean":i="question_boolean_fields";break;case"gap-fill":i="question_gapfill_fields";break;case"essay-paste":i="question_essay_fields";break;case"multi-line":i="question_multiline_fields";break;case"single-line":i="question_singleline_fields";break;case"file-upload":i="question_fileupload_fields"}jQuery(this).closest("td").find("div.question_required_fields").find("input").each(function(){"radio"!=jQuery(this).attr("type")&&(e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).attr("value")))}),""!=jQuery(this).closest("td").find("div.question_required_fields").find("textarea").val()&&(e+="&"+jQuery(this).closest("td").find("div.question_required_fields").find("textarea").attr("name")+"="+encodeURIComponent(jQuery(this).closest("td").find("div.question_required_fields").find("textarea").val()));var s=0;jQuery(this).closest("td").find("div."+i).find("input").each(function(){"radio"==jQuery(this).attr("type")?0==s&&(e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery("input[name="+jQuery(this).attr("name")+"]:checked").attr("value")),s++):e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).attr("value"))}),""!=jQuery(this).closest("td").find("div."+i).find("textarea").val()&&"question_multiline_fields"==i&&(e+="&"+jQuery(this).closest("td").find("div."+i).find("textarea").attr("name")+"="+encodeURIComponent(jQuery(this).closest("td").find("div."+i).find("textarea").val())),"question_fileupload_fields"==i&&jQuery(this).closest("td").find("div."+i).find("textarea").each(function(){e+="&"+jQuery(this).attr("name")+"="+encodeURIComponent(jQuery(this).val())}),e+="&question_type="+questionType,questionGrade=jQuery(this).closest("td").find("input.question_grade").val(),e+="&question_grade="+questionGrade;var o=parseInt(jQuery("#question_counter").attr("value"));e+="&question_count="+o;var u=jQuery(this).closest("td").find(".answer_order").attr("value");e+="&answer_order="+u;var a=jQuery(this).closest("td").find(".question_media").attr("value");if(e+="&question_media="+a,""!=jQuery(this).closest("td").find(".answer_feedback").exists()){var r=jQuery(this).closest("td").find(".answer_feedback").attr("value");e+="&answer_feedback="+encodeURIComponent(r)}var d="no";return jQuery(this).closest("td").find(".random_order").is(":checked")&&(d="yes"),e+="&random_order="+d,jQuery.post(ajaxurl,{action:"lesson_update_question",lesson_update_question_nonce:woo_localized_data.lesson_update_question_nonce,data:e},function(e){if(e){var n,i;n=jQuery("#question_"+t).closest("tr").find(".question_required_fields input[name=question] ").val(),jQuery("#question_"+t).closest("tr").prev().find(".question-title-column").html(n),i=jQuery("#question_"+t).closest("tr").find(".question_required_fields input[name=question_grade] ").val(),jQuery("#question_"+t).closest("tr").prev().find(".question-grade-column").html(i),jQuery("#question_"+t).closest("tr").addClass("hidden")}}),!1}}),jQuery("#add-question-metadata").on("click","a.question_table_delete",function(){var e="",t="",n="",i=confirm(woo_localized_data.confirm_remove);if(i){e+="&action=delete",jQuery(this).closest("tr").next("tr").find("td").find("input").each(function(){"question_id"==jQuery(this).attr("name")&&(t=jQuery(this).attr("value"),e+="&question_id="+jQuery(this).attr("value"))}),e+="&quiz_id="+jQuery("#quiz_id").attr("value"),n=jQuery(this).closest("tr").find("td.question-number span.number").text();var s=jQuery(this).closest("tbody");return jQuery.post(ajaxurl,{action:"lesson_update_question",lesson_update_question_nonce:woo_localized_data.lesson_update_question_nonce,data:e},function(e){if(e){jQuery("#add-question-metadata > table > tbody > tr").children("td").each(function(){return jQuery(this).find("span.number").text()==n?(jQuery(this).closest("tr").next("tr").remove(),jQuery(this).closest("tr").remove(),!1):void 0}),jQuery.fn.updateQuestionCount(1,"-"),jQuery.fn.checkQuizGradeType(!1),jQuery.fn.updateAnswerOrder(s);var t=parseInt(jQuery("#show_questions").attr("max"));t--,jQuery("#show_questions").attr("max",t);var i=parseInt(jQuery("#show_questions").val());i>t&&jQuery("#show_questions").val(t)}}),!1}}),jQuery("#add-question-metadata").on("click","a.question_multiple_delete",function(){var e="",t=confirm(woo_localized_data.confirm_remove_multiple);if(t){e+="question_id="+jQuery(this).attr("rel"),e+="&quiz_id="+jQuery("#quiz_id").attr("value");{var n=jQuery(this).closest("tr").find("td.question-number span.number").text(),i=jQuery(this).closest("tr").find("td.question-number span.total-number").text();jQuery(this).closest("tbody")}return jQuery.post(ajaxurl,{action:"lesson_remove_multiple_questions",lesson_remove_multiple_questions_nonce:woo_localized_data.lesson_remove_multiple_questions_nonce,data:e},function(e){if(e){jQuery("#add-question-metadata > table > tbody > tr").children("td").each(function(){return jQuery(this).find("span.number").text()==n?(jQuery(this).closest("tr").remove(),!1):void 0}),jQuery.fn.updateQuestionCount(i,"-");var t=parseInt(jQuery("#show_questions").attr("max"));t-=i,jQuery("#show_questions").attr("max",t);var s=parseInt(jQuery("#show_questions").val());s>t&&jQuery("#show_questions").val(t)}}),!1}}),jQuery("#add-new-question").on("click","a.add_existing_save",function(){var e="",t="",n=0;if(jQuery("#existing-questions").find("input.existing-item").each(function(){if(jQuery(this).is(":checked")){var t=jQuery(this).val();e+=t+",",++n}}),e){t="questions="+e,t+="&quiz_id="+jQuery("#quiz_id").attr("value");var i=parseInt(jQuery("#question_counter").attr("value"));return t+="&question_count="+i,jQuery.post(ajaxurl,{action:"lesson_add_existing_questions",lesson_add_existing_questions_nonce:woo_localized_data.lesson_add_existing_questions_nonce,data:t},function(e){if(e){jQuery.fn.updateQuestionCount(n,"+"),jQuery("#add-question-metadata table").append(e),jQuery.fn.checkQuizGradeType();var t=jQuery("#show_questions").attr("max");t+=n,jQuery("#show_questions").attr("max",t),jQuery.fn.scrollToElement("#lesson-quiz"),jQuery("#existing-questions").find("input.existing-item").each(function(){jQuery(this).removeAttr("checked")})}}),!1}}),jQuery("#existing-filter-button").click(function(){jQuery.fn.filterExistingQuestions(1)}),jQuery("#existing-pagination").on("click","a",function(){var e=parseInt(jQuery("#existing-page").val()),t=e;jQuery(this).hasClass("prev")?t=e-1:jQuery(this).hasClass("next")&&(t=e+1),t=parseInt(t),jQuery.fn.filterExistingQuestions(t)}),jQuery("#quiz-settings").on("change","#pass_required",function(){var e=jQuery(this).attr("checked");"checked"==e?jQuery(".form-field.quiz_passmark").removeClass("hidden"):(jQuery(".form-field.quiz_passmark").addClass("hidden"),jQuery("#quiz_passmark").val(0))}),jQuery("#quiz-settings").on("change","#random_question_order",function(){jQuery.fn.saveQuestionOrderRandom()}),jQuery("#add-question-main").on("blur",".question_answer",function(){var e=jQuery(this).val(),t=jQuery(this);return dataToPost="&answer_value="+e,jQuery.post(ajaxurl,{action:"question_get_answer_id",data:dataToPost},function(e){e&&(t.attr("rel",e),jQuery.fn.updateAnswerOrder(t.closest("div")))}),!1}),jQuery("#add-question-main").on("click",".add_wrong_answer_option",function(){var e=jQuery(this).attr("rel"),t=jQuery(this).closest("div.multiple-choice-answers").find(".wrong_answer_count").text();t++;var n='';jQuery(this).closest("div").before(n)}),jQuery("#add-question-main").on("click",".add_right_answer_option",function(){var e=jQuery(this).attr("rel"),t=jQuery(this).closest("div.multiple-choice-answers").find(".right_answer_count").text();t++;var n='';jQuery(this).closest("div").before(n)}),jQuery("#add-question-main").on("click",".remove_answer_option",function(){jQuery(this).closest("label.answer").remove()}),jQuery(".multiple-choice-answers").sortable({items:"label.answer"}),jQuery(".multiple-choice-answers").bind("sortstop",function(){jQuery.fn.updateAnswerOrder(jQuery(this))}),jQuery("#sortable-questions").sortable({items:"tbody",start:function(e,t){t.placeholder.html(" ")}}),jQuery("#sortable-questions").bind("sortstop",function(){jQuery.fn.updateQuestionOrder(),jQuery.fn.updateQuestionRows()}),jQuery("#add-question-main").on("click",".upload_media_file_button",function(e){e.preventDefault(),jQuery.fn.uploadQuestionMedia(jQuery(this))}),jQuery("#add-question-main").on("click",".delete_media_file_button",function(e){e.preventDefault(),jQuery.fn.deleteQuestionMedia(jQuery(this))}),jQuery("#add-question-main").on("click",".question_media_preview",function(e){e.preventDefault(),jQuery.fn.uploadQuestionMedia(jQuery(this).closest("div").find(".upload_media_file_button"))}),jQuery("#add-new-question .tab-content:not(:first)").addClass("hidden"),jQuery(".add-question-tabs .nav-tab").click(function(){var e=jQuery(this).attr("id"),t=e+"-content";jQuery("#add-new-question .nav-tab").removeClass("nav-tab-active"),jQuery(this).addClass("nav-tab-active"),jQuery("#add-new-question .tab-content").addClass("hidden"),jQuery("#"+t).removeClass("hidden")}),jQuery("#add-multiple-question-category-options").change(function(){var e=jQuery(this).val(),t="cat="+e;jQuery.post(ajaxurl,{action:"get_question_category_limit",data:t},function(e){if(e){var t=parseInt(e);t&&jQuery("#add-multiple-question-count").attr("max",t)}})}),jQuery("#existing-table th.check-column input").click(function(){jQuery("#existing-questions").find(":checkbox").attr("checked",this.checked)}),jQuery("tbody#existing-questions").on("click","tr td:not(.cb)",function(){jQuery(this).closest("tr").find(":checkbox").each(function(){jQuery(this).prop("checked",!jQuery(this).prop("checked"))})}),jQuery("#lesson-complexity-options").exists()&&jQuery("#lesson-complexity-options").chosen(),jQuery("#lesson-prerequisite-options").exists()&&jQuery("#lesson-prerequisite-options").chosen(),jQuery("#lesson-course-options").exists()&&jQuery("#lesson-course-options").chosen(),jQuery("#course-prerequisite-options").exists()&&jQuery("#course-prerequisite-options").chosen(),jQuery("#course-category-options").exists()&&jQuery("#course-category-options").chosen(),jQuery("#course-woocommerce-product-options").exists()&&"-"!=jQuery("#course-woocommerce-product-options").val()&&jQuery("#course-woocommerce-product-options").chosen(),jQuery("#add-question-type-options").exists()&&jQuery("#add-question-type-options").chosen(),jQuery("#add-question-category-options").exists()&&jQuery("#add-question-category-options").chosen(),jQuery("#add-multiple-question-options").exists()&&jQuery("#add-multiple-question-options").chosen(),jQuery("select#course-woocommerce-product-options").exists()&&jQuery("select#course-woocommerce-product-options").chosen(),jQuery("#add-multiple-question-category-options").exists()&&jQuery("#add-multiple-question-category-options").chosen(),jQuery("div.woothemes-sensei-settings form select").each(function(){jQuery(this).hasClass("range-input")||jQuery(this).chosen()}),jQuery(".post-type-question #post-body-content").exists()&&jQuery(".post-type-question #post-body-content").remove()}); \ No newline at end of file diff --git a/changelog.txt b/changelog.txt index 4124f940d5..db514644b4 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,5 +1,13 @@ *** Sensei Changelog *** +2015.07.15 - version 1.8.6 +* Fix - Failure to load the JS in admin page because there was an extra dot in the file name. +* Fix - a few Typos in comments and strings +* Fix - Remove special character and replace with \' instead +* Fix - change site_transients to normal transients and decrease the time from 30 days to 10 +* Fix - Create a fallback for round with 3 parameters. Added a check to use to use only 2 parameter for php version below 5.3 +* Tweak - Output course order via php instead of relying on JS to re-order on the front-end. + 2015.06.18 - version 1.8.5 * Fix - Save the lesson preview checkbox unchecked state as well. The bug was that unchecked boxes does not get passed via $_POST in certain cases. * Tweak - Allow the quiz results rounding to be filtered. So you can now have decimal points shown to the user instead of the rounded up amount. diff --git a/classes/class-sensei-modules.php b/classes/class-sensei-modules.php index 0fc060c68f..42c027ce91 100644 --- a/classes/class-sensei-modules.php +++ b/classes/class-sensei-modules.php @@ -1314,8 +1314,8 @@ public function admin_enqueue_scripts ( $hook ) { $suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min'; - wp_enqueue_script('sensei-chosen', Sensei()->plugin_url . 'assets/chosen/chosen.jquery.' . $suffix . '.js', array('jquery'), Sensei()->version , true); - wp_enqueue_script('sensei-chosen-ajax', Sensei()->plugin_url . 'assets/chosen/ajax-chosen.jquery.' . $suffix . '.js', array('jquery','sensei-chosen'), Sensei()->version , true); + wp_enqueue_script('sensei-chosen', Sensei()->plugin_url . 'assets/chosen/chosen.jquery' . $suffix . '.js', array('jquery'), Sensei()->version , true); + wp_enqueue_script('sensei-chosen-ajax', Sensei()->plugin_url . 'assets/chosen/ajax-chosen.jquery' . $suffix . '.js', array('jquery','sensei-chosen'), Sensei()->version , true); wp_enqueue_script($this->taxonomy . '-admin', esc_url($this->assets_url) . 'js/modules-admin' . $suffix . '.js', array('jquery','sensei-chosen','sensei-chosen-ajax', 'jquery-ui-sortable'), Sensei()->version, true); //localized module data @@ -1546,9 +1546,9 @@ public function get_none_module_lessons( $course_id ){ } //save some time and check if we already have the saved - if( get_site_transient( 'sensei_'. $course_id .'_none_module_lessons') ){ + if( get_transient( 'sensei_'. $course_id .'_none_module_lessons') ){ - return get_site_transient( 'sensei_'. $course_id .'_none_module_lessons'); + return get_transient( 'sensei_'. $course_id .'_none_module_lessons'); } @@ -1596,7 +1596,7 @@ public function get_none_module_lessons( $course_id ){ if( isset( $wp_lessons_query->posts) && count( $wp_lessons_query->posts ) > 0 ){ $non_module_lessons = $wp_lessons_query->get_posts(); - set_site_transient( 'sensei_'. $course_id .'_none_module_lessons', $non_module_lessons, 20 ); + set_transient( 'sensei_'. $course_id .'_none_module_lessons', $non_module_lessons, 10 * DAY_IN_SECONDS ); } return $non_module_lessons; diff --git a/classes/class-woothemes-sensei-admin.php b/classes/class-woothemes-sensei-admin.php index 5e66be30e7..76c64f8404 100755 --- a/classes/class-woothemes-sensei-admin.php +++ b/classes/class-woothemes-sensei-admin.php @@ -978,14 +978,29 @@ public function course_order_screen() { } $courses = Sensei()->course->get_all_courses(); + if( 0 < count( $courses ) ) { - $order_string = $this->get_course_order(); + // order the courses as set by the users + $all_course_ids = array(); + foreach( $courses as $course ){ + + $all_course_ids[] = (string)$course->ID; + + } + $order_string = $this->get_course_order(); + + if( !empty( $order_string ) ){ + $ordered_course_ids = explode(',' , $order_string ); + $all_course_ids = array_unique( array_merge( $ordered_course_ids , $all_course_ids ) ); + } + $html .= '
' . "\n"; $html .= '
    ' . "\n"; $count = 0; - foreach ( $courses as $course ) { + foreach ( $all_course_ids as $course_id ) { + $course = get_post( $course_id ); $count++; $class = 'course'; if ( $count == 1 ) { $class .= ' first'; } diff --git a/classes/class-woothemes-sensei-frontend.php b/classes/class-woothemes-sensei-frontend.php index 1c9f50acfc..a2e87e4529 100755 --- a/classes/class-woothemes-sensei-frontend.php +++ b/classes/class-woothemes-sensei-frontend.php @@ -1971,7 +1971,7 @@ public function sensei_process_registration(){ // register user $user_id = wp_create_user( $new_user_name, $new_user_password, $new_user_email ); if ( ! $user_id || is_wp_error( $user_id ) ) { - $woothemes_sensei->notices->add_notice( sprintf( __( 'ERROR: Couldn’t register you… please contact the webmaster !' ), get_option( 'admin_email' ) ), 'alert'); + $woothemes_sensei->notices->add_notice( sprintf( __( 'ERROR: Couldn\'t register you… please contact the webmaster !' ), get_option( 'admin_email' ) ), 'alert'); } // notify the user diff --git a/classes/class-woothemes-sensei-lesson.php b/classes/class-woothemes-sensei-lesson.php index c4bf6f761e..ae95e15b8d 100755 --- a/classes/class-woothemes-sensei-lesson.php +++ b/classes/class-woothemes-sensei-lesson.php @@ -2638,7 +2638,7 @@ public function lesson_quiz_questions( $quiz_id = 0, $post_status = 'any', $orde $user_id = get_current_user_id(); } - // Set the default quesiton order if it has not already been set for this quiz + // Set the default question order if it has not already been set for this quiz $this->set_default_question_order( $quiz_id ); // If viewing quiz on the frontend then show questions in random order if set @@ -3214,4 +3214,4 @@ public function set_quick_edit_admin_defaults( $column_name, $post_id ){ }// end quick edit admin defaults -} // End Class \ No newline at end of file +} // End Class diff --git a/classes/class-woothemes-sensei-quiz.php b/classes/class-woothemes-sensei-quiz.php index a6bded8c31..c1b7e3e692 100755 --- a/classes/class-woothemes-sensei-quiz.php +++ b/classes/class-woothemes-sensei-quiz.php @@ -210,7 +210,7 @@ public static function save_user_answers( $quiz_answers, $files = array(), $less // save transient to make retrieval faster $transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id; - set_site_transient( $transient_key, $prepared_answers, 30 * DAY_IN_SECONDS ); + set_transient( $transient_key, $prepared_answers, 10 * DAY_IN_SECONDS ); // update the message showed to user $woothemes_sensei->frontend->messages = '
    ' . apply_filters( 'sensei_quiz_saved_text', __( 'Quiz Saved Successfully.', 'woothemes-sensei' ) ) . '
    '; @@ -246,7 +246,7 @@ public function get_user_answers( $lesson_id, $user_id ){ // save some time and get the transient cached data $transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id; - $transient_cached_answers = get_site_transient( $transient_key ); + $transient_cached_answers = get_transient( $transient_key ); // return the transient or get the values get the values from the comment meta if( !empty( $transient_cached_answers ) && false != $transient_cached_answers ){ @@ -264,7 +264,7 @@ public function get_user_answers( $lesson_id, $user_id ){ } //set the transient with the new valid data for faster retrieval in future - set_site_transient( $transient_key, $encoded_user_answers); + set_transient( $transient_key, $encoded_user_answers, 10 * DAY_IN_SECONDS); // decode an unserialize all answers foreach( $encoded_user_answers as $question_id => $encoded_answer ) { @@ -498,9 +498,9 @@ public function reset_user_lesson_data( $lesson_id , $user_id = 0 ){ $answers_transient_key = 'sensei_answers_'.$user_id.'_'.$lesson_id; $grades_transient_key = 'quiz_grades_'.$user_id.'_'.$lesson_id; $answers_feedback_transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id; - delete_site_transient( $answers_transient_key ); - delete_site_transient( $grades_transient_key ); - delete_site_transient( $answers_feedback_transient_key ); + delete_transient( $answers_transient_key ); + delete_transient( $grades_transient_key ); + delete_transient( $answers_feedback_transient_key ); // reset the quiz answers and feedback notes $deleted_answers = WooThemes_Sensei_Utils::delete_user_data( 'quiz_answers', $lesson_id, $user_id ); @@ -764,7 +764,7 @@ public function set_user_grades( $quiz_grades, $lesson_id, $user_id = 0 ){ $success = true; // save transient $transient_key = 'quiz_grades_'. $user_id . '_' . $lesson_id; - set_site_transient( $transient_key, $quiz_grades, 30 * DAY_IN_SECONDS ); + set_transient( $transient_key, $quiz_grades, 10 * DAY_IN_SECONDS ); } return $success; @@ -799,7 +799,7 @@ public function get_user_grades( $lesson_id, $user_id = 0 ){ // save some time and get the transient cached data $transient_key = 'quiz_grades_'. $user_id . '_' . $lesson_id; - $user_grades = get_site_transient( $transient_key ); + $user_grades = get_transient( $transient_key ); // get the data if nothing was stored in the transient if( empty( $user_grades ) || false != $user_grades ){ @@ -807,8 +807,7 @@ public function get_user_grades( $lesson_id, $user_id = 0 ){ $user_grades = WooThemes_Sensei_Utils::get_user_data( 'quiz_grades', $lesson_id, $user_id ); //set the transient with the new valid data for faster retrieval in future - set_site_transient( $transient_key, $user_grades); - + set_transient( $transient_key, $user_grades, 10 * DAY_IN_SECONDS ); } // end if transient check @@ -923,7 +922,7 @@ public function save_user_answers_feedback( $answers_feedback, $lesson_id , $use // save transient to make retrieval faster in future $transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id; - set_site_transient( $transient_key, $encoded_answers_feedback, 30 * DAY_IN_SECONDS ); + set_transient( $transient_key, $encoded_answers_feedback, 10 * DAY_IN_SECONDS ); } @@ -964,7 +963,7 @@ public function get_user_answers_feedback( $lesson_id , $user_id = 0 ){ // first check the transient to save a few split seconds $transient_key = 'sensei_answers_feedback_'.$user_id.'_'.$lesson_id; - $encoded_feedback = get_site_transient( $transient_key ); + $encoded_feedback = get_transient( $transient_key ); // get the data if nothing was stored in the transient if( empty( $encoded_feedback ) || !$encoded_feedback ){ @@ -972,7 +971,7 @@ public function get_user_answers_feedback( $lesson_id , $user_id = 0 ){ $encoded_feedback = WooThemes_Sensei_Utils::get_user_data( 'quiz_answers_feedback', $lesson_id, $user_id ); //set the transient with the new valid data for faster retrieval in future - set_site_transient( $transient_key, $encoded_feedback); + set_transient( $transient_key, $encoded_feedback, 10 * DAY_IN_SECONDS); } // end if transient check diff --git a/classes/class-woothemes-sensei-settings.php b/classes/class-woothemes-sensei-settings.php index d5f7c12ebb..ce234c4d9d 100755 --- a/classes/class-woothemes-sensei-settings.php +++ b/classes/class-woothemes-sensei-settings.php @@ -402,7 +402,7 @@ public function init_fields () { $fields['learner_profile_enable'] = array( 'name' => __( 'Public learner profiles', 'woothemes-sensei' ), - 'description' => sprintf( __( 'Enable public learner profiles that will be accassible to everyone. Profile URL format: %s', 'woothemes-sensei' ), $profile_url_example ), + 'description' => sprintf( __( 'Enable public learner profiles that will be accessible to everyone. Profile URL format: %s', 'woothemes-sensei' ), $profile_url_example ), 'type' => 'checkbox', 'default' => true, 'section' => 'learner-profile-settings' diff --git a/classes/class-woothemes-sensei-updates.php b/classes/class-woothemes-sensei-updates.php index 01324f0fda..b5f36d1c00 100755 --- a/classes/class-woothemes-sensei-updates.php +++ b/classes/class-woothemes-sensei-updates.php @@ -63,7 +63,7 @@ public function __construct ( $parent ) { ), '1.6.0' => array( 'auto' => array( 'add_teacher_role' => array( 'title' => __( 'Add \'Teacher\' role', 'woothemes-sensei' ), 'desc' => __( 'Adds a \'Teacher\' role to your WordPress site that will allow users to mange the Grading and Analysis pages.', 'woothemes-sensei' ) ), 'add_sensei_caps' => array( 'title' => __( 'Add administrator capabilities', 'woothemes-sensei' ), 'desc' => __( 'Adds the \'manage_sensei\' and \'manage_sensei_grades\' capabilities to the Administrator role.', 'woothemes-sensei' ) ), - 'restructure_question_meta' => array( 'title' => __( 'Restructure question meta data', 'woothemes-sensei' ), 'desc' => __( 'Restructures the quesiton meta data as it relates to quizzes - this accounts for changes in the data structure in v1.6+.', 'woothemes-sensei' ) ), + 'restructure_question_meta' => array( 'title' => __( 'Restructure question meta data', 'woothemes-sensei' ), 'desc' => __( 'Restructures the question meta data as it relates to quizzes - this accounts for changes in the data structure in v1.6+.', 'woothemes-sensei' ) ), 'update_quiz_settings' => array( 'title' => __( 'Add new quiz settings', 'woothemes-sensei' ), 'desc' => __( 'Adds new settings to quizzes that were previously registered as global settings.', 'woothemes-sensei' ) ), 'reset_lesson_order_meta' => array( 'title' => __( 'Set default order of lessons', 'woothemes-sensei' ), 'desc' => __( 'Adds data to lessons to ensure that they show up on the \'Order Lessons\' screen - if this update has been run once before then it will reset all lessons to the default order.', 'woothemes-sensei' ) ), ), 'manual' => array() @@ -1758,4 +1758,4 @@ public function enhance_teacher_role ( ) { }// end enhance_teacher_role -} // End Class \ No newline at end of file +} // End Class diff --git a/classes/class-woothemes-sensei-utils.php b/classes/class-woothemes-sensei-utils.php index 22154c4f70..652ba6305c 100755 --- a/classes/class-woothemes-sensei-utils.php +++ b/classes/class-woothemes-sensei-utils.php @@ -2195,11 +2195,23 @@ public static function round( $val, $precision = 0, $mode = PHP_ROUND_HALF_UP, $ /** * Change the mode for the Sensei_Utils::round function. * the mode given will be passed into the php round function + * + * This applies only to PHP version 5.3.0 and greater + * * @since 1.8.5 */ $mode = apply_filters( 'sensei_round_mode', $mode , $val, $context, $precision ); - return round( $val, $precision, $mode ); + if ( version_compare(PHP_VERSION, '5.3.0') >= 0 ) { + + return round( $val, $precision, $mode ); + + }else{ + + return round( $val, $precision ); + + } + } } // End Class diff --git a/lang/woothemes-sensei.pot b/lang/woothemes-sensei.pot index 03fb10820b..46be64e189 100644 --- a/lang/woothemes-sensei.pot +++ b/lang/woothemes-sensei.pot @@ -2,9 +2,9 @@ # This file is distributed under the same license as the Sensei package. msgid "" msgstr "" -"Project-Id-Version: Sensei 1.8.4\n" +"Project-Id-Version: Sensei 1.8.5\n" "Report-Msgid-Bugs-To: http://wordpress.org/support/plugin/woothemes-sensei\n" -"POT-Creation-Date: 2015-06-17 15:09:48+00:00\n" +"POT-Creation-Date: 2015-07-15 14:20:38+00:00\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -1189,7 +1189,7 @@ msgid "ERROR: The password field may not be empty, please enter msgstr "" #: classes/class-woothemes-sensei-frontend.php:1974 -msgid "ERROR: Couldn’t register you… please contact the webmaster !" +msgid "ERROR: Couldn't register you… please contact the webmaster !" msgstr "" #: classes/class-woothemes-sensei-frontend.php:2012 @@ -2725,7 +2725,7 @@ msgid "Public learner profiles" msgstr "" #: classes/class-woothemes-sensei-settings.php:405 -msgid "Enable public learner profiles that will be accassible to everyone. Profile URL format: %s" +msgid "Enable public learner profiles that will be accessible to everyone. Profile URL format: %s" msgstr "" #: classes/class-woothemes-sensei-settings.php:412 @@ -2978,7 +2978,7 @@ msgid "Restructure question meta data" msgstr "" #: classes/class-woothemes-sensei-updates.php:66 -msgid "Restructures the quesiton meta data as it relates to quizzes - this accounts for changes in the data structure in v1.6+." +msgid "Restructures the question meta data as it relates to quizzes - this accounts for changes in the data structure in v1.6+." msgstr "" #: classes/class-woothemes-sensei-updates.php:67 @@ -3077,14 +3077,6 @@ msgstr "" msgid "This indexes the comment statuses in the database, which will speed up all Sensei activity queries." msgstr "" -#: classes/class-woothemes-sensei-updates.php:82 -msgid "Remove legacy Sensei activity types" -msgstr "" - -#: classes/class-woothemes-sensei-updates.php:82 -msgid "This removes all legacy (pre-1.7) Sensei activity types - only run this update once the update to v1.7 is complete and everything is stable." -msgstr "" - #: classes/class-woothemes-sensei-updates.php:106 #: classes/class-woothemes-sensei-updates.php:125 msgid "Sensei Updates" diff --git a/tests/test-class-quiz.php b/tests/test-class-quiz.php index 9612c42869..24982b3895 100644 --- a/tests/test-class-quiz.php +++ b/tests/test-class-quiz.php @@ -245,7 +245,7 @@ public function testSaveUserAnswersTransients(){ // was it saved correctly? $transient_key = 'sensei_answers_'.$test_user_id.'_'.$test_lesson_id; - $transient_val = get_site_transient( $transient_key ); + $transient_val = get_transient( $transient_key ); $decoded_transient_val = array(); if( is_array( $transient_val ) ) { foreach ($transient_val as $question_id => $encoded_answer) { @@ -283,7 +283,7 @@ function testGetUserAnswersTransient(){ $transient_key = 'sensei_answers_'.$test_user_id.'_'.$test_lesson_id; $transient_get_test = array( base64_encode( 'transientGetTest' ) ); $transient_get_test_decoded = array( 'transientGetTest' ); - set_site_transient( $transient_key, $transient_get_test ); + set_transient( $transient_key, $transient_get_test, 10 * DAY_IN_SECONDS ); $users_retrieved_answers = $woothemes_sensei->quiz->get_user_answers( $test_lesson_id, $test_user_id ); // test if the answer is taken from the transient @@ -299,7 +299,7 @@ function testGetUserAnswersTransient(){ $woothemes_sensei->quiz->save_user_answers( $test_user_quiz_answers, $files, $test_lesson_id, $test_user_id ); delete_site_transient( $transient_key ); $woothemes_sensei->quiz->get_user_answers( $test_lesson_id, $test_user_id ); - $transient_data_after_retrieval = get_site_transient( $transient_key ); + $transient_data_after_retrieval = get_transient( $transient_key ); // test if a transient is created when one does not exist // in this test we first delete the transient after it is been added in the save_user_answers @@ -451,12 +451,12 @@ public function testResetUserLessonData(){ $woothemes_sensei->quiz->set_user_grades( $user_quiz_grades, $test_lesson_id, $test_user_id ); // was the lesson data reset? - $lesson_data_reset = $woothemes_sensei->quiz->reset_user_lesson_data( $test_lesson_id, $test_user_id ) ; + $lesson_data_reset = Sensei()->quiz->reset_user_lesson_data( $test_lesson_id, $test_user_id ) ; $this->assertTrue( $lesson_data_reset , 'The lesson data was not reset for a valid use case' ); //make sure transients are remove as well $transient_key = 'sensei_answers_'.$test_user_id.'_'.$test_lesson_id; - $transient_data = get_site_transient( $transient_key ); + $transient_data = get_transient( $transient_key ); $this->assertFalse( $transient_data, 'The transient was not reset along with the users saved data. The result should be false.' ); }// end testResetUserLessonData @@ -680,7 +680,7 @@ public function testSetUserGrades(){ // was the transients saved correctly? $transient_key = 'quiz_grades_'.$test_user_id.'_'.$test_lesson_id; - $transient_val = get_site_transient( $transient_key ); + $transient_val = get_transient( $transient_key ); $this->assertFalse( empty( $transient_val ) , 'Transients are not saved correctly for user answers ' ); $this->assertEquals( $transient_val ,$test_user_grades , 'The transient should be the same as the prepared answer which was base64 encoded' ); @@ -690,7 +690,7 @@ public function testSetUserGrades(){ $new_test_user_grades = $this->factory->generate_user_quiz_grades( $test_user_quiz_answers ); $woothemes_sensei->quiz->set_user_grades( $new_test_user_grades, $test_lesson_id, $test_user_id ); - $new_transient_val = get_site_transient( $transient_key ); + $new_transient_val = get_transient( $transient_key ); $this->assertNotEquals( $new_transient_val, $old_transient_value, 'Transient not updated on new save for the same user lesson combination' ); @@ -736,7 +736,7 @@ public function testGetUserGrades(){ $woothemes_sensei->quiz->set_user_grades($test_user_grades, $test_lesson_id, $test_user_id); delete_site_transient( $transient_key ); $woothemes_sensei->quiz->get_user_grades( $test_lesson_id, $test_user_id ); - $transient_val = get_site_transient( $transient_key ); + $transient_val = get_transient( $transient_key ); //ensure the transients work $this->assertEquals( $test_user_grades, $transient_val, @@ -919,7 +919,7 @@ public function testGetUserQuestionFeedback(){ //setup the next assertion for backwards compatibility. $transient_key = 'sensei_answers_feedback_'.$test_user_id.'_'.$test_lesson_id; - delete_site_transient( $transient_key ); + delete_transient( $transient_key ); WooThemes_Sensei_Utils::delete_user_data( 'quiz_answers_feedback',$test_lesson_id, $test_user_id ); $random_question_id = array_rand( $test_user_answers_feedback ); $old_data_args = array( 'post_id' => $random_question_id , @@ -927,11 +927,11 @@ public function testGetUserQuestionFeedback(){ 'type' => 'sensei_user_answer', 'data' => 'test answer feedback' ); $old_data_activity_id = WooThemes_Sensei_Utils::sensei_log_activity( $old_data_args ); - update_comment_meta( $old_data_activity_id, 'answer_note', base64_encode( 'Sensei sample feedback. You did well!' ) ); + update_comment_meta( $old_data_activity_id, 'answer_note', base64_encode( 'Sensei sample feedback' ) ); $retrieved_feedback = $woothemes_sensei->quiz->get_user_question_feedback( $test_lesson_id, $random_question_id, $test_user_id ); // Does the fall back to 1.7.3 data work? - $this->assertEquals( 'Sensei sample feedback. You did well!', $retrieved_feedback, 'The get user feedback does not fall back the old data' ); + $this->assertEquals( 'Sensei sample feedback', $retrieved_feedback, 'The get user feedback does not fall back the old data' ); }// end testGetUserQuestionFeedback @@ -953,7 +953,7 @@ public function testSaveUserFeedbackTransients(){ // was it saved correctly? $transient_key = 'sensei_answers_feedback_'.$test_user_id.'_'. $test_lesson_id; - $transient_val = get_site_transient( $transient_key ); + $transient_val = get_transient( $transient_key ); $decoded_transient_val = array(); if( is_array( $transient_val ) ) { foreach ($transient_val as $question_id => $encoded_feedback) { @@ -990,7 +990,7 @@ function testGetUserFeedbackTransients(){ $transient_key = 'sensei_answers_feedback_'.$test_user_id.'_'. $test_lesson_id; $transient_get_test = array( base64_encode( 'studFBTransientsGet' ) ); $transient_get_test_decoded = array( 'studFBTransientsGet' ); - set_site_transient( $transient_key, $transient_get_test ); + set_transient( $transient_key, $transient_get_test, 10 * DAY_IN_SECONDS ); $users_retrieved_answers = $woothemes_sensei->quiz->get_user_answers_feedback( $test_lesson_id, $test_user_id ); // test if the answer is taken from the transient @@ -1005,7 +1005,7 @@ function testGetUserFeedbackTransients(){ $woothemes_sensei->quiz->save_user_answers_feedback( $test_user_answers_feedback , $test_lesson_id , $test_user_id ) ; delete_site_transient( $transient_key ); $woothemes_sensei->quiz->get_user_answers_feedback( $test_lesson_id, $test_user_id ); - $transient_data_after_get_call = get_site_transient( $transient_key ); + $transient_data_after_get_call = get_transient( $transient_key ); // test if a transient is created when one does not exist // in this test we first delete the transient after it is been added in the save_user_answers diff --git a/woothemes-sensei.php b/woothemes-sensei.php index ee8d1daaac..e04e689120 100644 --- a/woothemes-sensei.php +++ b/woothemes-sensei.php @@ -3,7 +3,7 @@ Plugin Name: Sensei Plugin URI: http://www.woothemes.com/products/sensei/ Description: A course management plugin that offers the smoothest platform for helping you teach anything. -Version: 1.8.5 +Version: 1.8.6 Author: WooThemes Author URI: http://www.woothemes.com/ License: GPL version 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html @@ -50,7 +50,7 @@ function Sensei(){ } // set the sensei version number - Sensei()->version = '1.8.5'; + Sensei()->version = '1.8.6'; //backwards compatibility global $woothemes_sensei;