1 |
package html; |
package html; |
2 |
|
|
3 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
4 |
|
use amt; |
5 |
|
|
6 |
sub table { |
sub table { |
7 |
my $cols = shift; |
my $cols = shift; |
51 |
, qq|<select type=select name=$name>| |
, qq|<select type=select name=$name>| |
52 |
, join("\n", map { my $selected = $_ eq $selected_option ? 'selected' : ''; qq|<option name=$_ $selected>$_</option>| } @_ ) |
, join("\n", map { my $selected = $_ eq $selected_option ? 'selected' : ''; qq|<option name=$_ $selected>$_</option>| } @_ ) |
53 |
, qq|</select>| |
, qq|</select>| |
|
, qq|</form>| |
|
54 |
); |
); |
55 |
} |
} |
56 |
|
|
70 |
my ($ip,$conf,$format) = @_; |
my ($ip,$conf,$format) = @_; |
71 |
my @editable = splice(@_,3); |
my @editable = splice(@_,3); |
72 |
|
|
73 |
warn "# conf ",dump( $ip, $conf, $format, [ @editable ] ); |
# warn "# conf ",dump( $ip, $conf, $format, [ @editable ] ); |
74 |
|
|
75 |
$format ||= 'inline'; |
$format ||= 'inline'; |
76 |
|
|
83 |
( $name, qq|<input name=$name value="$html" size=$size>| ) |
( $name, qq|<input name=$name value="$html" size=$size>| ) |
84 |
} else { |
} else { |
85 |
if ( $name eq 'amt' ) { |
if ( $name eq 'amt' ) { |
86 |
$html = qq|<a title="$html" href=http://$ip:16992/logon.htm>logon</a>|; |
my $amt_ip = amt::ip($ip,$html); |
87 |
|
# $html contains password! |
88 |
|
$html = qq|<a href=http://$amt_ip:16992/logon.htm target=$amt_ip>$amt_ip</a>|; |
89 |
|
|
90 |
|
if ( $format ne 'inline' ) { |
91 |
|
my $power = amt::power_on($ip); |
92 |
|
$html .= qq| power: | |
93 |
|
. ( $power |
94 |
|
? qq|<a href=/amt/PowerDown/$ip title="turn off">on</a>| |
95 |
|
: qq|<a href=/amt/PowerUp/$ip title="turn on" >off</a>| |
96 |
|
); |
97 |
|
client::conf( $ip, 'power' => $power ? 'on' : 'off' ); |
98 |
|
} |
99 |
} elsif ( $name eq 'ssh' ) { |
} elsif ( $name eq 'ssh' ) { |
100 |
$html =~ s{\s(\S{16}).+(\S{16})\s}{ $1..$2 }; |
$html =~ s{\s(\S{16}).+(\S{16})\s}{ $1..$2 }; |
101 |
} |
chomp($html); |
102 |
$html = qq|<pre style="display: inline">$html</pre>| |
} elsif ( $name eq 'kvm' ) { |
103 |
unless |
$html = qq|<a href="/start_stop/kvm?nr=$html">$html</a>|; |
104 |
$html =~ s{\b(\S+)\t(\S+)\t(\S+)\b}{<b title="$1/$2">$3</b> }gs; |
} elsif ( $name eq 'munin' ) { |
105 |
|
$html = join("\n", map { my $url = $_; $url =~ s/-d\w+\.\w+$/.html/; qq|<a href="$url"><div style="float:right;overflow:hidden;width:415px;height:180px"><img src="$_" style="margin: -30px 0 0 -60px"></div></a>| } split(/\s+/s,$html)); |
106 |
|
} elsif ( $name eq 'ports' ) { |
107 |
|
$html =~ s{\b(\S+)\t(\S+)\t(\S+)\b}{<b title="$1/$2">$3</b> }gs; |
108 |
|
} else { |
109 |
|
$html = qq|<tt>$html</tt>|; |
110 |
|
}; |
111 |
|
|
112 |
if ( $format =~ /edit|table/ ) { |
if ( $format =~ /edit|table/ ) { |
113 |
( $name, $html ); |
( $name, $html ); |
114 |
} else { |
} else { |
115 |
qq|<em>$name</em> $html<br>| |
qq|<div class="config $name"><em>$name</em> $html</div>| |
116 |
} |
} |
117 |
} |
} |
118 |
} keys %$conf; |
} grep { length($conf->{$_}) > 0 } sort keys %$conf; |
119 |
|
|
120 |
$format eq 'inline' ? join("\n", @opts) : @opts; |
$format eq 'inline' ? join("\n", @opts) : @opts; |
121 |
} |
} |