[ Index ]

PHP Cross Reference of Unnamed Project

title

Body

[close]

/admin/tool/xmldb/actions/edit_field/ -> edit_field.js (source)

   1  // This file is part of Moodle - http://moodle.org/
   2  //
   3  // Moodle is free software: you can redistribute it and/or modify
   4  // it under the terms of the GNU General Public License as published by
   5  // the Free Software Foundation, either version 3 of the License, or
   6  // (at your option) any later version.
   7  //
   8  // Moodle is distributed in the hope that it will be useful,
   9  // but WITHOUT ANY WARRANTY; without even the implied warranty of
  10  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  11  // GNU General Public License for more details.
  12  //
  13  // You should have received a copy of the GNU General Public License
  14  // along with Moodle.  If not, see <http://www.gnu.org/licenses/>.
  15  
  16  /**
  17   * @package    tool_xmldb
  18   * @copyright  2003 onwards Eloy Lafuente (stronk7) {@link http://stronk7.com}
  19   * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
  20   */
  21  
  22  // Register the needed events
  23  onload=function() {
  24      // Adjust the form on load
  25      transformForm();
  26  
  27      // Get the required fields
  28      var typeField         = document.getElementById('menutype');
  29      var sequenceField     = document.getElementById('menusequence');
  30  
  31      // Register the rest of events
  32      if (typeField.addEventListener) {
  33          // Standard
  34          typeField.addEventListener('change', transformForm, false);
  35          sequenceField.addEventListener('change', transformForm, false);
  36      } else {
  37          // IE 5.5
  38          typeField.attachEvent('onchange', transformForm);
  39          sequenceField.attachEvent('onchange', transformForm);
  40      }
  41  }
  42  
  43  /**
  44   * This function controls all modifications to perform when any field changes
  45   */
  46  function transformForm(event) {
  47  
  48      // Initialize all the needed variables
  49      var typeField         = document.getElementById('menutype');
  50      var lengthField       = document.getElementById('length');
  51      var decimalsField     = document.getElementById('decimals');
  52      var notnullField      = document.getElementById('menunotnull');
  53      var sequenceField     = document.getElementById('menusequence');
  54      var defaultField      = document.getElementById('default');
  55  
  56      var lengthTip         = document.getElementById('lengthtip');
  57      var decimalsTip       = document.getElementById('decimalstip');
  58  
  59      // Initially, enable everything
  60      decimalsField.disabled = false;
  61      notnullField.disabled = false;
  62      sequenceField.disabled = false;
  63      defaultField.disabled = false;
  64  
  65      // Based on sequence, disable some items
  66      if (sequenceField.value == '1') {
  67          notnullField.disabled = true;
  68          notnullField.value = '1';
  69          defaultField.disabled = true;
  70          defaultField.value = '';
  71      }
  72  
  73      // Based on type, disable some items
  74      switch (typeField.value) {
  75          case '1':  // XMLDB_TYPE_INTEGER
  76              lengthTip.innerHTML = ' 1...20'; // Hardcoded xmldb_field::INTEGER_MAX_LENGTH, yes!
  77              lengthField.disabled = false;
  78              decimalsTip.innerHTML = '';
  79              decimalsField.disabled = true;
  80              decimalsField.value = '';
  81              break;
  82          case '2':  // XMLDB_TYPE_NUMBER
  83              lengthTip.innerHTML = ' 1...20'; // Hardcoded xmldb_field::NUMBER_MAX_LENGTH, yes!
  84              lengthField.disabled = false;
  85              decimalsTip.innerHTML = ' 0...length or empty';
  86              break;
  87          case '3':  // XMLDB_TYPE_FLOAT
  88              lengthTip.innerHTML = ' 1...20 or empty'; // Hardcoded xmldb_field::FLOAT_MAX_LENGTH, yes!
  89              lengthField.disabled = false;
  90              decimalsTip.innerHTML = ' 0...length or empty';
  91              break;
  92          case '4':  // XMLDB_TYPE_CHAR
  93              lengthTip.innerHTML = ' 1...1333'; // Hardcoded xmldb_field::CHAR_MAX_LENGTH, yes!
  94              lengthField.disabled = false;
  95              decimalsTip.innerHTML = '';
  96              decimalsField.disabled = true;
  97              decimalsField.value = '';
  98              sequenceField.disabled = true;
  99              sequenceField.value = '0';
 100              break;
 101          case '5':  // XMLDB_TYPE_TEXT
 102              lengthTip.innerHTML = '';
 103              lengthField.disabled = true;
 104              decimalsTip.innerHTML = '';
 105              decimalsField.disabled = true;
 106              decimalsField.value = '';
 107              sequenceField.disabled = true;
 108              sequenceField.value = '0';
 109              defaultField.disabled = true;
 110              defaultField.value = '';
 111              break;
 112          case '6':  // XMLDB_TYPE_BINARY
 113              lengthTip.innerHTML = '';
 114              lengthField.disabled = true;
 115              decimalsTip.innerHTML = '';
 116              decimalsField.disabled = true;
 117              decimalsField.value = '';
 118              sequenceField.disabled = true;
 119              sequenceField.value = '0';
 120              defaultField.disabled = true;
 121              defaultField.value = '';
 122              break;
 123          case '7':  // XMLDB_TYPE_DATETIME
 124              lengthTip.innerHTML = '';
 125              lengthField.disabled = true;
 126              lengthField.value = '';
 127              decimalsTip.innerHTML = '';
 128              decimalsField.disabled = true;
 129              decimalsField.value = '';
 130              sequenceField.disabled = true;
 131              sequenceField.value = '0';
 132              defaultField.disabled = true;
 133              defaultField.value = '';
 134              break;
 135      }
 136  }


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