Handle hostnames with upper-case letters
[webmin.git] / Webmin / DynamicHTML.pm
1 package Webmin::DynamicHTML;
2 use WebminCore;
3
4 =head2 new Webmin::DynamicHTML(&function, &args, [before])
5 When the page is being rendered, executes the given function and prints any
6 text that it returns.
7 =cut
8 sub new
9 {
10 my ($self, $func, $args, $before) = @_;
11 $self = { 'func' => $func,
12           'args' => $args,
13           'before' => $before };
14 bless($self);
15 return $self;
16 }
17
18 =head2 set_before(text)
19 Sets the text describing what we are waiting for
20 =cut
21 sub set_before
22 {
23 my ($self, $before) = @_;
24 $self->{'before'} = $before;
25 }
26
27 sub get_before
28 {
29 my ($self) = @_;
30 return $self->{'before'};
31 }
32
33 sub html
34 {
35 my ($self) = @_;
36 my $rv;
37 if ($self->get_before()) {
38         $rv .= $self->get_before()."<p>\n";
39         }
40 return $rv;
41 }
42
43 =head2 start()
44 Called by the page to begin the dynamic output.
45 =cut
46 sub start
47 {
48 my ($self) = @_;
49 &{$self->{'func'}}($self, @$args);
50 }
51
52 sub get_wait
53 {
54 my ($self) = @_;
55 return 1;
56 }
57
58 =head2 needs_unbuffered()
59 Must return 1 if the page needs to be in un-buffered and no-table mode
60 =cut
61 sub needs_unbuffered
62 {
63 return 1;
64 }
65
66 =head2 set_page(Webmin::Page)
67 Called when this dynamic HTML element is added to a page
68 =cut
69 sub set_page
70 {
71 my ($self, $page) = @_;
72 $self->{'page'} = $page;
73 }
74
75 1;
76