Handle hostnames with upper-case letters
[webmin.git] / Webmin / User.pm
1 package Webmin::User;
2 use Webmin::Textbox;
3 use WebminCore;
4 @ISA = ( "Webmin::Textbox" );
5
6 =head2 new Webmin::User(name, value, [multiple], [disabled])
7 A text box for entering or selecting one or many Unix usernames
8 =cut
9 sub new
10 {
11 if (defined(&Webmin::Theme::User::new)) {
12         return new Webmin::Theme::User(@_[1..$#_]);
13         }
14 my ($self, $name, $value, $multiple, $disabled) = @_;
15 $self = new Webmin::Textbox($name, $value, $multiple ? 40 : 15, $disabled);
16 bless($self);
17 $self->set_multiple($multiple);
18 return $self;
19 }
20
21 =head2 html()
22 Returns the HTML for this user 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 $multiple = $self->get_multiple();
30 local $w = $multiple ? 500 : 300;
31 $rv .= "&nbsp;<input type=button name=${name}_button onClick='ifield = form.$name; chooser = window.open(\"$gconfig{'webprefix'}/user_chooser.cgi?multi=$multiple&user=\"+escape(ifield.value), \"chooser\", \"toolbar=no,menubar=no,scrollbars=yes,width=$w,height=200\"); chooser.ifield = ifield; window.ifield = ifield' value=\"...\">\n";
32 return $rv;
33 }
34
35 sub set_multiple
36 {
37 my ($self, $multiple) = @_;
38 $self->{'multiple'} = $multiple;
39 }
40
41 sub get_multiple
42 {
43 my ($self) = @_;
44 return $self->{'multiple'};
45 }
46
47 =head2 get_input_names()
48 Returns the actual names of all HTML elements that make up this input
49 =cut
50 sub get_input_names
51 {
52 my ($self) = @_;
53 return ( $self->{'name'}, $self->{'name'}."_button" );
54 }
55
56 1;
57