another try at making everything two clicks away
authorDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 29 Aug 2009 15:30:49 +0000 (15:30 +0000)
committerDobrica Pavlinusic <dpavlin@rot13.org>
Sat, 29 Aug 2009 15:30:49 +0000 (15:30 +0000)
lib/PXElator/httpd.pm

index 6a4dfda..5084eed 100644 (file)
@@ -241,10 +241,12 @@ warn "XXX pids = ", dump( $daemons::pids );
                if ( $ip && $ip ne $server::ip ) {
                        my $hostname = client::conf( $ip, 'hostname' => $param->{hostname} );
 
+                       my $nmap = qq|<a href=/nmap?scan=$ip>nmap</a>|;
+
                        my @table = (
                                'ip' => qq|<input type=text name=change_ip value="$ip" onChange="document.getElementById('old_ip').style.display = '';"><span id=old_ip style="display: none; color: #888;">old: $ip<span>|,
                                'hostname' => qq|<input type=text name=hostname value="$hostname">|,
-                               'ping' => ping::host($ip) ? qq|<span style="color:green">up</span>| : qq|<a href=/wol/$ip title=wol>down</a>|,
+                               'ping' => ping::host($ip) ? qq|<span style="color:green">up</span> $nmap| : qq|<a href=/wol/$ip title=wol>down</a> $nmap|,
                        );
 
                        my $config;
@@ -288,8 +290,8 @@ warn "XXX pids = ", dump( $daemons::pids );
 
                        print $client ok
                                , qq|<h2>Clients on $server::ip</h2>|
-                               , html::table( -6,
-                                       'ip', 'mac', 'dev', 'hostname', 'deploy', 'conf',
+                               , html::table( -5,
+                                       'ip', 'mac', 'dev', 'hostname', 'conf',
                                        map {
                                                my $ip = $_;
                                                my $conf = client::all_conf( $ip );
@@ -306,8 +308,18 @@ warn "XXX pids = ", dump( $daemons::pids );
                                                        , format::mac( $mac => 'html' )
                                                        , $arp->{$mac}
                                                        , delete $conf->{hostname}
-                                                       , delete $conf->{deploy}
-                                                       , ( %$conf ? html::pre_dump( $conf ) : qq|<a href=/nmap?scan=$ip>nmap</a>| )
+                                                       , join("\n", map {
+                                                               my $name = $_;
+                                                               my $html = $conf->{$name};
+                                                               if ( $name eq 'amt' ) {
+                                                                       $html = qq|<a title="$html" href=http://$ip:16992/logon.htm>logon</a>|;
+                                                               }
+                                                               $html = qq|<pre style="display: inline">$html</pre>|
+                                                               unless
+#0 &&
+                                                               $html =~ s{\b(\S+)\t(\S+)\t(\S+)\b}{<b title="$1/$2">$3</b> }gs;
+                                                               qq|<em>$name</em> $html<br>|
+                                                       } keys %$conf )
                                                );
                                        } client::all_ips
                                )