diff --git a/course/amd/build/resetcourse.min.js b/course/amd/build/resetcourse.min.js index 4f899eeafcd..54db2e79ca1 100644 --- a/course/amd/build/resetcourse.min.js +++ b/course/amd/build/resetcourse.min.js @@ -1,10 +1,10 @@ -define("core_course/resetcourse",["exports","core/notification","core/prefetch","core/str"],(function(_exports,_notification,_prefetch,_str){var obj; +define("core_course/resetcourse",["exports","core/notification","core/prefetch","core/str","core_form/changechecker"],(function(_exports,_notification,_prefetch,_str,FormChangeChecker){var obj; /** * Javascript module for resetting a course * * @module core_course/resetcourse * @copyright 2024 Sara Arjona * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later - */Object.defineProperty(_exports,"__esModule",{value:!0}),_exports.init=void 0,_notification=(obj=_notification)&&obj.__esModule?obj:{default:obj};const selectors_resetCoursetButton='[data-action="resetcourse"]';_exports.init=()=>{(0,_prefetch.prefetchStrings)("core",["resetcourseconfirm","resetcoursewarning","resetcourse"]),registerEventListeners()};const registerEventListeners=()=>{document.addEventListener("click",(event=>{const resetButton=event.target.closest(selectors_resetCoursetButton);resetButton&&(event.preventDefault(),resetCourseConfirm(resetButton))}))},resetCourseConfirm=async resetButton=>{const courseName=resetButton.dataset.coursename;_notification.default.deleteCancelPromise((0,_str.getString)("resetcourseconfirm"),(0,_str.getString)("resetcoursewarning","core",courseName),(0,_str.getString)("resetcourse")).then((()=>{resetButton.closest("form").submit()})).catch((()=>{}))}})); + */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=(obj=_notification)&&obj.__esModule?obj:{default:obj},FormChangeChecker=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.hasOwnProperty.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}(FormChangeChecker);const selectors_resetCoursetButton='[data-action="resetcourse"]';_exports.init=()=>{(0,_prefetch.prefetchStrings)("core",["resetcourseconfirm","resetcoursewarning","resetcourse"]),registerEventListeners()};const registerEventListeners=()=>{document.addEventListener("click",(event=>{const resetButton=event.target.closest(selectors_resetCoursetButton);resetButton&&(event.preventDefault(),resetCourseConfirm(resetButton))}))},resetCourseConfirm=async resetButton=>{const courseName=resetButton.dataset.coursename;_notification.default.deleteCancelPromise((0,_str.getString)("resetcourseconfirm"),(0,_str.getString)("resetcoursewarning","core",courseName),(0,_str.getString)("resetcourse")).then((()=>{FormChangeChecker.markFormSubmitted(resetButton.closest("form")),resetButton.closest("form").submit()})).catch((()=>{}))}})); //# sourceMappingURL=resetcourse.min.js.map \ No newline at end of file diff --git a/course/amd/build/resetcourse.min.js.map b/course/amd/build/resetcourse.min.js.map index b3a0159184c..25a6261ca0a 100644 --- a/course/amd/build/resetcourse.min.js.map +++ b/course/amd/build/resetcourse.min.js.map @@ -1 +1 @@ -{"version":3,"file":"resetcourse.min.js","sources":["../src/resetcourse.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see .\n\n/**\n * Javascript module for resetting a course\n *\n * @module core_course/resetcourse\n * @copyright 2024 Sara Arjona \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nimport Notification from 'core/notification';\nimport {prefetchStrings} from 'core/prefetch';\nimport {getString} from 'core/str';\n\nconst selectors = {\n resetCoursetButton: '[data-action=\"resetcourse\"]',\n};\n\n/**\n * Initialize module\n */\nexport const init = () => {\n prefetchStrings('core', [\n 'resetcourseconfirm',\n 'resetcoursewarning',\n 'resetcourse',\n ]);\n\n registerEventListeners();\n};\n\n/**\n * Register events for course reset button.\n */\nconst registerEventListeners = () => {\n document.addEventListener('click', (event) => {\n const resetButton = event.target.closest(selectors.resetCoursetButton);\n if (resetButton) {\n event.preventDefault();\n resetCourseConfirm(resetButton);\n }\n });\n};\n\n/**\n * Show the confirmation modal to reset the course.\n *\n * @param {HTMLElement} resetButton the element to delete.\n *\n */\nconst resetCourseConfirm = async(resetButton) => {\n const courseName = resetButton.dataset.coursename;\n\n Notification.deleteCancelPromise(\n getString('resetcourseconfirm'),\n getString('resetcoursewarning', 'core', courseName),\n getString('resetcourse'),\n ).then(() => {\n resetButton.closest('form').submit();\n return;\n }).catch(() => {\n return;\n });\n};\n"],"names":["selectors","registerEventListeners","document","addEventListener","event","resetButton","target","closest","preventDefault","resetCourseConfirm","async","courseName","dataset","coursename","deleteCancelPromise","then","submit","catch"],"mappings":";;;;;;;4JA2BMA,6BACkB,4CAMJ,mCACA,OAAQ,CACpB,qBACA,qBACA,gBAGJC,gCAMEA,uBAAyB,KAC3BC,SAASC,iBAAiB,SAAUC,cAC1BC,YAAcD,MAAME,OAAOC,QAAQP,8BACrCK,cACAD,MAAMI,iBACNC,mBAAmBJ,kBAWzBI,mBAAqBC,MAAAA,oBACjBC,WAAaN,YAAYO,QAAQC,iCAE1BC,qBACT,kBAAU,uBACV,kBAAU,qBAAsB,OAAQH,aACxC,kBAAU,gBACZI,MAAK,KACHV,YAAYE,QAAQ,QAAQS,YAE7BC,OAAM"} \ No newline at end of file +{"version":3,"file":"resetcourse.min.js","sources":["../src/resetcourse.js"],"sourcesContent":["// This file is part of Moodle - http://moodle.org/\n//\n// Moodle is free software: you can redistribute it and/or modify\n// it under the terms of the GNU General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// Moodle is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU General Public License for more details.\n//\n// You should have received a copy of the GNU General Public License\n// along with Moodle. If not, see .\n\n/**\n * Javascript module for resetting a course\n *\n * @module core_course/resetcourse\n * @copyright 2024 Sara Arjona \n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nimport Notification from 'core/notification';\nimport {prefetchStrings} from 'core/prefetch';\nimport {getString} from 'core/str';\nimport * as FormChangeChecker from 'core_form/changechecker';\n\nconst selectors = {\n resetCoursetButton: '[data-action=\"resetcourse\"]',\n};\n\n/**\n * Initialize module\n */\nexport const init = () => {\n prefetchStrings('core', [\n 'resetcourseconfirm',\n 'resetcoursewarning',\n 'resetcourse',\n ]);\n\n registerEventListeners();\n};\n\n/**\n * Register events for course reset button.\n */\nconst registerEventListeners = () => {\n document.addEventListener('click', (event) => {\n const resetButton = event.target.closest(selectors.resetCoursetButton);\n if (resetButton) {\n event.preventDefault();\n resetCourseConfirm(resetButton);\n }\n });\n};\n\n/**\n * Show the confirmation modal to reset the course.\n *\n * @param {HTMLElement} resetButton the element to delete.\n *\n */\nconst resetCourseConfirm = async(resetButton) => {\n const courseName = resetButton.dataset.coursename;\n\n Notification.deleteCancelPromise(\n getString('resetcourseconfirm'),\n getString('resetcoursewarning', 'core', courseName),\n getString('resetcourse'),\n ).then(() => {\n FormChangeChecker.markFormSubmitted(resetButton.closest('form'));\n resetButton.closest('form').submit();\n return;\n }).catch(() => {\n return;\n });\n};\n"],"names":["selectors","registerEventListeners","document","addEventListener","event","resetButton","target","closest","preventDefault","resetCourseConfirm","async","courseName","dataset","coursename","deleteCancelPromise","then","FormChangeChecker","markFormSubmitted","submit","catch"],"mappings":";;;;;;;imCA4BMA,6BACkB,4CAMJ,mCACA,OAAQ,CACpB,qBACA,qBACA,gBAGJC,gCAMEA,uBAAyB,KAC3BC,SAASC,iBAAiB,SAAUC,cAC1BC,YAAcD,MAAME,OAAOC,QAAQP,8BACrCK,cACAD,MAAMI,iBACNC,mBAAmBJ,kBAWzBI,mBAAqBC,MAAAA,oBACjBC,WAAaN,YAAYO,QAAQC,iCAE1BC,qBACT,kBAAU,uBACV,kBAAU,qBAAsB,OAAQH,aACxC,kBAAU,gBACZI,MAAK,KACHC,kBAAkBC,kBAAkBZ,YAAYE,QAAQ,SACxDF,YAAYE,QAAQ,QAAQW,YAE7BC,OAAM"} \ No newline at end of file diff --git a/course/amd/src/resetcourse.js b/course/amd/src/resetcourse.js index 9dd51e68836..d13aac22fb9 100644 --- a/course/amd/src/resetcourse.js +++ b/course/amd/src/resetcourse.js @@ -24,6 +24,7 @@ import Notification from 'core/notification'; import {prefetchStrings} from 'core/prefetch'; import {getString} from 'core/str'; +import * as FormChangeChecker from 'core_form/changechecker'; const selectors = { resetCoursetButton: '[data-action="resetcourse"]', @@ -69,6 +70,7 @@ const resetCourseConfirm = async(resetButton) => { getString('resetcoursewarning', 'core', courseName), getString('resetcourse'), ).then(() => { + FormChangeChecker.markFormSubmitted(resetButton.closest('form')); resetButton.closest('form').submit(); return; }).catch(() => {