Handle hostnames with upper-case letters
[webmin.git] / Webmin / Input.pm
1 package Webmin::Input;
2 use WebminCore;
3
4 sub set_form
5 {
6 my ($self, $form) = @_;
7 $self->{'form'} = $form;
8 }
9
10 sub set_name
11 {
12 my ($self, $name) = @_;
13 $self->{'name'} = $name;
14 }
15
16 sub get_name
17 {
18 my ($self) = @_;
19 return $self->{'name'};
20 }
21
22 sub set_disabled
23 {
24 my ($self, $disabled) = @_;
25 $self->{'disabled'} = $disabled;
26 }
27
28 sub get_disabled
29 {
30 my ($self) = @_;
31 return $self->{'disabled'};
32 }
33
34 =head2 validate()
35 No validation is done by default
36 =cut
37 sub validate
38 {
39 return ( );
40 }
41
42 sub set_value
43 {
44 my ($self, $value) = @_;
45 $self->{'value'} = $value;
46 }
47
48 =head2 get_value()
49 Returns the current value for this field as entered by the user, the value
50 set when the form is re-displayed due to an error, or the initial value.
51 =cut
52 sub get_value
53 {
54 my ($self) = @_;
55 my $in = $self->{'form'} ? $self->{'form'}->{'in'} : undef;
56 if ($in && (defined($in->{$self->{'name'}}) ||
57             defined($in->{"ui_exists_".$self->{'name'}}))) {
58         return $in->{$self->{'name'}};
59         }
60 elsif ($in && defined($in->{"ui_value_".$self->{'name'}})) {
61         return $in->{"ui_value_".$self->{'name'}};
62         }
63 else {
64         return $self->{'value'};
65         }
66 }
67
68 =head2 set_disable_code(javascript)
69 Must be provided with a Javascript expression that will return true when this
70 input should be disabled. May refer to other fields, via the variable 'form'.
71 ie. form.mode.value = "0"
72 Will be called every time any field's value changes.
73 =cut
74 sub set_disable_code
75 {
76 my ($self, $code) = @_;
77 $self->{'disablecode'} = $code;
78 }
79
80 sub get_disable_code
81 {
82 my ($self) = @_;
83 return $self->{'disablecode'};
84 }
85
86 =head2 get_input_names()
87 Returns the actual names of all HTML elements that make up this input
88 =cut
89 sub get_input_names
90 {
91 my ($self) = @_;
92 return ( $self->{'name'} );
93 }
94
95 =head2 set_label(text)
96 Sets HTML to be displayed before this field
97 =cut
98 sub set_label
99 {
100 my ($self, $label) = @_;
101 $self->{'label'} = $label;
102 }
103
104 sub get_label
105 {
106 my ($self) = @_;
107 return $self->{'label'};
108 }
109
110 sub set_mandatory
111 {
112 my ($self, $mandatory, $mandmesg) = @_;
113 $self->{'mandatory'} = $mandatory;
114 $self->{'mandmesg'} = $mandmesg if (defined($mandmesg));
115 }
116
117 sub get_mandatory
118 {
119 my ($self) = @_;
120 return $self->{'mandatory'};
121 }
122
123 =head2 get_errors()
124 Returns a list of errors associated with this field
125 =cut
126 sub get_errors
127 {
128 my ($self) = @_;
129 return $self->{'form'} ? $self->{'form'}->field_errors($self->get_name())
130                        : ( );
131 }
132
133 1;
134