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/>./*** Additional javascript for the Workshop module form.** @module mod_workshop/modform* @copyright The Open University 2018* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later*/define(['jquery'], function($) {var submissionTypes = {text: {available: null,required: null,requiredHidden: null},file: {available: null,required: null,requiredHidden: null}};/*** Determine whether one of the submission types has been marked as not available.** If it has been marked not available, clear and disable its required checkbox. Then determine if the other submission* type is available, and if it is, check and disable its required checkbox.** @param {Object} checkUnavailable* @param {Object} checkAvailable*/function checkAvailability(checkUnavailable, checkAvailable) {if (!checkUnavailable.available.prop('checked')) {checkUnavailable.required.prop('disabled', true);checkUnavailable.required.prop('checked', false);if (checkAvailable.available.prop('checked')) {checkAvailable.required.prop('disabled', true);checkAvailable.required.prop('checked', true);// Also set the checkbox's hidden field to 1 so a 'required' value is submitted for the submission type.checkAvailable.requiredHidden.val(1);}}}/*** Enable the submission type's required checkbox and uncheck it.** @param {Object} submissionType*/function enableRequired(submissionType) {submissionType.required.prop('disabled', false);submissionType.required.prop('checked', false);submissionType.requiredHidden.val(0);}/*** Check which submission types have been marked as available, and disable required checkboxes as necessary.*/function submissionTypeChanged() {checkAvailability(submissionTypes.file, submissionTypes.text);checkAvailability(submissionTypes.text, submissionTypes.file);if (submissionTypes.text.available.prop('checked') && submissionTypes.file.available.prop('checked')) {enableRequired(submissionTypes.text);enableRequired(submissionTypes.file);}}return /** @alias module:mod_workshop/modform */ {/*** Find all the required fields, set up event listeners, and set the initial state of required checkboxes.*/init: function() {submissionTypes.text.available = $('#id_submissiontypetextavailable');submissionTypes.text.required = $('#id_submissiontypetextrequired');submissionTypes.text.requiredHidden = $('input[name="submissiontypetextrequired"][type="hidden"]');submissionTypes.file.available = $('#id_submissiontypefileavailable');submissionTypes.file.required = $('#id_submissiontypefilerequired');submissionTypes.file.requiredHidden = $('input[name="submissiontypefilerequired"][type="hidden"]');submissionTypes.text.available.on('change', submissionTypeChanged);submissionTypes.file.available.on('change', submissionTypeChanged);submissionTypeChanged();}};});