diff --git a/procmail/CHANGELOG b/procmail/CHANGELOG index 14cb8d861..54332e5ad 100644 --- a/procmail/CHANGELOG +++ b/procmail/CHANGELOG @@ -1,2 +1,4 @@ ---- Changes since 1.270 ---- Added a button for deleting multiple recipes at once. +---- Changes since 1.390 ---- +Converted all code to use the new Webmin UI library, for a more consistent look. diff --git a/procmail/edit_env.cgi b/procmail/edit_env.cgi index 63e2d9e8e..b6479ca9d 100755 --- a/procmail/edit_env.cgi +++ b/procmail/edit_env.cgi @@ -13,41 +13,29 @@ else { $env = $conf[$in{'idx'}]; } -print "
\n"; -print "\n"; -print "\n"; +print &ui_form_start("save_env.cgi"); +print &ui_hidden("new", $in{'new'}); +print &ui_hidden("idx", $in{'idx'}); +print &ui_table_start($text{'env_header'}, "width=100%", 2); -print "\n"; -print "\n"; -print "
$text{'env_header'}
\n"; +# Variable name +print &ui_table_row($text{'env_name'}, + &ui_textbox("name", $env->{'name'}, 60)); -print "\n"; -printf "\n", - &html_escape($env->{'name'}); - -print "\n"; -if ($env->{'value'} =~ /\n/) { - print "\n"; - } -else { - printf "\n", - &html_escape($env->{'value'}); - } - -print "
$text{'env_name'}
$text{'env_value'}
\n"; +# Value or values +print &ui_table_row($text{'env_value'}, + $env->{'value'} =~ /\n/ ? &ui_textarea("value", $env->{'value'}, 4, 60) + : &ui_textbox("value", $env->{'value'}, 60)); # Show save buttons -print "\n"; +print &ui_table_end(); if ($in{'new'}) { - print "\n"; + print &ui_form_end([ [ undef, $text{'create'} ] ]); } else { - print "\n"; - print "\n"; + print &ui_form_end([ [ undef, $text{'save'} ], + [ 'delete', $text{'delete'} ] ]); } -print "
\n"; &ui_print_footer("", $text{'index_return'}); diff --git a/procmail/edit_inc.cgi b/procmail/edit_inc.cgi index 3c08f25d5..dc09eca15 100755 --- a/procmail/edit_inc.cgi +++ b/procmail/edit_inc.cgi @@ -13,31 +13,25 @@ else { $inc = $conf[$in{'idx'}]; } -print "
\n"; -print "\n"; -print "\n"; +print &ui_form_start("save_inc.cgi"); +print &ui_hidden("new", $in{'new'}); +print &ui_hidden("idx", $in{'idx'}); +print &ui_table_start($text{'inc_header'}, "width=100%", 2); -print "\n"; -print "\n"; -print "
$text{'inc_header'}
\n"; - -print "\n"; -printf "\n", - &html_escape($inc->{'include'}), &file_chooser_button("inc"); - -print "
$text{'inc_inc'} %s
\n"; +# Included file +print &ui_table_row($text{'inc_inc'}, + &ui_textbox("inc", $inc->{'include'}, 60)." ". + &file_chooser_button("inc")); # Show save buttons -print "\n"; +print &ui_table_end(); if ($in{'new'}) { - print "\n"; + print &ui_form_end([ [ undef, $text{'create'} ] ]); } else { - print "\n"; - print "\n"; + print &ui_form_end([ [ undef, $text{'save'} ], + [ 'delete', $text{'delete'} ] ]); } -print "
\n"; &ui_print_footer("", $text{'index_return'}); diff --git a/procmail/edit_recipe.cgi b/procmail/edit_recipe.cgi index 4de5a96e0..c82ee8f80 100755 --- a/procmail/edit_recipe.cgi +++ b/procmail/edit_recipe.cgi @@ -15,111 +15,84 @@ else { $block++ if (defined($rec->{'block'})); } -print "
\n"; -print "\n"; -print "\n"; -print "\n"; -print "\n"; -print "\n"; - -# Show action section -print "\n"; -print "\n"; -print "
$text{'edit_header1'}
\n"; +print &ui_form_start("save_recipe.cgi"); +print &ui_hidden("new", $in{'new'}); +print &ui_hidden("idx", $in{'idx'}); +print &ui_hidden("before", $in{'before'}); +print &ui_hidden("after", $in{'after'}); +print &ui_hidden("block", $block); +print &ui_table_start($text{'edit_header1'}, "width=100%", 2); if ($block) { # Start of a conditional block local @lines = split(/\n/, $rec->{'block'}); local $r = @lines > 5 ? 10 : 5; - print "\n"; - print "\n"; + print &ui_table_row($text{'edit_block'}, + &ui_textarea("bdata", $rec->{'block'}, $r, 80)); } else { # Simple action ($t, $a) = &parse_action($rec); - print "\n"; - print "\n", - &html_escape($t == 6 ? $rec->{'action'} : $a); + print &ui_table_row($text{'edit_action'}, + &ui_select("amode", $t, + [ map { [ $_, $text{"edit_amode_".$_} ] } + (0, 2, 1, 3, 4, 6) ])." ". + &ui_textbox("action", $t == 6 ? $rec->{'action'} : $a, 40)); } -print "\n"; +print &ui_table_row(undef, &ui_grid_table(\@grid, 2, 100), 2); +# Lock file $ldef = $rec->{'lockfile'} ? 0 : defined($rec->{'lockfile'}) ? 2 : 1; -print "\n", - &html_escape($rec->{'lockfile'}); +print &ui_table_row($text{'edit_lockfile'}, + &ui_radio("lockfile_def", $ldef, + [ [ 1, $text{'edit_none'} ], + [ 2, $text{'default'} ], + [ 0, $text{'edit_lock'}." ". + &ui_textbox("lockfile", $rec->{'lockfile'}, 40) ] ])); -print "
$text{'edit_block'}
$text{'edit_action'}\n"; - printf "
\n"; -$i = 0; +# Action options +@grid = ( ); foreach $f (@known_flags) { - print "\n" if ($i%2 == 0); - print "\n"; - print "\n" if ($i%2 == 1); - $i++; + push(@grid, &ui_checkbox("flag", $f, $text{"edit_flag_$f"}, + &indexof($f, @{$rec->{'flags'}}) >= 0)); } -print "
\n"; - printf " %s\n", - $f, &indexof($f, @{$rec->{'flags'}}) >= 0 ? "checked" : "", - $text{"edit_flag_$f"}; - print "
$text{'edit_lockfile'} \n"; -printf " %s\n", - $ldef == 1 ? "checked" : "", $text{'edit_none'}; -printf " %s\n", - $ldef == 2 ? "checked" : "", $text{'default'}; -printf " %s\n", - $ldef == 0 ? "checked" : "", $text{'edit_lock'}; -printf "

\n"; +print &ui_table_end(); # Show conditions section -print "\n"; -print "\n"; -print "
$text{'edit_header2'}
\n"; - -print "$text{'edit_conddesc'}

\n"; +print &ui_table_start($text{'edit_header2'}, "width=100%", 2); +print &ui_table_row(undef, $text{'edit_conddesc'}, 2); +$ctable = &ui_columns_start([ $text{'edit_ctype'}, $text{'edit_cvalue'} ], 100); $i = 0; foreach $c (@{$rec->{'conds'}}, [ '-' ], [ '-' ] ) { - print "\n"; - printf "
\n", - &html_escape($c->[1]); + $ctable .= &ui_columns_row([ + &ui_select("cmode_$i", $c->[0], + [ [ '-', ' ' ], + [ '', $text{'edit_cmode_re'} ], + [ '!', $text{'edit_cmode_nre'} ], + [ '$', $text{'edit_cmode_shell'} ], + [ '?', $text{'edit_cmode_exit'} ], + [ '<', $text{'edit_cmode_lt'} ], + [ '>', $text{'edit_cmode_gt'} ] ]), + &ui_textbox("cond_$i", $c->[1], 60, 0, undef, + "style='width:100%'"), + ]); $i++; } - -print "

\n"; +$ctable .= &ui_columns_end(); +print &ui_table_row(undef, $ctable, 2); +print &ui_table_end(); # Show save buttons -print "\n"; if ($in{'new'}) { - print "\n"; + print &ui_form_end([ [ undef, $text{'create'} ] ]); } else { - print "\n"; - print "\n"; + print &ui_form_end([ [ undef, $text{'save'} ], + [ 'delete', $text{'delete'} ] ]); } -print "
\n"; &ui_print_footer("", $text{'index_return'}); diff --git a/procmail/lang/en b/procmail/lang/en index b9f7dda8b..76c9ae9d4 100644 --- a/procmail/lang/en +++ b/procmail/lang/en @@ -68,6 +68,8 @@ edit_cmode_gt=Mail is bigger than edit_conddesc=For the above action to be carried out, all the conditions below must match. If there are no conditions, the action will always be executed. edit_none=None edit_lock=Specific file +edit_ctype=Condition type +edit_cvalue=Regular expression or command save_err=Failed to save action save_eaction_0=Missing file to append to diff --git a/procmail/manual_form.cgi b/procmail/manual_form.cgi index ea3dbd939..8a96475c6 100755 --- a/procmail/manual_form.cgi +++ b/procmail/manual_form.cgi @@ -6,13 +6,12 @@ require './procmail-lib.pl'; &ui_print_header(undef, $text{'manual_title'}, ""); print &text('manual_desc', "$procmailrc"),"

\n"; -print "

\n"; -print "
\n"; -print "\n"; +print &ui_form_start("manual_save.cgi", "form-data"); +print &ui_table_start(undef, undef, 2); +$data = &read_file_contents($procmailrc); +print &ui_table_row(undef, &ui_textarea("data", $data, 20, 80), 2); +print &ui_table_end(); +print &ui_form_end([ [ undef, $text{'save'} ] ]); &ui_print_footer("", $text{'index_return'});