\n"; print &ui_form_end(); $form++; } # Work out links my @linksrow; if ($access{'edit'}) { if (@servers) { print &ui_form_start("delete_servs.cgi"); push(@linksrow, &select_all_link("d", $form), &select_invert_link("d", $form)); } if ($access{'add'}) { push(@linksrow, &ui_link("edit_serv.cgi?new=1", $text{'index_add'}) ); } } if (@servers && $config{'display_mode'}) { # Show table of servers print &ui_links_row(\@linksrow); print &ui_columns_start([ $access{'edit'} ? ( "" ) : ( ), $text{'index_host'}, $text{'index_desc'}, $text{'index_group'}, $text{'index_os'} ], 100); foreach my $s (@servers) { my @cols; my $table = ""; if (!$access{'links'} || !$s->{'port'}) { $table .= "\n"; $table .= &html_escape($s->{'realhost'} ||$s->{'host'}); $table .= ":$s->{'port'}" if ($s->{'port'}); $table .= "\n"; } else { my $link = ""; if ($s->{'user'} || $s->{'autouser'}) { $link = "link.cgi/".$s->{'id'}."/"; } else { $link = &make_url($s); } $table .= "\n"; $table .= &ui_link($link, &html_escape($s->{'realhost'} || $s->{'host'} ). ":".$s->{'port'}, undef, "target=_top"); $table .= "\n"; } $table .= ""; if ($s->{'autouser'} && &logged_in($s)) { $table .= &ui_link("logout.cgi?id=".$s->{'id'}, "(".$text{'index_logout'}.")"); } if ($access{'edit'}) { $table .= &ui_link("edit_serv.cgi?id=".$s->{'id'}, "(".$text{'index_edit'}.")"); } $table .= "\n"; push(@cols, $table); push(@cols, &html_escape($s->{'desc'})); push(@cols, &html_escape($s->{'group'}) || $text{'index_none'}); my ($type) = grep { $_->[0] eq $s->{'type'} } &get_server_types(); push(@cols, $type->[1]); if ($access{'edit'}) { print &ui_checked_columns_row(\@cols, undef, "d", $s->{'id'}); } else { print &ui_columns_row(\@cols); } } print &ui_columns_end(); } elsif (@servers) { # Show server icons print &ui_links_row(\@linksrow); my (@afters, @befores); if ($access{'edit'}) { my $sep = length($text{'index_edit'}) > 10 ? "" : " "; my $logout = sub { my ($l) = @_; my $logout_link = ""; if (&logged_in($l)) { $logout_link = &ui_link("logout.cgi?id=$l->{'id'}", "(".$text{'index_logout'}.") "); } return $logout_link; }; @afters = map { $sep.&$logout($_).&ui_link("edit_serv.cgi?id=".$_->{'id'}, "(".$text{'index_edit'}.")" ) } @servers; @befores = map { &ui_checkbox("d", $_->{'id'}) } @servers; } my @titles = map { &make_iconname($_) } @servers; my @icons = map { -r "images/$_->{'type'}.svg" ? "images/$_->{'type'}.svg" : "images/$_->{'type'}.gif" } @servers; my @links = map { !$access{'links'} ? undef : $_->{'user'} || $_->{'autouser'} ? "link.cgi/$_->{'id'}/" : &make_url($_) } @servers; &icons_table(\@links, \@titles, \@icons, undef, "target=_top", undef, undef, \@befores, \@afters); } elsif ($in{'search'}) { # No servers match print "$text{'index_nosearch'}
\n"; } else { # No servers exist print "$text{'index_noservers'}
\n"; } if ($access{'edit'}) { print &ui_links_row(\@linksrow); if (@servers) { print &ui_form_end([ [ "delete", $text{'index_delete'} ] ]); } } my $myip = &get_my_address(); my $myscan = &address_to_broadcast($myip, 1) if ($myip); if ($access{'find'} || $access{'auto'}) { print &ui_hr(); print &ui_buttons_start(); if ($access{'find'}) { # Buttons to scan and broadcast for servers my %miniserv; &get_miniserv_config(\%miniserv); my $port = $config{'listen'} || $miniserv{'listen'} || 10000; print &ui_buttons_row("find.cgi", $text{'index_broad'}, $text{'index_findmsg'}); my $t = &ui_buttons_row("find.cgi", $text{'index_scan'}, &text('index_scanmsg', " ". &ui_textbox("scan", $myscan, 15)." "). "