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