Work on UI cleanup

This commit is contained in:
Jamie Cameron
2024-03-13 21:57:23 -07:00
parent 0c0b04ffe0
commit ea00ff92a2
3 changed files with 68 additions and 68 deletions
+1 -1
View File
@@ -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
View File
@@ -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
View File
@@ -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();
}
}