$form = 0;
# List quotas
-&ui_print_header(undef, $text{'lusers_title'}, "", "list_users");
+&ui_print_header(&text('lusers_qoutas', $f),
+ $text{'lusers_title'}, "", "list_users");
+# Build and show tabs
+$prog = "list_users.cgi?dir=".&urlize($f);
+@tabs = ( [ 'list', $text{'lusers_tablist'}, $prog."&mode=list" ] );
+if ($access{'default'}) {
+ push(@tabs, [ 'default', $text{'lusers_tabdefault'},
+ $prog."&mode=default" ]);
+ }
+if ($access{'email'} && &foreign_check("cron") && &foreign_check("mailboxes")) {
+ push(@tabs, [ 'email', $text{'lusers_tabemail'},
+ $prog."&mode=email" ]);
+ }
+print &ui_tabs_start(\@tabs, "mode", $in{'mode'} || 'list', 1);
+
+# Build user list links
+@ulinks = ( );
+if ($access{'ugrace'}) {
+ push(@ulinks, "<a href='user_grace_form.cgi?filesys=".&urlize($f).
+ "'>$text{'lusers_egrace'}</a>");
+ }
+push(@ulinks, "<a href='check_quotas.cgi?filesys=".&urlize($f).
+ "&source=user'>$text{'lusers_check'}</a>");
+
+# Users list, in a tab
+print &ui_tabs_start_tab("mode", "list");
$n = &filesystem_users($f);
$bsize = &block_size($f);
$fsbsize = &block_size($f, 1);
if ($n > $config{'display_max'} && !$access{'ro'}) {
print "<b>", &text('lusers_toomany', $f), "</b><br>\n";
+ print &ui_links_row(\@ulinks);
}
elsif ($n) {
# no threshold (default) if <= 0% and >=101%
my $threshold_pc = $config{'threshold_pc'} || 101;
$threshold_pc = 101 if $threshold_pc < 1 or $threshold_pc > 101;
- print &ui_subheading(&text('lusers_qoutas', $f));
- &show_buttons();
if (!$access{'ro'}) {
print &ui_form_start("edit_user_mass.cgi", "post");
print &ui_hidden('dir', $f),"\n";
# Generate select links
@links = ( &select_all_link("d", $form),
- &select_invert_link("d", $form) );
+ &select_invert_link("d", $form),
+ @ulinks );
if (!$access{'ro'}) {
print &ui_links_row(\@links);
}
}
else {
print "<b>",&text('lusers_noquota', $f),"</b><br>\n";
+ print &ui_links_row(\@ulinks);
}
-&show_buttons();
+
+# Form to edit any user
+if (!$access{'ro'}) {
+ print &ui_form_start("edit_user_quota.cgi");
+ print &ui_hidden("filesys", $f);
+ print &ui_hidden("source", 0);
+ print &ui_submit($text{'lusers_equota'});
+ print &ui_user_textbox("user");
+ print &ui_form_end();
+ }
+
+print &ui_tabs_end_tab("mode", "list");
# Show form for setting default quotas for new users
if ($access{'default'}) {
- print &ui_hr();
- print &text('lusers_info', $text{'lusers_useradmin'});
- print "<p>\n";
+ print &ui_tabs_start_tab("mode", "default");
+ print &text('lusers_info', $text{'lusers_useradmin'}),"<p>\n";
@dquot = split(/\s+/, $config{"sync_$f"});
- print "<form action=save_sync.cgi>\n";
- print "<input type=hidden name=filesys value=\"$f\">\n";
- print "<table width=100% border> <tr $tb>\n";
- print "<td colspan=2><b>$text{'lusers_newuser'}</b></td> </tr> <tr $cb>\n";
-
- print "<td width=50%><table><tr>\n";
- print "<td><b>$text{'lusers_sblimit'}</b></td> <td>\n";
- "a_input("sblocks", $dquot[0], $bsize);
- print "</td> </tr><tr> <td><b>$text{'lusers_hblimit'}</b></td> <td>\n";
- "a_input("hblocks", $dquot[1], $bsize);
- print "</td> </tr></table></td>\n";
-
- print "<td width=50%><table><tr>\n";
- print "<td><b>$text{'lusers_sflimit'}</b></td> <td>\n";
- "a_input("sfiles", $dquot[2]);
- print "</td> </tr><tr> <td><b>$text{'lusers_hflimit'}</b></td> <td>\n";
- "a_input("hfiles", $dquot[3]);
- print "</td> </tr></table></td>\n";
- print "</tr> </table>\n";
- print "<input type=submit value=$text{'lusers_apply'}></form>\n";
+ print &ui_form_start("save_sync.cgi");
+ print &ui_hidden("filesys", $f);
+ print &ui_table_start($text{'lusers_newuser'}, "width=100%", 4);
+
+ # Default block limits
+ print &ui_table_row($text{'lusers_sblimit'},
+ "a_input("sblocks", $dquot[0], $bsize));
+ print &ui_table_row($text{'lusers_hblimit'},
+ "a_input("hblocks", $dquot[1], $bsize));
+
+ # Default file limits
+ print &ui_table_row($text{'lusers_sflimit'},
+ "a_input("sfiles", $dquot[2]));
+ print &ui_table_row($text{'lusers_hflimit'},
+ "a_input("hfiles", $dquot[3]));
+
+ print &ui_table_end();
+ print &ui_form_end([ [ undef, $text{'lusers_apply'} ] ]);
+
+ print &ui_tabs_end_tab("mode", "default");
}
# Show form for email notifications
if ($access{'email'} && &foreign_check("cron") &&
&foreign_check("mailboxes")) {
- print &ui_hr();
+ print &ui_tabs_start_tab("mode", "email");
+
print &ui_form_start("save_email.cgi");
print &ui_hidden("filesys", $f);
print &ui_table_start($text{'lusers_emailheader'}, "width=100%", 4);
print &ui_table_end();
print &ui_form_end([ [ 'save', $text{'lusers_apply'} ] ]);
- }
-&ui_print_footer("", $text{'lusers_return'});
-
-# show_buttons(form)
-sub show_buttons
-{
-print "<table width=100%><tr>\n";
-if (!$access{'ro'}) {
- print "<form action=edit_user_quota.cgi>\n";
- print "<input type=hidden name=filesys value=\"$f\">\n";
- print "<input type=hidden name=source value=0>\n";
- print "<td align=left width=33%>\n";
- print "<input type=submit value=\"$text{'lusers_equota'}\">\n";
- print "<input name=user size=8> ",
- &user_chooser_button("user", 0, $form),"</td></form>\n";
- $form++;
+ print &ui_tabs_end_tab("mode", "email");
}
-else { print "<td width=33%></td>\n"; }
-if ($access{'ugrace'}) {
- print "<form action=user_grace_form.cgi>\n";
- print "<input type=hidden name=filesys value=\"$f\">\n";
- print "<td align=center width=33%>\n";
- print "<input type=submit value=\"$text{'lusers_egrace'}\">\n";
- print "</td></form>\n";
- $form++;
- }
-else { print "<td width=33%></td>\n"; }
-
-print "<form action=check_quotas.cgi>\n";
-print "<input type=hidden name=filesys value=\"$f\">\n";
-print "<input type=hidden name=source value=user>\n";
-print "<td align=right width=33%><input type=submit value=\"$text{'lusers_check'}\">\n";
-print "</td></form> </tr></table>\n";
-$form++;
-}
+print &ui_tabs_end(1);
+
+&ui_print_footer("", $text{'lusers_return'});
print "$text{'ugracef_info'}<p>\n";
@gr = &get_user_grace($in{'filesys'});
-print "<form action=user_grace_save.cgi>\n";
-print "<input type=hidden name=filesys value=\"$in{'filesys'}\">\n";
-print "<table border width=100%>\n";
-print "<tr $tb> <td colspan=2><b>",&text('ugracef_graces', $in{'filesys'}),"</b></td></tr>\n";
-
-print "<tr $cb> <td width=20%><b>$text{'ugracef_block'}</b></td> <td>\n";
+print &ui_form_start("user_grace_save.cgi");
+print &ui_hidden("filesys", $in{'filesys'});
+print &ui_table_start(&text('ugracef_graces', $in{'filesys'}),
+ "width=100%", 4);
+
+# Block grace time
+$bfield = &ui_textbox("btime", $gr[0], 6)." ".
+ &select_units("bunits", $gr[1]);
if (&default_grace()) {
- printf "<input type=radio name=bdef value=1 %s> $text{'default'}\n",
- $gr[0] ? "" : "checked";
- printf "<input type=radio name=bdef value=0 %s>\n",
- $gr[0] ? "checked" : "";
+ $bfield = &ui_radio("bdef", $gr[0] ? 0 : 1,
+ [ [ 1, $text{'default'} ],
+ [ 0, $bfield ] ]);
}
-print "<input name=btime size=6 value=\"$gr[0]\">";
-&select_units("bunits", $gr[1]);
-print "</td> </tr>\n";
+print &ui_table_row($text{'ugracef_block'}, $bfield);
-print "<tr $cb> <td width=20%><b>$text{'ugracef_file'}</b></td> <td>\n";
+# Files grace time
+$ffield = &ui_textbox("ftime", $gr[2], 6)." ".
+ &select_units("funits", $gr[3]);
if (&default_grace()) {
- printf "<input type=radio name=fdef value=1 %s> $text{'default'}\n",
- $gr[2] ? "" : "checked";
- printf "<input type=radio name=fdef value=0 %s>\n",
- $gr[2] ? "checked" : "";
+ $ffield = &ui_radio("fdef", $gr[2] ? 0 : 1,
+ [ [ 1, $text{'default'} ],
+ [ 0, $ffield ] ]);
}
-print "<input name=ftime size=6 value=\"$gr[2]\">";
-&select_units("funits", $gr[3]);
-print "</td> </tr>\n";
+print &ui_table_row($text{'ugracef_file'}, $ffield);
-print "</table>\n";
-print "<input type=submit value=$text{'ugracef_update'}></form>\n";
+print &ui_table_end();
+print &ui_form_end([ [ undef, $text{'ugracef_update'} ] ]);
-&ui_print_footer("list_users.cgi?dir=".&urlize($in{'filesys'}), $text{'ugracef_return'});
+&ui_print_footer("list_users.cgi?dir=".&urlize($in{'filesys'}),
+ $text{'ugracef_return'});
sub select_units
{
-@uarr = &grace_units();
-print "<select name=$_[0]>\n";
-for($i=0; $i<@uarr; $i++) {
- printf "<option value=$i %s>$uarr[$i]\n",
- $i == $_[1] ? "selected" : "";
- }
-print "</select>\n";
+local @uarr = &grace_units();
+return &ui_select($_[0], $_[1],
+ [ map { [ $_, $uarr[$_] ] } (0..$#uarr) ]);
}