Handle hostnames with upper-case letters
[webmin.git] / Webmin / File.pm
1 package Webmin::File;
2 use Webmin::Textbox;
3 use WebminCore;
4 @ISA = ( "Webmin::Textbox" );
5
6 =head2 new Webmin::File(name, value, size, [directory], [disabled])
7 A text box for selecting a file
8 =cut
9 sub new
10 {
11 if (defined(&Webmin::Theme::File::new)) {
12         return new Webmin::Theme::File(@_[1..$#_]);
13         }
14 my ($self, $name, $value, $size, $directory, $disabled) = @_;
15 $self = new Webmin::Textbox($name, $value, $size, $disabled);
16 bless($self);
17 $self->set_directory($directory);
18 return $self;
19 }
20
21 =head2 html()
22 Returns the HTML for this file input
23 =cut
24 sub html
25 {
26 my ($self) = @_;
27 my $rv = Webmin::Textbox::html($self);
28 my $name = $self->get_name();
29 my $directory = $self->get_directory();
30 my $add = 0;
31 my $chroot = $self->get_chroot();
32 $rv .= "<input type=button name=${name}_button onClick='ifield = form.$name; chooser = window.open(\"$gconfig{'webprefix'}/chooser.cgi?add=$add&type=$directory&chroot=$chroot&file=\"+escape(ifield.value), \"chooser\", \"toolbar=no,menubar=no,scrollbar=no,width=400,height=300\"); chooser.ifield = ifield; window.ifield = ifield' value=\"...\">\n";
33 return $rv;
34 }
35
36 sub set_directory
37 {
38 my ($self, $directory) = @_;
39 $self->{'directory'} = $directory;
40 }
41
42 sub get_directory
43 {
44 my ($self) = @_;
45 return $self->{'directory'};
46 }
47
48 sub set_chroot
49 {
50 my ($self, $chroot) = @_;
51 $self->{'chroot'} = $chroot;
52 }
53
54 sub get_chroot
55 {
56 my ($self) = @_;
57 return $self->{'chroot'};
58 }
59
60 =head2 get_input_names()
61 Returns the actual names of all HTML elements that make up this input
62 =cut
63 sub get_input_names
64 {
65 my ($self) = @_;
66 return ( $self->{'name'}, $self->{'name'}."_button" );
67 }
68
69 1;
70