AutorÃa | Ultima modificación | Ver Log |
// This file is part of Moodle - http://moodle.org///// Moodle is free software: you can redistribute it and/or modify// it under the terms of the GNU General Public License as published by// the Free Software Foundation, either version 3 of the License, or// (at your option) any later version.//// Moodle is distributed in the hope that it will be useful,// but WITHOUT ANY WARRANTY; without even the implied warranty of// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the// GNU General Public License for more details.//// You should have received a copy of the GNU General Public License// along with Moodle. If not, see <http://www.gnu.org/licenses/>.import * as formSubmit from 'core_form/submit';/*** Module for the quick grading functionality on the submissions page.** @module mod_assign/quick_grading* @copyright 2024 Mihail Geshoski <mihail@moodle.com>* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*//** @constant {Object} The object containing the relevant selectors. */const Selectors = {quickGradingSaveRegion: '[data-region="quick-grading-save"]',notifyStudentsCheckbox: 'input[type="checkbox"][name="sendstudentnotifications"]',notifyStudentsHidden: 'input[type="hidden"][name="sendstudentnotifications"]',saveButton: 'button[type="submit"]'};/*** Initialize module.*/export const init = () => {const quickGradingSaveRegion = document.querySelector(Selectors.quickGradingSaveRegion);if (quickGradingSaveRegion) {const quickGradingSaveButton = quickGradingSaveRegion.querySelector(Selectors.saveButton);// Initialize the submit button.formSubmit.init(quickGradingSaveButton);// Add 'change' event listener to the quick grading save region.quickGradingSaveRegion.addEventListener('change', e => {const notifyStudentsCheckbox = e.target.closest(Selectors.notifyStudentsCheckbox);// The target is the 'Notify student' checkbox.if (notifyStudentsCheckbox) {// The 'Notify student' option uses a hidden input and a checkbox. The hidden input is used to submit '0'// as a workaround when the checkbox is unchecked since unchecked checkboxes are not submitted with the// form. Therefore, we need to enable or disable the hidden input based on the checkbox state.const notifyStudentsHidden = notifyStudentsCheckbox.parentNode.querySelector(Selectors.notifyStudentsHidden);notifyStudentsHidden.disabled = notifyStudentsCheckbox.checked;}});}};