Handle hostnames with upper-case letters
[webmin.git] / Webmin / TableAction.pm
1 package Webmin::TableAction;
2 use WebminCore;
3
4 =head2 new Webmin::TableAction(cgi, label, &args, disabled)
5 An object of this class can be added to a table or properties object to create
6 a link or action button of some kind.
7 =cut
8 sub new
9 {
10 if (defined(&Webmin::Theme::TableAction::new) &&
11     caller() !~ /Webmin::Theme::TableAction/) {
12         return new Webmin::Theme::TableAction(@_[1..$#_]);
13         }
14 my ($self, $cgi, $value, $args, $disabled) = @_;
15 $self = { };
16 bless($self);
17 $self->set_value($value);
18 $self->set_cgi($cgi);
19 $self->set_args($args) if (defined($args));
20 $self->set_disabled($disabled) if (defined($disabled));
21 return $self;
22 }
23
24 sub html
25 {
26 my ($self) = @_;
27 my $rv;
28 if ($self->get_disabled()) {
29         $rv .= "<u><i>".$self->get_value()."</i></u>";
30         }
31 else {
32         my $link = $self->get_cgi();
33         my $i = 0;
34         foreach my $a (@{$self->get_args()}) {
35                 $link .= ($i++ ? "&" : "?");
36                 $link .= &urlize($a->[0])."=".&urlize($a->[1]);
37                 }
38         $rv .= "<a href='$link'>".$self->get_value()."</a>";
39         }
40 return $rv;
41 }
42
43 sub set_value
44 {
45 my ($self, $value) = @_;
46 $self->{'value'} = $value;
47 }
48
49 sub get_value
50 {
51 my ($self) = @_;
52 return $self->{'value'};
53 }
54
55 sub set_cgi
56 {
57 my ($self, $cgi) = @_;
58 $self->{'cgi'} = $cgi;
59 }
60
61 sub get_cgi
62 {
63 my ($self) = @_;
64 return $self->{'cgi'};
65 }
66
67 sub set_args
68 {
69 my ($self, $args) = @_;
70 $self->{'args'} = $args;
71 }
72
73 sub get_args
74 {
75 my ($self) = @_;
76 return $self->{'args'};
77 }
78
79 sub set_disabled
80 {
81 my ($self, $disabled) = @_;
82 $self->{'disabled'} = $disabled;
83 }
84
85 sub get_disabled
86 {
87 my ($self) = @_;
88 return $self->{'disabled'};
89 }
90
91 1;
92