File: /var/www/html/demo.sumar.com.py/mod/pulse/amd/build/preset.min.js
define("mod_pulse/preset",["jquery","core/modal_factory","mod_pulse/modal_preset","mod_pulse/events","core/str","core/fragment","core/ajax","core/templates","core/loadingicon","core/notification","core/modal_events"],(function($,Modal,ModalPreset,PresetEvents,Str,Fragment,AJAX,Templates,Loadingicon,Notification,ModalEvents){var SELECTOR_presetAvailability=".preset-config-params .availability-field",Preset=function(contextId,courseid,section){this.contextId=contextId,this.courseid=courseid,this.section=section,this.loadPresetsList()};return Preset.prototype.listElement={selector:"pulse-presets-data",loaded:"data-listloaded"},Preset.prototype.contextId=0,Preset.prototype.courseid=0,Preset.prototype.section=0,Preset.prototype.pageparams=[],Preset.prototype.loadIconElement=".modal-footer #loader-icon",Preset.prototype.actionbuttons=".modal-footer button",Preset.prototype.setupmodal=function(){var THIS=this,triggerelement=document.querySelectorAll(".pulse-usepreset"),attachmentPoint=document.createElement("div");attachmentPoint.classList.add("modal-preset"),triggerelement.forEach((element=>element.addEventListener("click",(()=>{var presetid=element.getAttribute("data-presetid"),presettitle=element.getAttribute("data-presettitle"),params={presetid:presetid,courseid:THIS.courseid,section:THIS.section};document.body.prepend(attachmentPoint),Modal.create({type:ModalPreset.TYPE,title:Str.get_string("presetmodaltitle","pulse",{title:presettitle}),body:Fragment.loadFragment("mod_pulse","get_preset_preview",THIS.contextId,params),large:!0}).then((modal=>(modal.attachmentPoint=attachmentPoint,modal.show(),modal.getRoot().on(ModalEvents.bodyRendered,(function(){THIS.reinitAvailability(SELECTOR_presetAvailability),THIS.fieldChangedEvent()})),modal.getRoot().on(ModalEvents.hidden,(function(){modal.destroy.bind(modal),THIS.reinitAvailability()})),modal.getRoot().on(PresetEvents.customize,(()=>{var modform=document.querySelector("#mod-pulse-form"),modformdata=new FormData(modform);modal.getRoot().get(0).querySelectorAll("form").forEach((form=>{var formdata=new FormData(form);formdata=new URLSearchParams(formdata).toString();var pageparams=new URLSearchParams(modformdata).toString();params={formdata:formdata,pageparams:pageparams},Loadingicon.addIconToContainer(this.loadIconElement),THIS.disableButtons(),THIS.applyCustomize(params,THIS.contextId,modal)}))})),modal.getRoot().on(PresetEvents.save,(e=>{e.preventDefault(),Loadingicon.addIconToContainer(this.loadIconElement),THIS.disableButtons();var formdata={};modal.getRoot().get(0).querySelectorAll("form").forEach((form=>{formdata=new FormData(form),this.restorePreset(formdata,THIS.contextId)}))})),!0))).catch(Notification.exception)}))))},Preset.prototype.fieldChangedEvent=()=>{var fieldName,changeinput,id,changeName,split,confParam=document.getElementById("preset-configurable-params"),methods=["fixed","relative"];confParam.querySelectorAll("input, select, textarea").forEach((field=>{field.addEventListener("change",(event=>{fieldName=event.target.getAttribute("name"),null!==confParam.querySelector('input[name="'+fieldName+'_changed"]')&&(confParam.querySelector('input[name="'+fieldName+'_changed"]').value=!0)}))})),["first","second","recurring"].forEach((reminder=>{confParam.querySelectorAll('[name="'+reminder+'_schedule"').forEach((schedule=>{schedule.addEventListener("change",(e=>{changeName=e.target.getAttribute("name"),changeinput='input[name="'+changeName+'_arr_changed"]',confParam.querySelector(changeinput).value=!0}))})),methods.forEach((method=>{id=reminder+"_"+method+"date",confParam.querySelectorAll('[name*="'+id+'"]').forEach((opt=>{opt.addEventListener("change",(e=>{split=e.target.getAttribute("name").split("["),changeName=split.hasOwnProperty(1)?split[0]:split,changeinput='input[name="'+changeName+'_changed"]',confParam.querySelector(changeinput).value=!0}))}))}))}))},Preset.prototype.reinitAvailability=function(){let selector=arguments.length>0&&void 0!==arguments[0]?arguments[0]:".availability-field";void 0!==M.core_availability.form&&(this.resetRestrictPlugins(),document.querySelectorAll(selector).forEach((field=>field.parentNode.removeChild(field))),M.core_availability.form.init())},Preset.prototype.resetRestrictPlugins=function(){if(void 0!==M.core_availability.form&&null!==document.getElementById("id_availabilityconditionsjson")){M.core_availability.form.restrictByGroup=null;var availabilityPlugins=void 0!==M.core_availability.form.plugins?M.core_availability.form.plugins:{},plugin="";for(var i in availabilityPlugins)plugin="availability_"+i,M.hasOwnProperty(plugin)&&(M[plugin].form.addedEvents=!1)}},Preset.prototype.applyCustomize=function(params,contextID,modal){Fragment.loadFragment("mod_pulse","apply_preset",contextID,params).done(((html,js)=>{modal.destroy(),this.resetRestrictPlugins(),this.handleFormSubmissionResponse(html,js)}))},Preset.prototype.disableButtons=function(){var buttons=document.querySelectorAll(this.actionbuttons);for(let $i in buttons)buttons[$i].disabled=!0},Preset.prototype.handleFormSubmissionResponse=(data,js)=>{document.createElement("div").innerHTML=data,Templates.replaceNode('[action="modedit.php"]',data,js)},Preset.prototype.restorePreset=(formdata,contextid)=>{var formdatastr=new URLSearchParams(formdata).toString();AJAX.call([{methodname:"mod_pulse_apply_presets",args:{contextid:contextid,formdata:formdatastr}}])[0].done((response=>{void 0!==(response=JSON.parse(response)).url&&(window.location.href=response.url)}))},Preset.prototype.loadPresetsList=function(){var listParent=document.getElementById(this.listElement.selector);null!==listParent&&"false"==listParent.getAttribute(this.listElement.loaded)&&Fragment.loadFragment("mod_pulse","get_presetslist",this.contextId,{courseid:this.courseid}).done(((html,js)=>{Templates.replaceNodeContents(listParent,html,js),listParent.setAttribute(this.listElement.loaded,"true"),this.setupmodal()}))},{init:(contextId,courseid,section)=>{new Preset(contextId,courseid,section)}}}));
//# sourceMappingURL=preset.min.js.map