Work on UI cleanup
This commit is contained in:
@@ -11,7 +11,7 @@ $file = "$uinfo[7]/.fetchmailrc";
|
||||
@conf = grep { $_->{'poll'} } @conf;
|
||||
&ui_print_header(&text('user_header', "<tt>$in{'user'}</tt>"), $text{'user_title'}, "");
|
||||
|
||||
&show_polls(\@conf, $file, $in{'user'});
|
||||
print &show_polls(\@conf, $file, $in{'user'});
|
||||
|
||||
&ui_print_footer("", $text{'index_return'});
|
||||
|
||||
|
||||
+40
-20
@@ -266,42 +266,62 @@ return $out =~ /fetchmail\s+release\s+(\S+)/ ? $1 : undef;
|
||||
# show_polls(&polls, file, user)
|
||||
sub show_polls
|
||||
{
|
||||
if (@{$_[0]}) {
|
||||
print &ui_columns_start([ $text{'index_poll'},
|
||||
$text{'index_active'},
|
||||
$text{'index_proto'},
|
||||
$text{'index_users'} ], 100);
|
||||
foreach $p (@{$_[0]}) {
|
||||
local @cols;
|
||||
push(@cols, "<a href='edit_poll.cgi?file=$_[1]&".
|
||||
"idx=$p->{'index'}&user=$_[2]'>".
|
||||
&html_escape($p->{'poll'})."</a>");
|
||||
my ($polls, $file, $user) = @_;
|
||||
my $params = "file=".&urlize($file)."&user=".&urlize($user);
|
||||
my $rv = "";
|
||||
if (@$polls) {
|
||||
$rv .= &ui_columns_start([ $text{'index_poll'},
|
||||
$text{'index_active'},
|
||||
$text{'index_proto'},
|
||||
$text{'index_users'} ], 100);
|
||||
foreach my $p (@$polls) {
|
||||
my @cols;
|
||||
push(@cols, &ui_link("edit_poll.cgi?".$params.
|
||||
"&idx=$p->{'index'}",
|
||||
&html_escape($p->{'poll'})));
|
||||
push(@cols, $p->{'skip'} ?
|
||||
"<font color=#ff0000>$text{'no'}</font>" : $text{'yes'});
|
||||
push(@cols, $p->{'proto'} ? &html_escape(uc($p->{'proto'}))
|
||||
: $text{'default'});
|
||||
local $ulist;
|
||||
foreach $u (@{$p->{'users'}}) {
|
||||
my $ulist = "";
|
||||
foreach my $u (@{$p->{'users'}}) {
|
||||
$ulist .= sprintf "%s -> %s<br>\n",
|
||||
&html_escape($u->{'user'}),
|
||||
&html_escape(@{$u->{'is'}} ?
|
||||
join(" ", @{$u->{'is'}}) : $_[2]);
|
||||
}
|
||||
push(@cols, $ulist);
|
||||
print &ui_columns_row(\@cols);
|
||||
$rv .= &ui_columns_row(\@cols);
|
||||
}
|
||||
print &ui_columns_end();
|
||||
$rv .= &ui_columns_end();
|
||||
}
|
||||
local @links = (
|
||||
&ui_link("edit_poll.cgi?new=1&file=$_[1]&user=$_[2]",$text{'index_add'}),
|
||||
&ui_link("edit_global.cgi?file=$_[1]&user=$_[2]",$text{'index_global'})
|
||||
my @links = (
|
||||
&ui_link("edit_poll.cgi?new=1&".$params, $text{'index_add'}),
|
||||
&ui_link("edit_global.cgi?".$params, $text{'index_global'})
|
||||
);
|
||||
if (@{$_[0]}) {
|
||||
push(@links, &ui_link("check.cgi?file=$_[1]&user=$_[2]",$text{'index_run'}));
|
||||
if (@$polls) {
|
||||
push(@links, &ui_link("check.cgi?".$params, $text{'index_run'}));
|
||||
}
|
||||
print &ui_links_row(\@links);
|
||||
$rv .= &ui_links_row(\@links);
|
||||
return $rv;
|
||||
}
|
||||
|
||||
# is_fetchmail_running()
|
||||
# Returns the PID if fetchmail is running
|
||||
sub is_fetchmail_running
|
||||
{
|
||||
my @uinfo = getpwnam($config{'daemon_user'});
|
||||
foreach my $pf ($config{'pid_file'},
|
||||
"$uinfo[7]/.fetchmail.pid",
|
||||
"$uinfo[7]/.fetchmail") {
|
||||
if (open(PID, "<$pf") && ($line=<PID>) &&
|
||||
(($pid,$interval) = split(/\s+/, $line)) && $pid &&
|
||||
kill(0, $pid)) {
|
||||
return $pid;
|
||||
}
|
||||
}
|
||||
return undef;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
+27
-47
@@ -27,48 +27,33 @@ if ($config{'config_file'}) {
|
||||
@conf = grep { $_->{'poll'} } @conf;
|
||||
print "<b>",&text('index_file',
|
||||
"<tt>$config{'config_file'}</tt>"),"</b><p>\n";
|
||||
&show_polls(\@conf, $config{'config_file'}, $config{'daemon_user'});
|
||||
print &show_polls(\@conf, $config{'config_file'}, $config{'daemon_user'});
|
||||
|
||||
local @uinfo = getpwnam($config{'daemon_user'});
|
||||
print &ui_hr();
|
||||
print "<table width=100%>\n";
|
||||
print &ui_buttons_start();
|
||||
|
||||
if (&foreign_installed("cron") && $access{'cron'}) {
|
||||
# Show button to manage cron job
|
||||
print "<form action=edit_cron.cgi>\n";
|
||||
print "<tr> <td><input type=submit ",
|
||||
"value='$text{'index_cron'}'></td>\n";
|
||||
print "<td>$text{'index_crondesc'}</td> </tr></form>\n";
|
||||
print &ui_buttons_row("edit_cron.cgi", $text{'index_cron'},
|
||||
$text{'index_crondesc'});
|
||||
}
|
||||
|
||||
# Show the fetchmail daemon form
|
||||
foreach $pf ($config{'pid_file'},
|
||||
"$uinfo[7]/.fetchmail.pid", "$uinfo[7]/.fetchmail") {
|
||||
if (open(PID, "<$pf") && ($line=<PID>) &&
|
||||
(($pid,$interval) = split(/\s+/, $line)) && $pid &&
|
||||
kill(0, $pid)) {
|
||||
$running++;
|
||||
last;
|
||||
}
|
||||
}
|
||||
print "<tr><td>\n";
|
||||
if ($running) {
|
||||
if (&is_fetchmail_running()) {
|
||||
# daemon is running - offer to stop it
|
||||
print "<form action=stop.cgi>\n";
|
||||
print "<input type=submit value='$text{'index_stop'}'></td>\n";
|
||||
print "<td>",&text('index_stopmsg',
|
||||
"<tt>$config{'daemon_user'}</tt>",
|
||||
$interval),"</td>\n";
|
||||
print &ui_buttons_row("stop.cgi", $text{'index_stop'},
|
||||
&text('index_stopmsg',
|
||||
"<tt>$config{'daemon_user'}</tt>",
|
||||
$interval));
|
||||
}
|
||||
else {
|
||||
# daemon isn't running - offer to start it
|
||||
print "<form action=start.cgi>\n";
|
||||
print "<input type=submit value='$text{'index_start'}'></td>\n";
|
||||
print "<td>",&text('index_startmsg',
|
||||
"<input name=interval size=5 value='60'>",
|
||||
"<tt>$config{'daemon_user'}</tt>"),"</td>\n";
|
||||
print &ui_buttons_row("start.cgi", $text{'index_start'},
|
||||
&text('index_startmsg', &ui_textbox("interval", 60, 5),
|
||||
"<tt>$config{'daemon_user'}</tt>"));
|
||||
}
|
||||
print "</td></tr></table></form>\n";
|
||||
print &ui_buttons_end();
|
||||
}
|
||||
else {
|
||||
# Build a list of users with fetchmail configurations
|
||||
@@ -105,28 +90,23 @@ else {
|
||||
elsif (!$config{'view_mode'}) {
|
||||
# Full details
|
||||
&show_button();
|
||||
print "<table border width=100%>\n";
|
||||
print "<tr $tb> <td><b>$text{'index_user'}</b></td> <td><b>$text{'index_conf'}</b></td> </tr>\n";
|
||||
print &ui_columns_start([ $text{'index_user'}, $text{'index_conf'} ], 100);
|
||||
foreach $u (@users) {
|
||||
print "<tr $cb>\n";
|
||||
print "<td valign=top><b>",&html_escape($u->[1]->[0]),
|
||||
"</b></td> <td>\n";
|
||||
&show_polls($u->[0], "$u->[1]->[7]/.fetchmailrc",
|
||||
$u->[1]->[0]);
|
||||
print "</td> </tr>\n";
|
||||
print &ui_columns_row([
|
||||
&html_escape($u->[1]->[0]),
|
||||
&show_polls($u->[0], "$u->[1]->[7]/.fetchmailrc",
|
||||
$u->[1]->[0]) ]);
|
||||
}
|
||||
print "</table>\n";
|
||||
print &ui_columns_end();
|
||||
}
|
||||
else {
|
||||
# Just show usernames
|
||||
print &ui_table_start($text{'index_header'}, "width=100%", 1);
|
||||
$i = 0;
|
||||
my @grid;
|
||||
foreach $u (@users) {
|
||||
print "<tr>\n" if ($i%4 == 0);
|
||||
print &ui_link("edit_user.cgi?user=$u->[1]->[0]","$u->[1]->[0]")."</td>\n";
|
||||
print "</tr>\n" if ($i%4 == 3);
|
||||
$i++;
|
||||
push(@grid, &ui_link("edit_user.cgi?user=$u->[1]->[0]","$u->[1]->[0]"));
|
||||
}
|
||||
print &ui_table_start($text{'index_header'}, "width=100%", 1);
|
||||
print &ui_table_row(undef, &ui_grid_table(\@grid, 4));
|
||||
print &ui_table_end();
|
||||
}
|
||||
&show_button() if (!$toomany);
|
||||
@@ -146,11 +126,11 @@ else {
|
||||
sub show_button
|
||||
{
|
||||
if ($access{'mode'} != 3 || !$doneheader) {
|
||||
print "<form action=edit_poll.cgi>\n";
|
||||
print "<input type=hidden name=new value=1>\n";
|
||||
print "<input type=submit value='$text{'index_ok'}'>\n";
|
||||
print &ui_form_start("edit_poll.cgi");
|
||||
print &ui_hidden("view", 1);
|
||||
print &ui_submit($text{'index_ok'});
|
||||
print &unix_user_input("user");
|
||||
print "</form>\n";
|
||||
print &ui_form_end();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user