Handle hostnames with upper-case letters
[webmin.git] / Webmin / Textbox.pm
1 package Webmin::Textbox;
2 use Webmin::Input;
3 use WebminCore;
4 @ISA = ( "Webmin::Input" );
5
6 =head2 new Webmin::Textbox(name, value, [size], [disabled])
7 Create a new text input field
8 =cut
9 sub new
10 {
11 if (defined(&Webmin::Theme::Textbox::new)) {
12         return new Webmin::Theme::Textbox(@_[1..$#_]);
13         }
14 my ($self, $name, $value, $size, $disabled) = @_;
15 $self = { 'size' => 30 };
16 bless($self);
17 $self->{'name'} = $name;
18 $self->{'value'} = $value;
19 $self->{'size'} = $size if ($size);
20 $self->set_disabled($disabled) if (defined($disabled));
21 return $self;
22 }
23
24 =head2 html()
25 Returns the HTML for this text input
26 =cut
27 sub html
28 {
29 my ($self) = @_;
30 return &ui_textbox($self->get_name(), $self->get_value(),
31                          $self->{'size'},
32                          $self->{'$disabled'});
33 }
34
35 sub set_size
36 {
37 my ($self, $size) = @_;
38 $self->{'size'} = $size;
39 }
40
41 sub set_validation_func
42 {
43 my ($self, $func) = @_;
44 $self->{'validation_func'} = $func;
45 }
46
47 =head2 set_validation_regexp(regexp, message)
48 =cut
49 sub set_validation_regexp
50 {
51 my ($self, $regexp, $message) = @_;
52 $self->{'validation_regexp'} = $regexp;
53 $self->{'validation_message'} = $message;
54 }
55
56 =head2 validate()
57 Returns a list of error messages for this field
58 =cut
59 sub validate
60 {
61 my ($self) = @_;
62 my $value = $self->get_value();
63 if ($self->{'mandatory'} && $value eq '') {
64         return ( $self->{'mandmesg'} || $text{'ui_mandatory'} );
65         }
66 if ($self->{'validation_func'}) {
67         my $err = &{$self->{'validation_func'}}($value, $self->{'name'},
68                                                 $self->{'form'});
69         return ( $err ) if ($err);
70         }
71 if ($self->{'validation_regexp'}) {
72         if ($value !~ /$self->{'validation_regexp'}/) {
73                 return ( $self->{'validation_message'} );
74                 }
75         }
76 return ( );
77 }
78
79 1;
80