Proyectos de Subversion Moodle

Rev

Rev 1 | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

{"version":3,"file":"gradebooksetup_forms.min.js","sources":["../src/gradebooksetup_forms.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 <http://www.gnu.org/licenses/>.\n\n/**\n * Prints the add item gradebook form\n *\n * @module core_grades\n * @copyright 2023 Mathew May <mathew.solutions>\n * @license http://www.gnu.org/copyleft/gpl.html GNU Public License\n */\n\nimport ModalForm from 'core_form/modalform';\nimport {getString} from 'core/str';\nimport Notification from 'core/notification';\nimport * as FormChangeChecker from 'core_form/changechecker';\nimport PendingPromise from 'core/pending';\n\nconst Selectors = {\n    advancedFormLink: 'a.showadvancedform'\n};\n\nconst getDetailsFromEvent = (event) => {\n    if (event.target.closest('[data-trigger=\"add-item-form\"]')) {\n        const trigger = event.target.closest('[data-trigger=\"add-item-form\"]');\n\n        return {\n            trigger,\n            formClass: 'core_grades\\\\form\\\\add_item',\n            titleKey: trigger.getAttribute('data-itemid') === '-1' ? 'newitem' : 'itemsedit',\n            args: {\n                itemid: trigger.getAttribute('data-itemid'),\n            },\n        };\n    } else if (event.target.closest('[data-trigger=\"add-category-form\"]')) {\n        const trigger = event.target.closest('[data-trigger=\"add-category-form\"]');\n        return {\n            trigger,\n            formClass: 'core_grades\\\\form\\\\add_category',\n            titleKey: trigger.getAttribute('data-category') === '-1' ? 'newcategory' : 'categoryedit',\n            args: {\n                category: trigger.getAttribute('data-category'),\n            },\n        };\n    } else if (event.target.closest('[data-trigger=\"add-outcome-form\"]')) {\n        const trigger = event.target.closest('[data-trigger=\"add-outcome-form\"]');\n        return {\n            trigger,\n            formClass: 'core_grades\\\\form\\\\add_outcome',\n            titleKey: trigger.getAttribute('data-itemid') === '-1' ? 'newoutcomeitem' : 'outcomeitemsedit',\n            args: {\n                itemid: trigger.getAttribute('data-itemid'),\n            },\n        };\n    }\n\n    return null;\n};\n\n/**\n * Initialize module\n */\nexport const init = () => {\n    // Sometimes the trigger does not exist, so lets conditionally add it.\n    document.addEventListener('click', event => {\n        const triggerData = getDetailsFromEvent(event);\n\n        if (triggerData) {\n            event.preventDefault();\n            const pendingPromise = new PendingPromise(`core_grades:add_item:${triggerData.args.itemid}`);\n\n            const {trigger, formClass, titleKey, args} = triggerData;\n            args.courseid = trigger.getAttribute('data-courseid');\n            args.gpr_plugin = trigger.getAttribute('data-gprplugin');\n\n            const modalForm = new ModalForm({\n                modalConfig: {\n                    title: getString(titleKey, 'core_grades'),\n                },\n                formClass: formClass,\n                args: args,\n                saveButtonText: getString('save', 'core'),\n                returnFocus: trigger,\n            });\n\n            // Show a toast notification when the form is submitted.\n            modalForm.addEventListener(modalForm.events.FORM_SUBMITTED, event => {\n                if (event.detail.result) {\n                    new PendingPromise('core_grades:form_submitted');\n                    window.location.assign(event.detail.url);\n                } else {\n                    Notification.addNotification({\n                        type: 'error',\n                        message: getString('saving_failed', 'core_grades')\n                    });\n                }\n            });\n\n            modalForm.show();\n            pendingPromise.resolve();\n        }\n\n        const showAdvancedForm = event.target.closest(Selectors.advancedFormLink);\n        if (showAdvancedForm) {\n            // Navigate to the advanced form page and cary over any entered data.\n            event.preventDefault();\n\n            // Do not resolve this pendingPromise - it will be cleared when the page changes.\n            new PendingPromise('core_grades:show_advanced_form');\n            const form = event.target.closest('form');\n            form.action = showAdvancedForm.href;\n            // Disable the form change checker as we are going to carry over the data to the advanced form.\n            FormChangeChecker.disableAllChecks();\n            form.submit();\n        }\n    });\n};\n"],"names":["Selectors","document","addEventListener","event","triggerData","target","closest","trigger","formClass","titleKey","getAttribute","args","itemid","category","getDetailsFromEvent","preventDefault","pendingPromise","PendingPromise","courseid","gpr_plugin","modalForm","ModalForm","modalConfig","title","saveButtonText","returnFocus","events","FORM_SUBMITTED","detail","result","window","location","assign","url","addNotification","type","message","show","resolve","showAdvancedForm","form","action","href","FormChangeChecker","disableAllChecks","submit"],"mappings":";;;;;;;s5BA6BMA,2BACgB,mCA2CF,KAEhBC,SAASC,iBAAiB,SAASC,cACzBC,YA3CeD,CAAAA,WACrBA,MAAME,OAAOC,QAAQ,kCAAmC,OAClDC,QAAUJ,MAAME,OAAOC,QAAQ,wCAE9B,CACHC,QAAAA,QACAC,UAAW,8BACXC,SAAkD,OAAxCF,QAAQG,aAAa,eAA0B,UAAY,YACrEC,KAAM,CACFC,OAAQL,QAAQG,aAAa,iBAGlC,GAAIP,MAAME,OAAOC,QAAQ,sCAAuC,OAC7DC,QAAUJ,MAAME,OAAOC,QAAQ,4CAC9B,CACHC,QAAAA,QACAC,UAAW,kCACXC,SAAoD,OAA1CF,QAAQG,aAAa,iBAA4B,cAAgB,eAC3EC,KAAM,CACFE,SAAUN,QAAQG,aAAa,mBAGpC,GAAIP,MAAME,OAAOC,QAAQ,qCAAsC,OAC5DC,QAAUJ,MAAME,OAAOC,QAAQ,2CAC9B,CACHC,QAAAA,QACAC,UAAW,iCACXC,SAAkD,OAAxCF,QAAQG,aAAa,eAA0B,iBAAmB,mBAC5EC,KAAM,CACFC,OAAQL,QAAQG,aAAa,wBAKlC,MASiBI,CAAoBX,UAEpCC,YAAa,CACbD,MAAMY,uBACAC,eAAiB,IAAIC,gDAAuCb,YAAYO,KAAKC,UAE7EL,QAACA,QAADC,UAAUA,UAAVC,SAAqBA,SAArBE,KAA+BA,MAAQP,YAC7CO,KAAKO,SAAWX,QAAQG,aAAa,iBACrCC,KAAKQ,WAAaZ,QAAQG,aAAa,wBAEjCU,UAAY,IAAIC,mBAAU,CAC5BC,YAAa,CACTC,OAAO,kBAAUd,SAAU,gBAE/BD,UAAWA,UACXG,KAAMA,KACNa,gBAAgB,kBAAU,OAAQ,QAClCC,YAAalB,UAIjBa,UAAUlB,iBAAiBkB,UAAUM,OAAOC,gBAAgBxB,QACpDA,MAAMyB,OAAOC,YACTZ,iBAAe,8BACnBa,OAAOC,SAASC,OAAO7B,MAAMyB,OAAOK,4BAEvBC,gBAAgB,CACzBC,KAAM,QACNC,SAAS,kBAAU,gBAAiB,oBAKhDhB,UAAUiB,OACVrB,eAAesB,gBAGbC,iBAAmBpC,MAAME,OAAOC,QAAQN,+BAC1CuC,iBAAkB,CAElBpC,MAAMY,qBAGFE,iBAAe,wCACbuB,KAAOrC,MAAME,OAAOC,QAAQ,QAClCkC,KAAKC,OAASF,iBAAiBG,KAE/BC,kBAAkBC,mBAClBJ,KAAKK"}