%PDF- %PDF-
Direktori : /home/vacivi36/ava/grade/report/singleview/amd/build/ |
Current File : /home/vacivi36/ava/grade/report/singleview/amd/build/bulkactions.min.js.map |
{"version":3,"file":"bulkactions.min.js","sources":["../src/bulkactions.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 * Javascript module for bulk actions.\n *\n * @module gradereport_singleview/bulkactions\n * @copyright 2022 Ilya Tregubov <ilya@moodle.com>\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\n\nimport Pending from 'core/pending';\nimport CustomEvents from \"core/custom_interaction_events\";\nimport ModalFactory from 'core/modal_factory';\nimport Templates from 'core/templates';\nimport ModalEvents from 'core/modal_events';\nimport * as Str from 'core/str';\nimport Notification from 'core/notification';\nimport selectors from 'gradereport_singleview/selectors';\n\n/**\n * Initialize module.\n */\nexport const init = () => {\n const pendingPromise = new Pending();\n registerListenerEvents();\n pendingPromise.resolve();\n};\n\n/**\n * Register bulk actions related event listeners.\n *\n * @method registerListenerEvents\n */\nconst registerListenerEvents = () => {\n const events = [\n 'click',\n CustomEvents.events.activate,\n CustomEvents.events.keyboardActivate\n ];\n CustomEvents.define(document, events);\n\n // Register events.\n events.forEach((event) => {\n document.addEventListener(event, async(e) => {\n const trigger = e.target.closest(selectors.actions.bulkaction);\n\n if (trigger) {\n if ((trigger.dataset.action === 'overrideallgrades') || (trigger.dataset.action === 'overridenonegrades')) {\n const override = document.querySelectorAll(selectors.elements.override);\n\n if (trigger.dataset.action === 'overridenonegrades') {\n // Alert for removing all grade overrides on page.\n Str.get_strings([\n {key: 'removeoverride', component: 'gradereport_singleview'},\n {key: 'overridenoneconfirm', component: 'gradereport_singleview'},\n {key: 'removeoverridesave', component: 'gradereport_singleview'},\n {key: 'cancel', component: 'moodle'},\n ]).done((strings) => {\n Notification.confirm(\n strings[0],\n strings[1],\n strings[2],\n strings[3],\n () => {\n // Uncheck each override checkbox - this will make grade and feedback input fields disabled.\n override.forEach((el) => {\n if (el.checked) {\n el.click();\n }\n });\n });\n }).fail(Notification.exception);\n\n } else {\n // Check each override checkbox - this will make grade and feedback input fields enabled.\n override.forEach((el) => {\n if (!el.checked) {\n el.click();\n }\n });\n }\n } else if ((trigger.dataset.action === 'excludeallgrades') || (trigger.dataset.action === 'excludenonegrades')) {\n const exclude = document.querySelectorAll(selectors.elements.exclude);\n const checked = (trigger.dataset.action === 'excludeallgrades');\n // Uncheck or check each exclude checkbox.\n exclude.forEach((el) => {\n el.checked = checked;\n });\n } else if (trigger.dataset.action === 'bulklegend') {\n // Modal for bulk insert grades.\n Str.get_strings([\n {key: 'bulklegend', component: 'gradereport_singleview'},\n {key: 'save', component: 'moodle'},\n ]).done((strings) => {\n ModalFactory.create({\n type: ModalFactory.types.SAVE_CANCEL,\n body: Templates.render('gradereport_singleview/bulkinsert', {\n id: 'bulkinsertmodal',\n name: 'bulkinsertmodal'\n }),\n title: strings[0],\n }).then((modal) => {\n modal.setSaveButtonText(strings[1]);\n modal.getFooter().find(selectors.elements.modalsave).attr('disabled', true);\n\n modal.getRoot().on(ModalEvents.hidden, () => {\n modal.getRoot().remove();\n });\n\n // We need to acknowledge that we understand risks of loosing data.\n // Only when acknowledge checkbox is checked we allow selecting insert options.\n modal.getRoot().on('change', selectors.elements.warningcheckbox,\n (e) => {\n e.preventDefault();\n if (e.target.checked) {\n modal.getRoot().find(selectors.elements.modalformdata).removeClass('dimmed_text');\n modal.getRoot().find(selectors.elements.modalradio).removeAttr('disabled');\n modal.getRoot().find(selectors.elements.modalinput).removeAttr('disabled');\n\n const formRadioData = modal.getRoot().find(selectors.elements.modalradiochecked).val();\n // We allow saving grades only when all needed data present on form.\n if (formRadioData) {\n modal.getFooter().find(selectors.elements.modalsave).removeAttr('disabled');\n }\n } else {\n modal.getRoot().find(selectors.elements.modalformdata).addClass('dimmed_text');\n modal.getRoot().find(selectors.elements.modalradio).attr('disabled', true);\n modal.getRoot().find(selectors.elements.modalinput).attr('disabled', true);\n modal.getFooter().find(selectors.elements.modalsave).attr('disabled', true);\n }\n });\n\n // We allow saving grades only when all needed data present on form.\n modal.getRoot().on('change', selectors.elements.modalradio,\n (e) => {\n e.preventDefault();\n modal.getFooter().find(selectors.elements.modalsave).removeAttr('disabled');\n });\n\n modal.getRoot().on(ModalEvents.save, () => {\n // When save button is clicked in modal form we insert data from modal\n // into preexisted hidden bulk insert form and Save button for table form.\n document.querySelector(selectors.elements.enablebulkinsert).checked = true;\n const formRadioData = modal.getRoot().find(selectors.elements.modalradiochecked).val();\n const $select = document.querySelector(selectors.elements.formradio);\n $select.value = formRadioData;\n\n const formData = modal.getRoot().find(selectors.elements.modalgrade).val();\n document.querySelector(selectors.elements.formgrade).value = formData;\n document.querySelector(selectors.elements.formsave).click();\n });\n\n modal.show();\n\n return modal;\n }).fail(Notification.exception);\n }).fail(Notification.exception);\n }\n }\n });\n });\n};\n"],"names":["pendingPromise","Pending","registerListenerEvents","resolve","events","CustomEvents","activate","keyboardActivate","define","document","forEach","event","addEventListener","async","trigger","e","target","closest","selectors","actions","bulkaction","dataset","action","override","querySelectorAll","elements","Str","get_strings","key","component","done","strings","confirm","el","checked","click","fail","Notification","exception","exclude","create","type","ModalFactory","types","SAVE_CANCEL","body","Templates","render","id","name","title","then","modal","setSaveButtonText","getFooter","find","modalsave","attr","getRoot","on","ModalEvents","hidden","remove","warningcheckbox","preventDefault","modalformdata","removeClass","modalradio","removeAttr","modalinput","modalradiochecked","val","addClass","save","querySelector","enablebulkinsert","formRadioData","formradio","value","formData","modalgrade","formgrade","formsave","show"],"mappings":"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"}