1 |
efrain |
1 |
{"version":3,"file":"modform.min.js","sources":["../src/modform.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 * Additional javascript for the Workshop module form.\n *\n * @module mod_workshop/modform\n * @copyright The Open University 2018\n * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later\n */\ndefine(['jquery'], function($) {\n\n var submissionTypes = {\n text: {\n available: null,\n required: null,\n requiredHidden: null\n },\n file: {\n available: null,\n required: null,\n requiredHidden: null\n }\n };\n\n /**\n * Determine whether one of the submission types has been marked as not available.\n *\n * If it has been marked not available, clear and disable its required checkbox. Then determine if the other submission\n * type is available, and if it is, check and disable its required checkbox.\n *\n * @param {Object} checkUnavailable\n * @param {Object} checkAvailable\n */\n function checkAvailability(checkUnavailable, checkAvailable) {\n if (!checkUnavailable.available.prop('checked')) {\n checkUnavailable.required.prop('disabled', true);\n checkUnavailable.required.prop('checked', false);\n if (checkAvailable.available.prop('checked')) {\n checkAvailable.required.prop('disabled', true);\n checkAvailable.required.prop('checked', true);\n // Also set the checkbox's hidden field to 1 so a 'required' value is submitted for the submission type.\n checkAvailable.requiredHidden.val(1);\n }\n }\n }\n\n /**\n * Enable the submission type's required checkbox and uncheck it.\n *\n * @param {Object} submissionType\n */\n function enableRequired(submissionType) {\n submissionType.required.prop('disabled', false);\n submissionType.required.prop('checked', false);\n submissionType.requiredHidden.val(0);\n }\n\n /**\n * Check which submission types have been marked as available, and disable required checkboxes as necessary.\n */\n function submissionTypeChanged() {\n checkAvailability(submissionTypes.file, submissionTypes.text);\n checkAvailability(submissionTypes.text, submissionTypes.file);\n if (submissionTypes.text.available.prop('checked') && submissionTypes.file.available.prop('checked')) {\n enableRequired(submissionTypes.text);\n enableRequired(submissionTypes.file);\n }\n }\n\n return /** @alias module:mod_workshop/modform */ {\n /**\n * Find all the required fields, set up event listeners, and set the initial state of required checkboxes.\n */\n init: function() {\n submissionTypes.text.available = $('#id_submissiontypetextavailable');\n submissionTypes.text.required = $('#id_submissiontypetextrequired');\n submissionTypes.text.requiredHidden = $('input[name=\"submissiontypetextrequired\"][type=\"hidden\"]');\n submissionTypes.file.available = $('#id_submissiontypefileavailable');\n submissionTypes.file.required = $('#id_submissiontypefilerequired');\n submissionTypes.file.requiredHidden = $('input[name=\"submissiontypefilerequired\"][type=\"hidden\"]');\n submissionTypes.text.available.on('change', submissionTypeChanged);\n submissionTypes.file.available.on('change', submissionTypeChanged);\n submissionTypeChanged();\n }\n };\n});\n"],"names":["define","$","submissionTypes","text","available","required","requiredHidden","file","checkAvailability","checkUnavailable","checkAvailable","prop","val","enableRequired","submissionType","submissionTypeChanged","init","on"],"mappings":";;;;;;;AAsBAA,8BAAO,CAAC,WAAW,SAASC,OAEpBC,gBAAkB,CAClBC,KAAM,CACFC,UAAW,KACXC,SAAU,KACVC,eAAgB,MAEpBC,KAAM,CACFH,UAAW,KACXC,SAAU,KACVC,eAAgB,gBAafE,kBAAkBC,iBAAkBC,gBACpCD,iBAAiBL,UAAUO,KAAK,aACjCF,iBAAiBJ,SAASM,KAAK,YAAY,GAC3CF,iBAAiBJ,SAASM,KAAK,WAAW,GACtCD,eAAeN,UAAUO,KAAK,aAC9BD,eAAeL,SAASM,KAAK,YAAY,GACzCD,eAAeL,SAASM,KAAK,WAAW,GAExCD,eAAeJ,eAAeM,IAAI,cAUrCC,eAAeC,gBACpBA,eAAeT,SAASM,KAAK,YAAY,GACzCG,eAAeT,SAASM,KAAK,WAAW,GACxCG,eAAeR,eAAeM,IAAI,YAM7BG,wBACLP,kBAAkBN,gBAAgBK,KAAML,gBAAgBC,MACxDK,kBAAkBN,gBAAgBC,KAAMD,gBAAgBK,MACpDL,gBAAgBC,KAAKC,UAAUO,KAAK,YAAcT,gBAAgBK,KAAKH,UAAUO,KAAK,aACtFE,eAAeX,gBAAgBC,MAC/BU,eAAeX,gBAAgBK,aAIU,CAI7CS,KAAM,WACFd,gBAAgBC,KAAKC,UAAYH,EAAE,mCACnCC,gBAAgBC,KAAKE,SAAWJ,EAAE,kCAClCC,gBAAgBC,KAAKG,eAAiBL,EAAE,2DACxCC,gBAAgBK,KAAKH,UAAYH,EAAE,mCACnCC,gBAAgBK,KAAKF,SAAWJ,EAAE,kCAClCC,gBAAgBK,KAAKD,eAAiBL,EAAE,2DACxCC,gBAAgBC,KAAKC,UAAUa,GAAG,SAAUF,uBAC5Cb,gBAAgBK,KAAKH,UAAUa,GAAG,SAAUF,uBAC5CA"}
|