#!/usr/bin/perl # Display a list of other webmin servers use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; require './servers-lib.pl'; our (%text, %config, %access, %in); &ui_print_header(undef, $text{'index_title'}, "", undef, 1, 1); &ReadParse(); # Get servers and apply search my @servers = &list_servers_sorted(1); if ($in{'search'}) { @servers = grep { $_->{'host'} =~ /\Q$in{'search'}\E/i || $_->{'desc'} =~ /\Q$in{'search'}\E/i } @servers; } # Show search form my $form = 0; if (@servers > $config{'max_servers'} || $in{'search'}) { print &ui_form_start("index.cgi"); print "<b>$text{'index_search'}</b> ", &ui_textbox("search", $in{'search'}, 40)," ", &ui_submit($text{'index_ok'}),"<p>\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 = "<table cellpadding=0 cellspacing=0 width=100%><tr>\n"; if (!$access{'links'} || !$s->{'port'}) { $table .= "<td>\n"; $table .= &html_escape($s->{'realhost'} ||$s->{'host'}); $table .= ":$s->{'port'}" if ($s->{'port'}); $table .= "</td>\n"; } else { my $link = ""; if ($s->{'user'} || $s->{'autouser'}) { $link = "link.cgi/".$s->{'id'}."/"; } else { $link = &make_url($s); } $table .= "<td>\n"; $table .= &ui_link($link, &html_escape($s->{'realhost'} || $s->{'host'} ). ":".$s->{'port'}, undef, "target=_top"); $table .= "</td>\n"; } $table .= "<td align=right>"; 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 .= "</td></tr></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 ? "<br>" : " "; 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 "<b>$text{'index_nosearch'}</b> <p>\n"; } else { # No servers exist print "<b>$text{'index_noservers'}</b> <p>\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)). "<br><table>\n". "<tr><td valign=middle><b>$text{'index_defuser'}</b></td>\n". "<td valign=middle>".&ui_textbox("defuser", undef, 20)."</td> </tr>". "<tr> <td><b>$text{'index_defpass'}</b></td>\n". "<td valign=middle>".&ui_password("defpass", undef, 20)."</td> </tr>". "<tr> <td><b>$text{'index_defport'}</b></td>\n". "<td valign=middle>".&ui_textbox("port", $port, 20)."</td> </tr>". "</table>\n" ); $t =~ s/valign=top class=ui_buttons_value/valign=middle class=ui_buttons_value/g; print $t; } if ($access{'auto'}) { # Button for auto-discovery form print &ui_buttons_row("edit_auto.cgi", $text{'index_auto'}, $text{'index_automsg'}); } print &ui_buttons_end(); } &ui_print_footer("/", $text{'index'}); sub make_url { return sprintf "http%s://%s:%d/", $_[0]->{'ssl'} ? 's' : '', $_[0]->{'host'}, $_[0]->{'port'}; } sub make_iconname { my $rv; if ($_[0]->{'desc'} && !$config{'show_ip'}) { $rv = $_[0]->{'desc'}; } elsif ($_[0]->{'realhost'}) { $rv = "$_[0]->{'realhost'}:$_[0]->{'port'}"; } else { $rv = "$_[0]->{'host'}:$_[0]->{'port'}"; } return &html_escape($rv); }
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
images | Folder | 0755 |
|
|
lang | Folder | 0755 |
|
|
CHANGELOG | File | 1.63 KB | 0644 |
|
acl_security.pl | File | 2.46 KB | 0755 |
|
auto.pl | File | 2.9 KB | 0755 |
|
backup_config.pl | File | 678 B | 0755 |
|
cgi_args.pl | File | 313 B | 0755 |
|
config | File | 140 B | 0644 |
|
config-debian-linux | File | 174 B | 0644 |
|
config-redhat-linux | File | 180 B | 0644 |
|
config-syno-linux | File | 140 B | 0644 |
|
config.info | File | 977 B | 0644 |
|
config.info.ar | File | 1.5 KB | 0644 |
|
config.info.ca | File | 1.17 KB | 0644 |
|
config.info.cs | File | 421 B | 0644 |
|
config.info.de | File | 1.14 KB | 0644 |
|
config.info.es | File | 481 B | 0644 |
|
config.info.fr | File | 489 B | 0644 |
|
config.info.hu | File | 147 B | 0644 |
|
config.info.it | File | 1.03 KB | 0644 |
|
config.info.ja | File | 1.21 KB | 0644 |
|
config.info.ko | File | 983 B | 0644 |
|
config.info.ms | File | 934 B | 0644 |
|
config.info.nl | File | 979 B | 0644 |
|
config.info.no | File | 925 B | 0644 |
|
config.info.pl | File | 1.02 KB | 0644 |
|
config.info.pt_BR | File | 460 B | 0644 |
|
config.info.ru | File | 1.48 KB | 0644 |
|
config.info.sk | File | 445 B | 0644 |
|
config.info.sv | File | 99 B | 0644 |
|
config.info.tr | File | 487 B | 0644 |
|
config.info.zh | File | 81 B | 0644 |
|
config.info.zh_TW | File | 60 B | 0644 |
|
config_info.pl | File | 264 B | 0755 |
|
defaultacl | File | 88 B | 0644 |
|
delete_servs.cgi | File | 836 B | 0755 |
|
edit_auto.cgi | File | 2.32 KB | 0755 |
|
edit_serv.cgi | File | 4.8 KB | 0755 |
|
find.cgi | File | 1.46 KB | 0755 |
|
index-json.cgi | File | 266 B | 0755 |
|
index.cgi | File | 5.76 KB | 0755 |
|
link.cgi | File | 7 KB | 0755 |
|
log_parser.pl | File | 843 B | 0755 |
|
login.cgi | File | 441 B | 0755 |
|
logout.cgi | File | 340 B | 0755 |
|
module.info | File | 178 B | 0644 |
|
module.info.af | File | 0 B | 0644 |
|
module.info.af.auto | File | 124 B | 0644 |
|
module.info.ar | File | 133 B | 0644 |
|
module.info.ar.auto | File | 23 B | 0644 |
|
module.info.be | File | 0 B | 0644 |
|
module.info.be.auto | File | 189 B | 0644 |
|
module.info.bg | File | 0 B | 0644 |
|
module.info.bg.auto | File | 190 B | 0644 |
|
module.info.ca | File | 120 B | 0644 |
|
module.info.ca.auto | File | 18 B | 0644 |
|
module.info.cs | File | 31 B | 0644 |
|
module.info.cs.auto | File | 92 B | 0644 |
|
module.info.da | File | 0 B | 0644 |
|
module.info.da.auto | File | 119 B | 0644 |
|
module.info.de | File | 117 B | 0644 |
|
module.info.de.auto | File | 15 B | 0644 |
|
module.info.el | File | 0 B | 0644 |
|
module.info.el.auto | File | 194 B | 0644 |
|
module.info.es | File | 37 B | 0644 |
|
module.info.es.auto | File | 109 B | 0644 |
|
module.info.eu | File | 0 B | 0644 |
|
module.info.eu.auto | File | 141 B | 0644 |
|
module.info.fa | File | 0 B | 0644 |
|
module.info.fa.auto | File | 193 B | 0644 |
|
module.info.fi | File | 0 B | 0644 |
|
module.info.fi.auto | File | 145 B | 0644 |
|
module.info.fr | File | 34 B | 0644 |
|
module.info.fr.auto | File | 102 B | 0644 |
|
module.info.he | File | 0 B | 0644 |
|
module.info.he.auto | File | 141 B | 0644 |
|
module.info.hr | File | 0 B | 0644 |
|
module.info.hr.auto | File | 141 B | 0644 |
|
module.info.hu | File | 25 B | 0644 |
|
module.info.hu.auto | File | 109 B | 0644 |
|
module.info.it | File | 33 B | 0644 |
|
module.info.it.auto | File | 99 B | 0644 |
|
module.info.ja | File | 141 B | 0644 |
|
module.info.ko | File | 32 B | 0644 |
|
module.info.ko.auto | File | 109 B | 0644 |
|
module.info.lt | File | 0 B | 0644 |
|
module.info.lt.auto | File | 151 B | 0644 |
|
module.info.lv | File | 0 B | 0644 |
|
module.info.lv.auto | File | 131 B | 0644 |
|
module.info.ms | File | 110 B | 0644 |
|
module.info.ms.auto | File | 16 B | 0644 |
|
module.info.mt | File | 0 B | 0644 |
|
module.info.mt.auto | File | 127 B | 0644 |
|
module.info.nl | File | 29 B | 0644 |
|
module.info.nl.auto | File | 97 B | 0644 |
|
module.info.no | File | 23 B | 0644 |
|
module.info.no.auto | File | 89 B | 0644 |
|
module.info.pl | File | 24 B | 0644 |
|
module.info.pl.auto | File | 95 B | 0644 |
|
module.info.pt | File | 36 B | 0644 |
|
module.info.pt.auto | File | 107 B | 0644 |
|
module.info.pt_BR | File | 40 B | 0644 |
|
module.info.pt_BR.auto | File | 113 B | 0644 |
|
module.info.ro | File | 0 B | 0644 |
|
module.info.ro.auto | File | 125 B | 0644 |
|
module.info.ru | File | 30 B | 0644 |
|
module.info.ru.auto | File | 152 B | 0644 |
|
module.info.sk | File | 31 B | 0644 |
|
module.info.sk.auto | File | 91 B | 0644 |
|
module.info.sl | File | 0 B | 0644 |
|
module.info.sl.auto | File | 133 B | 0644 |
|
module.info.sv | File | 27 B | 0644 |
|
module.info.sv.auto | File | 93 B | 0644 |
|
module.info.th | File | 0 B | 0644 |
|
module.info.th.auto | File | 285 B | 0644 |
|
module.info.tr | File | 36 B | 0644 |
|
module.info.tr.auto | File | 111 B | 0644 |
|
module.info.uk | File | 0 B | 0644 |
|
module.info.uk.auto | File | 192 B | 0644 |
|
module.info.ur | File | 0 B | 0644 |
|
module.info.ur.auto | File | 188 B | 0644 |
|
module.info.vi | File | 0 B | 0644 |
|
module.info.vi.auto | File | 163 B | 0644 |
|
module.info.zh | File | 30 B | 0644 |
|
module.info.zh.auto | File | 85 B | 0644 |
|
module.info.zh_TW | File | 34 B | 0644 |
|
module.info.zh_TW.auto | File | 91 B | 0644 |
|
prefs.info | File | 63 B | 0644 |
|
save_auto.cgi | File | 2.34 KB | 0755 |
|
save_serv.cgi | File | 3.31 KB | 0755 |
|
servers-lib.pl | File | 15.04 KB | 0755 |
|
uninstall.pl | File | 262 B | 0755 |
|