[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/availability/condition/completion/yui/build/moodle-availability_completion-form/ -> moodle-availability_completion-form-debug.js (source)

   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"]});


Generated: Thu Aug 11 10:00:09 2016 Cross-referenced by PHPXref 0.7.1