--- lib/PXElator/html.pm 2009/08/27 14:31:49 307 +++ lib/PXElator/html.pm 2009/08/29 22:10:55 354 @@ -45,6 +45,7 @@ sub select { my $name = shift; my $selected_option = shift; + unshift @_, '' unless $selected_option; return join("\n" , qq|| , join("\n", map { my $selected = $_ eq $selected_option ? 'selected' : ''; qq|$_| } @_ ) @@ -65,6 +66,42 @@ qq|$dump|; } +sub conf { + my ($ip,$conf,$format) = @_; + my @editable = splice(@_,3); + + warn "# conf ",dump( $ip, $conf, $format, [ @editable ] ); + + $format ||= 'inline'; + + my @opts = map { + my $name = $_; + my $html = $conf->{$name}; + + if ( $format eq 'edit' && grep { m/^$name$/ } @editable ) { + $size = length($html); + ( $name, qq|| ) + } else { + if ( $name eq 'amt' ) { + $html = qq|logon|; + } elsif ( $name eq 'ssh' ) { + $html =~ s{\s(\S{16}).+(\S{16})\s}{ $1..$2 }; + } + $html = qq|$html| + unless + $html =~ s{\b(\S+)\t(\S+)\t(\S+)\b}{$3 }gs; + + if ( $format =~ /edit|table/ ) { + ( $name, $html ); + } else { + qq|$name $html| + } + } + } keys %$conf; + + $format eq 'inline' ? join("\n", @opts) : @opts; +} + warn "loaded"; 1;
$dump
$html