mirror of
https://github.com/moodle/moodle.git
synced 2025-02-22 19:06:51 +01:00
151 lines
6.1 KiB
JavaScript
151 lines
6.1 KiB
JavaScript
/// $Id $
|
|
|
|
///////////////////////////////////////////////////////////////////////////
|
|
// //
|
|
// NOTICE OF COPYRIGHT //
|
|
// //
|
|
// Moodle - Modular Object-Oriented Dynamic Learning Environment //
|
|
// http://moodle.com //
|
|
// //
|
|
// Copyright (C) 1999 onwards Martin Dougiamas http://dougiamas.com //
|
|
// (C) 2001-3001 Eloy Lafuente (stronk7) http://contiento.com //
|
|
// //
|
|
// This program 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 2 of the License, or //
|
|
// (at your option) any later version. //
|
|
// //
|
|
// This program 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: //
|
|
// //
|
|
// http://www.gnu.org/copyleft/gpl.html //
|
|
// //
|
|
///////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
/// Register the needed events
|
|
|
|
onload=function() {
|
|
/// Adjust the form on load
|
|
transformForm();
|
|
|
|
/// Get the required fields
|
|
var typeField = document.getElementById('menutype');
|
|
var sequenceField = document.getElementById('menusequence');
|
|
|
|
/// Register the rest of events
|
|
if (typeField.addEventListener) {
|
|
/// Standard
|
|
typeField.addEventListener('change', transformForm, false);
|
|
sequenceField.addEventListener('change', transformForm, false);
|
|
} else {
|
|
/// IE 5.5
|
|
typeField.attachEvent('onchange', transformForm);
|
|
sequenceField.attachEvent('onchange', transformForm);
|
|
}
|
|
}
|
|
|
|
/**
|
|
* This function controls all modifications to perform when any field changes
|
|
*/
|
|
function transformForm(event) {
|
|
|
|
/// Initialize all the needed variables
|
|
var typeField = document.getElementById('menutype');
|
|
var lengthField = document.getElementById('length');
|
|
var decimalsField = document.getElementById('decimals');
|
|
var unsignedField = document.getElementById('menuunsigned');
|
|
var notnullField = document.getElementById('menunotnull');
|
|
var sequenceField = document.getElementById('menusequence');
|
|
var defaultField = document.getElementById('default');
|
|
|
|
var lengthTip = document.getElementById('lengthtip');
|
|
var decimalsTip = document.getElementById('decimalstip');
|
|
|
|
/// Initially, enable everything
|
|
decimalsField.disabled = false;
|
|
unsignedField.disabled = false;
|
|
notnullField.disabled = false;
|
|
sequenceField.disabled = false;
|
|
defaultField.disabled = false;
|
|
|
|
/// Based on sequence, disable some items
|
|
if (sequenceField.value == '1') {
|
|
unsignedField.disabled = true;
|
|
unsignedField.value = '1';
|
|
notnullField.disabled = true;
|
|
notnullField.value = '1';
|
|
defaultField.disabled = true;
|
|
defaultField.value = '';
|
|
}
|
|
|
|
|
|
/// Based on type, disable some items
|
|
switch (typeField.value) {
|
|
case '1': // XMLDB_TYPE_INTEGER
|
|
lengthTip.innerHTML = ' 1...20';
|
|
decimalsTip.innerHTML = '';
|
|
decimalsField.disabled = true;
|
|
decimalsField.value = '';
|
|
break;
|
|
case '2': // XMLDB_TYPE_NUMBER
|
|
lengthTip.innerHTML = ' 1...20';
|
|
decimalsTip.innerHTML = ' 0...length or empty';
|
|
break;
|
|
case '3': // XMLDB_TYPE_FLOAT
|
|
lengthTip.innerHTML = ' 1...20 or empty';
|
|
decimalsTip.innerHTML = ' 0...length or empty';
|
|
break;
|
|
case '4': // XMLDB_TYPE_CHAR
|
|
lengthTip.innerHTML = ' 1...255';
|
|
decimalsTip.innerHTML = '';
|
|
decimalsField.disabled = true;
|
|
decimalsField.value = '';
|
|
unsignedField.disabled = true;
|
|
unsignedField.value = '0';
|
|
sequenceField.disabled = true;
|
|
sequenceField.value = '0';
|
|
break;
|
|
case '5': // XMLDB_TYPE_TEXT
|
|
lengthTip.innerHTML = ' small, medium, big';
|
|
decimalsTip.innerHTML = '';
|
|
decimalsField.disabled = true;
|
|
decimalsField.value = '';
|
|
unsignedField.disabled = true;
|
|
unsignedField.value = '0';
|
|
sequenceField.disabled = true;
|
|
sequenceField.value = '0';
|
|
defaultField.disabled = true;
|
|
defaultField.value = '';
|
|
break;
|
|
case '6': // XMLDB_TYPE_BINARY
|
|
lengthTip.innerHTML = ' small, medium, big';
|
|
decimalsTip.innerHTML = '';
|
|
decimalsField.disabled = true;
|
|
decimalsField.value = '';
|
|
unsignedField.disabled = true;
|
|
unsignedField.value = '0';
|
|
sequenceField.disabled = true;
|
|
sequenceField.value = '0';
|
|
defaultField.disabled = true;
|
|
defaultField.value = '';
|
|
break;
|
|
case '7': // XMLDB_TYPE_DATETIME
|
|
lengthTip.innerHTML = '';
|
|
lengthField.disabled = true;
|
|
lengthField.value = '';
|
|
decimalsTip.innerHTML = '';
|
|
decimalsField.disabled = true;
|
|
decimalsField.value = '';
|
|
unsignedField.disabled = true;
|
|
unsignedField.value = '0';
|
|
sequenceField.disabled = true;
|
|
sequenceField.value = '0';
|
|
defaultField.disabled = true;
|
|
defaultField.value = '';
|
|
break;
|
|
}
|
|
}
|