Proyectos de Subversion Moodle

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1 efrain 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...38'; // 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
}