관리-도구
편집 파일: course.min.js
$(function(){"use strict";$(".sniper-loader").hide(),$("#scheduleDate").flatpickr({enableTime:!0,dateFormat:"Y-m-d"}),$("#scheduleTime").flatpickr({enableTime:!0,noCalendar:!0,time_24hr:!0,dateFormat:"H:i"});let e=$("#courseTags").val();e=e?JSON.parse(e):"",$(".js-example-basic-single").select2({placeholder:`${selectInstructor}`,width:"100%"}),$(".instructor-list").select2({placeholder:`${selectInstructor}`,width:"100%",allowClear:!0,closeOnSelect:!1}),$(".level-list").select2({placeholder:`${selectLevel}`,width:"100%"}),$(".language-list").select2({placeholder:`${selectLanguage}`,width:"100%",dropdownAutoWidth:!0,multiple:!0,width:"100%",height:"30px",allowClear:!0}),$(".zone-list").select2({placeholder:`${selectTimezone}`,width:"100%"}),$("#courseCategory").select2({placeholder:`${selectCategory}`,width:"100%"}),$("#subject").select2({placeholder:`${selectSubject}`,width:"100%"}),$(document).on("click",".add-faq",function(){let e=$(this).closest(".faq-item").find(".faq-area").data("length");e++,$(".faq-area").append(` <div class="flex gap-4"> <div class="grow flex flex-col gap-2"> <input type="text" placeholder="${FaqQuestion}" name="faqs[${e}][title]" class="form-input"> <textarea name="faqs[${e}][answer]" placeholder="${FaqAnswer}" class="form-input summernote"></textarea> </div> <button type="button" class="btn-icon btn-danger-icon-light shrink-0 delete-btn"> <i class="ri-delete-bin-line text-inherit"></i> </button> </div> `),$(this).closest(".faq-item").find(".faq-area").data("length",e)}),$(document).on("click",".add-outcomes",function(){let e=$(this).closest(".outcome-item").find(".outcomes-area").data("length");e++,$(".outcomes-area").append(` <div class="flex gap-4"> <div class="grow flex flex-col gap-2 relative"> <input type="text" placeholder="${courseOutcome}" id="searchInput" data-search-type="outcomes" autocomplete="off" name="outcomes[${e}][title]" class="form-input outcomes search-suggestion"> <div class="search-show"></div> </div> <button type="button" class="btn-icon btn-danger-icon-light shrink-0 delete-btn"> <i class="ri-delete-bin-line text-inherit"></i> </button> </div> `),$(this).closest(".outcome-item").find(".outcomes-area").data("length",e)}),$(document).on("click",".delete-btn",function(e){let t=$(this);if($(t).data("id")){let a=$(t).data("id"),i=$(t).data("key"),n=baseUrl+"/course/delete-information";$.ajax({url:n,method:"GET",data:{id:a,key:i},dataType:"json",success:function(e){"success"==e.status&&$(t).parent().remove()},error:function(e){Command:toastr.error("Not Found")}})}else $(this).parent().remove()}),$(document).on("click",".add-requirement",function(){let e=$(this).closest(".requirement-item").find(".requirement-area").data("length");e++,$(".requirement-area").append(` <div class="flex gap-4"> <div class="grow flex flex-col gap-2 relative"> <input type="text" placeholder="${courseRequirement}" id="searchInput" autocomplete="off" data-search-type="requirement" name="requirements[${e}][title]" class="form-input requirement search-suggestion"> <div class="search-show"></div> </div> <button type="button" class="btn-icon btn-danger-icon-light shrink-0 delete-btn"> <i class="ri-delete-bin-line text-inherit"></i> </button> </div> `),$(this).closest(".requirement-item").find(".requirement-area").data("length",e)}),$(".tag-list").select2({placeholder:`${selectCourseTag}`,width:"100%",ajax:{url:baseUrl+"/course/tag-search",dataType:"json",width:"element",delay:250,data:function(e){return{q:e.term,page:e.page}},processResults:function(e,t){return t.page=t.page||1,{results:e.items,pagination:{more:30*t.page<e.total_count}}}},language:{noResults:function(){return`<label for="courseTagButton" class="btn b-solid btn-primary-solid btn-sm my-2">${addNewTag}</label>`}},escapeMarkup:function(e){return e},minimumInputLength:1,templateResult:function e(t){if(t.loading)return t.text;var a=$("<div class='select2-result-repository clearfix'><div class='select2-result-repository__title'></div></div></div></div>");return a.find(".select2-result-repository__title").text(t.name),a},templateSelection:function e(t){return t.name||t.text||t.id}}),""!==e&&$.each(e,function(e,t){var a=new Option(t.name,t.id,!0,!0);setTimeout(()=>{$(".tag-list ul.select2-selection__rendered li span.select2-selection__choice__display").eq(e).text(`${t.name}`)},300),$(".tag-list").append(a).trigger("change")}),new Sortable(chapterList,{animation:150,ghostClass:"bg-primary-important",handle:".dragable-btn",onSort:function(e){let t;i(baseUrl+"/course/chapter-sorted",$(e.from).find(".chapter-item"))}});let t=document.querySelectorAll(".topicList");function a(e,t,a=null){$.ajax({url:e,method:"GET",data:a,dataType:"json",beforeSend:function(){$(".sniper-loader").show()},success:function(e){"success"==e.status&&($(t).html(e.data),$(".sniper-loader").hide())},error:function(e){Command:toastr.error("Not Found")}})}function i(e,t){let a=[];$.each(t,function(e,t){let i=$(t).data("item-id");a.push(i)}),$.ajax({url:e,method:"GET",data:{itemIds:a},dataType:"json",success:function(e){if("success"==e.status)Command:toastr.success(`${e.data}`)},error:function(e){Command:toastr.error("Not Found")}})}$.each(t,function(e,t){new Sortable(t,{animation:150,ghostClass:"bg-primary-important",onSort:function(e){let t;i(baseUrl+"/course/topic-sorted",$(e.from).find(".topic-item"))}})}),$(document).on("click",".add-chapter",function(){$("#model-header").html(addChapter),$("#modal-btn").html(saveText),$("#chapterId").val(""),$("#chapterTitle").val("")}),$(document).on("click",".edit-chapter",function(){let e=$(this).data("action");$("#model-header").html(`${editChapter}`),$("#modal-btn").html("Update"),$.ajax({url:e,method:"GET",dataType:"json",success:function(e){"success"==e.status&&($("#chapterId").val(`${e.data.id}`),$("#chapterTitle").val(`${e.data.title}`))},error:function(e){Command:toastr.error("Not Found")}})}),$(document).on("change",".topic-type-list",function(e){let t=baseUrl+"/course/chapter-topic-type/"+$(this).val(),i=$(".courseId").val();a(t,$(".form-field-area"),{course_id:i,topic_id:"",chapter_id:"",action_type:""})}),$(document).on("click",".topic-edit",function(){let e=$(this).data("topic-id"),t=$(this).data("topic-type"),i=$(this).data("chapter-id"),n=baseUrl+"/course/chapter-topic-type/"+t,l=$(".courseId").val();$("#topic-header-modal").html(`${editTopic}`),$("#topicTypeList").hide();a(n,$(".form-field-area"),{course_id:l,topic_id:e,chapter_id:i,action_type:"edit"})}),$(document).on("click",".add-topic-form",function(){$(".form-field-area").html(""),$("#topic-header-modal").html(`${addNewTopic}`),$("#topicTypeList").show(),$(".topic-type-list").val("")}),$(document).on("click",".add-question",function(){let e=$(this).data("id");$("#quizId").val(e),$(".answer-list-area").html("")}),$(document).on("change",".quiz-type-list",function(){let e=$(".answer-list-area").html(""),t=$(this).val();"multiple-choice"==t||"single-choice"==t?$(e).html(`<div class="mt-10"> <button type="button" class="btn b-solid btn-primary-solid addQuizAns" data-quiztype="${t}">${addAnswer}</button> <ul class="flex flex-col gap-2 mt-5 quiz-ans-container" data-length="1"> <li class="border border-input-border rounded-lg p-2 removeable-parent"> <div class="flex gap-2 relative"> <textarea name="answers[0][name]" placeholder="${answerOption}" id="searchInput" data-search-type="answer" class="form-input search-suggestion" rows="1"></textarea> <button type="button" class="btn b-outline btn-danger-outline btn-sm max-h-10 remove-parent-button"> <i class="ri-close-line text-inherit text-[13px]"></i> </button> <div class="search-show"></div> </div> <div class="leading-none flex items-center gap-2 mt-2"> <label for="correntans1" class="inline-flex items-center cursor-pointer"> ${"multiple-choice"==t?'<input type="checkbox" id="correntans1" name="answers[0][correct]" class="appearance-none peer"> <div class="switcher switcher-primary-solid"></div>':'<input type="radio" id="correntans1" name="answers[0][correct]" class="radio radio-primary question-type-single">'} </label> <div class="text-gray-500 dark:text-dark-text font-medium inline-block">${checkIfCorrect}</div> </div> </li> </ul> </div>`):"fill-in-blank"==t&&($(e).html(` <div class="mt-10 mb-11"> <label for="quiz-grade" class="form-label">${writeCorrectWord} (_______).</label> <input type="text" class="form-input choices-input" name=answers[]" > </div>`),function e(){let t=document.querySelectorAll(".choices-input");t.forEach(e=>{new Choices(e,{removeItemButton:!0,maxItemCount:3,duplicateItemsAllowed:!1,allowHTML:!0,searchEnabled:!0})})}())}),$(document).on("click",".addQuizAns",function(){let e=$(this).data("quiztype"),t=$(this).parent().find(".quiz-ans-container").data("length");t++,$(".quiz-ans-container").append(` <li class="border border-input-border rounded-lg p-2 removeable-parent"> <div class="flex gap-2 relative"> <textarea name="answers[${t}][name]" placeholder="${answerOption}" id="searchInput" data-search-type="answer" class="form-input search-suggestion" rows="1"></textarea> <button type="button" class="btn b-outline btn-danger-outline btn-sm max-h-10 remove-parent-button"> <i class="ri-close-line text-inherit text-[13px]"></i> </button> <div class="search-show"></div> </div> <div class="leading-none flex items-center gap-2 mt-2"> <label for="correntans${t}" class="inline-flex items-center cursor-pointer"> ${"multiple-choice"==e?`<input type="checkbox" id="correntans${t}" name="answers[${t}][correct]" class="appearance-none peer"> <div class="switcher switcher-primary-solid"></div>`:`<input type="radio" id="correntans${t}" name="answers[${t}][correct]" class="radio radio-primary question-type-single">`} </label> <div class="text-gray-500 dark:text-dark-text font-medium inline-block">Check if this is Correct</div> </div> </li> `),$(this).parent().find(".quiz-ans-container").data("length",t)}),$(document).on("click",".remove-parent-button",function(){$(this).parent().parent().remove()}),$(document).on("click",".view-question",function(){let e;a(baseUrl+"/quizzes/quiz-question/"+$(this).data("id"),$("#questionItem"))}),$(document).on("click",".edit-question",function(){let e=$(this).data("action"),t=$("#questionItem");a(e,t)}),$(document).on("change","#source-type-select",function(e){$(this).val(),"local"!==$(this).val()?$("#courseVideoFile").html(` <label class="form-label">${embedVideoUrl}</label> <input type="text" id="v-url" class="form-input" placeholder="${embedVideoUrl}" name="demo_url" value="" autocomplete="off" /> `):$("#courseVideoFile").html(`<label class="form-label">${uploadFileText}</label> <div class="border border-input-border rounded-md px-2 py-1.5"> <input type="file" id="v-url" class="w-full" name="short_video"> <span class="text-danger error-text short_video_err"></span> </div> `)}),$(document).on("click",".question-type-single",function(){$(".question-type-single").not(this).prop("checked",!1),$(this).prop("checked",!0)}),$(document).on("change",".course-price-cal",function(){let e=$(this),t=e.val(),a=$("#platform_fee").val();var i=Number(a);a=parseInt(a,10);let n=i+(t=Number(t));e.parent().parent().find("#total_price").val(n)}),$(document).on("input",".percentage-calculate",function e(){let t=0;$(".percentage-calculate").each(function(){let e=parseFloat($(this).val())||0;t+=e}),100<t&&alert("warning! You value is gether thant 100")})});