[ Index ] |
PHP Cross Reference of Unnamed Project |
[Summary view] [Print] [Text view]
1 YUI.add('moodle-availability_completion-form', function (Y, NAME) { 2 3 /** 4 * JavaScript for form editing completion conditions. 5 * 6 * @module moodle-availability_completion-form 7 */ 8 M.availability_completion = M.availability_completion || {}; 9 10 /** 11 * @class M.availability_completion.form 12 * @extends M.core_availability.plugin 13 */ 14 M.availability_completion.form = Y.Object(M.core_availability.plugin); 15 16 /** 17 * Initialises this plugin. 18 * 19 * @method initInner 20 * @param {Array} cms Array of objects containing cmid => name 21 */ 22 M.availability_completion.form.initInner = function(cms) { 23 this.cms = cms; 24 }; 25 26 M.availability_completion.form.getNode = function(json) { 27 // Create HTML structure. 28 var html = M.util.get_string('title', 'availability_completion') + ' <span class="availability-group"><label>' + 29 '<span class="accesshide">' + M.util.get_string('label_cm', 'availability_completion') + ' </span>' + 30 '<select name="cm" title="' + M.util.get_string('label_cm', 'availability_completion') + '">' + 31 '<option value="0">' + M.util.get_string('choosedots', 'moodle') + '</option>'; 32 for (var i = 0; i < this.cms.length; i++) { 33 var cm = this.cms[i]; 34 // String has already been escaped using format_string. 35 html += '<option value="' + cm.id + '">' + cm.name + '</option>'; 36 } 37 html += '</select></label> <label><span class="accesshide">' + 38 M.util.get_string('label_completion', 'availability_completion') + 39 ' </span><select name="e" title="' + M.util.get_string('label_completion', 'availability_completion') + '">' + 40 '<option value="1">' + M.util.get_string('option_complete', 'availability_completion') + '</option>' + 41 '<option value="0">' + M.util.get_string('option_incomplete', 'availability_completion') + '</option>' + 42 '<option value="2">' + M.util.get_string('option_pass', 'availability_completion') + '</option>' + 43 '<option value="3">' + M.util.get_string('option_fail', 'availability_completion') + '</option>' + 44 '</select></label></span>'; 45 var node = Y.Node.create('<span>' + html + '</span>'); 46 47 // Set initial values. 48 if (json.cm !== undefined && 49 node.one('select[name=cm] > option[value=' + json.cm + ']')) { 50 node.one('select[name=cm]').set('value', '' + json.cm); 51 } 52 if (json.e !== undefined) { 53 node.one('select[name=e]').set('value', '' + json.e); 54 } 55 56 // Add event handlers (first time only). 57 if (!M.availability_completion.form.addedEvents) { 58 M.availability_completion.form.addedEvents = true; 59 var root = Y.one('#fitem_id_availabilityconditionsjson'); 60 root.delegate('change', function() { 61 // Whichever dropdown changed, just update the form. 62 M.core_availability.form.update(); 63 }, '.availability_completion select'); 64 } 65 66 return node; 67 }; 68 69 M.availability_completion.form.fillValue = function(value, node) { 70 value.cm = parseInt(node.one('select[name=cm]').get('value'), 10); 71 value.e = parseInt(node.one('select[name=e]').get('value'), 10); 72 }; 73 74 M.availability_completion.form.fillErrors = function(errors, node) { 75 var cmid = parseInt(node.one('select[name=cm]').get('value'), 10); 76 if (cmid === 0) { 77 errors.push('availability_completion:error_selectcmid'); 78 } 79 }; 80 81 82 }, '@VERSION@', {"requires": ["base", "node", "event", "moodle-core_availability-form"]});
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Aug 11 10:00:09 2016 | Cross-referenced by PHPXref 0.7.1 |