AutorÃa | Ultima modificación | Ver Log |
define("gradepenalty_duedate/edit_penalty_form",["exports","core/notification","core/fragment","core/templates"],(function(_exports,notification,_fragment,_templates){function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function _getRequireWildcardCache(nodeInterop){if("function"!=typeof WeakMap)return null;var cacheBabelInterop=new WeakMap,cacheNodeInterop=new WeakMap;return(_getRequireWildcardCache=function(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop})(nodeInterop)}Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,notification=function(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule)return obj;if(null===obj||"object"!=typeof obj&&"function"!=typeof obj)return{default:obj};var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj))return cache.get(obj);var newObj={},hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj)if("default"!==key&&Object.prototype.hasOwnPropert
y.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;desc&&(desc.get||desc.set)?Object.defineProperty(newObj,key,desc):newObj[key]=obj[key]}newObj.default=obj,cache&&cache.set(obj,newObj);return newObj}
/**
* Handles edit penalty form.
*
* @module gradepenalty_duedate/edit_penalty_form
* @copyright 2024 Catalyst IT
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/(notification),_fragment=_interopRequireDefault(_fragment),_templates=_interopRequireDefault(_templates);class PenaltyRule{constructor(){let overdueby=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,penalty=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;this.overdueby=overdueby,this.penalty=penalty}}const SELECTORS_FORM_CONTAINER="#penalty_rule_form_container",SELECTORS_ACTION_MENU=".action-menu",SELECTORS_ADD_BUTTON="#addrulebutton",SELECTORS_INSERT_BUTTON=".insertbelow",SELECTORS_DELETE_BUTTON=".deleterulebuttons",SELECTORS_DELETE_ALL_BUTTON_CONTAINER="#deleteallrulesbuttoncontainer",deleteRule=target=>{const{contextid:contextid,penaltyRules:penaltyRules,finalPenaltyRule:finalPenaltyRule}=buildFormParams(),ruleNumber=getRuleNumber(target),updatedPenaltyRules=penaltyRules.filter(((rule,index)=>index!==ruleNumber));loadPenaltyRuleForm(contextid,updatedPenaltyRules,finalPenaltyRule)},insertRule=target=>insertRuleAtIndex(getRuleNumber(target)+1),insertRuleAtIndex=ruleNumber=>{const{cont
extid:contextid,penaltyRules:penaltyRules,finalPenaltyRule:finalPenaltyRule}=buildFormParams();penaltyRules.splice(ruleNumber,0,new PenaltyRule),loadPenaltyRuleForm(contextid,penaltyRules,finalPenaltyRule)},getRuleNumber=target=>{const allRules=target.closest(SELECTORS_FORM_CONTAINER).querySelectorAll(SELECTORS_ACTION_MENU),foundIndex=Array.prototype.findIndex.call(allRules,(element=>element.contains(target)));if(-1===foundIndex)throw new Error("Rule number not found on target",target);return foundIndex},buildFormParams=()=>{const form=document.querySelector(SELECTORS_FORM_CONTAINER).querySelector("form"),formData=new FormData(form),contextid=formData.get("contextid"),groupCount=formData.get("rulegroupcount"),penaltyRules=[];for(let i=0;i<groupCount;i++)penaltyRules.push(new PenaltyRule(formData.get("overdueby[".concat(i,"][number]"))*formData.get("overdueby[".concat(i,"][timeunit]")),formData.get("penalty[".concat(i,"]"))));return{contextid:contextid,penaltyRules:penaltyRules,finalPenaltyRule:formData.get("
finalpenaltyrule")}},loadPenaltyRuleForm=(contextId,penaltyRules,finalPenaltyRule)=>{document.querySelector(SELECTORS_FORM_CONTAINER).querySelector("form").querySelectorAll("input, select").forEach((input=>{input.disabled=!0}));const addButton=document.querySelector(SELECTORS_ADD_BUTTON);addButton&&(addButton.disabled=!0);const deleteAllButton=document.querySelector(SELECTORS_DELETE_ALL_BUTTON_CONTAINER).querySelector("button");deleteAllButton&&(deleteAllButton.disabled=!0),_fragment.default.loadFragment("gradepenalty_duedate","penalty_rule_form",contextId,{penaltyrules:JSON.stringify(penaltyRules),finalpenaltyrule:finalPenaltyRule}).then(((html,js)=>{_templates.default.replaceNodeContents(document.querySelector(SELECTORS_FORM_CONTAINER),html,js),addButton&&(addButton.disabled=!1),deleteAllButton&&(deleteAllButton.disabled=!1)})).catch(notification.exception)};_exports.init=()=>{(()=>{const container=document.querySelector(SELECTORS_FORM_CONTAINER);container.addEventListener("click",(e=>e.target.closest(SELE
CTORS_DELETE_BUTTON)?(e.preventDefault(),void deleteRule(e.target)):e.target.closest(SELECTORS_INSERT_BUTTON)?(e.preventDefault(),void insertRule(e.target)):void 0)),document.querySelector(SELECTORS_ADD_BUTTON).addEventListener("click",(e=>{e.preventDefault(),insertRuleAtIndex(container.querySelectorAll(SELECTORS_ACTION_MENU).length)}))})()}}));
//# sourceMappingURL=edit_penalty_form.min.js.map