Automatic installer.php lang files by installer_builder (20070726)
[moodle-linuxchix.git] / admin / xmldb / actions / edit_field / edit_field.js
blobb4cecf3c7ef8616b70de608ea785698fd45edf36
1 /// $Id $
3 ///////////////////////////////////////////////////////////////////////////
4 //                                                                       //
5 // NOTICE OF COPYRIGHT                                                   //
6 //                                                                       //
7 // Moodle - Modular Object-Oriented Dynamic Learning Environment         //
8 //          http://moodle.com                                            //
9 //                                                                       //
10 // Copyright (C) 2001-3001 Martin Dougiamas        http://dougiamas.com  //
11 //           (C) 2001-3001 Eloy Lafuente (stronk7) http://contiento.com  //
12 //                                                                       //
13 // This program is free software; you can redistribute it and/or modify  //
14 // it under the terms of the GNU General Public License as published by  //
15 // the Free Software Foundation; either version 2 of the License, or     //
16 // (at your option) any later version.                                   //
17 //                                                                       //
18 // This program is distributed in the hope that it will be useful,       //
19 // but WITHOUT ANY WARRANTY; without even the implied warranty of        //
20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         //
21 // GNU General Public License for more details:                          //
22 //                                                                       //
23 //          http://www.gnu.org/copyleft/gpl.html                         //
24 //                                                                       //
25 ///////////////////////////////////////////////////////////////////////////
28 /// Register the needed events
30     onload=function() {
31     /// Adjust the form on load
32         transformForm();
34     /// Get the required fields
35         var typeField         = document.getElementById('menutype');
36         var sequenceField     = document.getElementById('menusequence');
37         var enumField         = document.getElementById('menuenum');
39     /// Register the rest of events
40         if (typeField.addEventListener) {
41         /// Standard
42             typeField.addEventListener('change', transformForm, false);
43             sequenceField.addEventListener('change', transformForm, false);
44             enumField.addEventListener('change', transformForm, false);
45         } else {
46         /// IE 5.5
47             typeField.attachEvent('onchange', transformForm);
48             sequenceField.attachEvent('onchange', transformForm);
49             enumField.attachEvent('onchange', transformForm);
50         }
51     }
53 /**
54  * This function controls all modifications to perform when any field changes
55  */
56 function transformForm(event) {
58 /// Initialize all the needed variables
59     var typeField         = document.getElementById('menutype');
60     var lengthField       = document.getElementById('length');
61     var decimalsField     = document.getElementById('decimals');
62     var unsignedField     = document.getElementById('menuunsigned');
63     var notnullField      = document.getElementById('menunotnull');
64     var sequenceField     = document.getElementById('menusequence');
65     var enumField         = document.getElementById('menuenum');
66     var enumvaluesField   = document.getElementById('enumvalues');
67     var defaultField      = document.getElementById('default');
69     var lengthTip         = document.getElementById('lengthtip');
70     var decimalsTip       = document.getElementById('decimalstip');
72 /// Initially, enable everything
73     decimalsField.disabled = false;
74     unsignedField.disabled = false;
75     notnullField.disabled = false;
76     sequenceField.disabled = false;
77     enumField.disabled = false;
78     enumvaluesField.disabled = false;
79     defaultField.disabled = false;
81 /// Based on enum, disable some items
82     if (enumField.value == '0') {
83         enumvaluesField.disabled = true;
84         enumvaluesField.value = '';
85     };
87 /// Based on sequence, disable some items
88     if (sequenceField.value == '1') {
89         unsignedField.disabled = true;
90         unsignedField.value = '1';
91         notnullField.disabled = true;
92         notnullField.value = '1';
93         defaultField.disabled = true;
94         defaultField.value = '';
95         enumField.disabled = true;
96         enumField.value = '0';
97         enumvaluesField.disabled = true;
98         enumvaluesField.value = '';
99     }
102 /// Based on type, disable some items
103     switch (typeField.value) {
104         case '1':  // XMLDB_TYPE_INTEGER
105             lengthTip.innerHTML = ' 1...20';
106             decimalsTip.innerHTML = '';
107             decimalsField.disabled = true;
108             decimalsField.value = '';
109             enumField.disabled = true;
110             enumField.value = '0';
111             enumvaluesField.disabled = true;
112             enumvaluesField.value = '';
113             break;
114         case '2':  // XMLDB_TYPE_NUMBER
115             lengthTip.innerHTML = ' 1...20';
116             decimalsTip.innerHTML = ' 0...length or empty';
117             enumField.disabled = true;
118             enumField.value = '0';
119             enumvaluesField.disabled = true;
120             enumvaluesField.value = '';
121             break;
122         case '3':  // XMLDB_TYPE_FLOAT
123             lengthTip.innerHTML = ' 1...20 or empty';
124             decimalsTip.innerHTML = ' 0...length or empty';
125             enumField.disabled = true;
126             enumField.value = '0';
127             enumvaluesField.disabled = true;
128             enumvaluesField.value = '';
129             break;
130         case '4':  // XMLDB_TYPE_CHAR
131             lengthTip.innerHTML = ' 1...255';
132             decimalsTip.innerHTML = '';
133             decimalsField.disabled = true;
134             decimalsField.value = '';
135             unsignedField.disabled = true;
136             unsignedField.value = '0';
137             sequenceField.disabled = true;
138             sequenceField.value = '0';
139             break;
140         case '5':  // XMLDB_TYPE_TEXT
141             lengthTip.innerHTML = ' small, medium, big';
142             decimalsTip.innerHTML = '';
143             decimalsField.disabled = true;
144             decimalsField.value = '';
145             unsignedField.disabled = true;
146             unsignedField.value = '0';
147             sequenceField.disabled = true;
148             sequenceField.value = '0';
149             defaultField.disabled = true;
150             defaultField.value = '';
151             break;
152         case '6':  // XMLDB_TYPE_BINARY
153             lengthTip.innerHTML = ' small, medium, big';
154             decimalsTip.innerHTML = '';
155             decimalsField.disabled = true;
156             decimalsField.value = '';
157             unsignedField.disabled = true;
158             unsignedField.value = '0';
159             sequenceField.disabled = true;
160             sequenceField.value = '0';
161             enumField.disabled = true;
162             enumField.value = '0';
163             enumvaluesField.disabled = true;
164             enumvaluesField.value = '';
165             defaultField.disabled = true;
166             defaultField.value = '';
167             break;
168         case '7':  // XMLDB_TYPE_DATETIME
169             lengthTip.innerHTML = '';
170             lengthField.disabled = true;
171             lengthField.value = '';
172             decimalsTip.innerHTML = '';
173             decimalsField.disabled = true;
174             decimalsField.value = '';
175             unsignedField.disabled = true;
176             unsignedField.value = '0';
177             sequenceField.disabled = true;
178             sequenceField.value = '0';
179             enumField.disabled = true;
180             enumField.value = '0';
181             enumvaluesField.disabled = true;
182             enumvaluesField.value = '';
183             defaultField.disabled = true;
184             defaultField.value = '';
185             break;
186     }