mirror of
https://github.com/webmin/webmin.git
synced 2025-08-19 01:15:14 +00:00
99 lines
2.8 KiB
Perl
Executable File
99 lines
2.8 KiB
Perl
Executable File
#!/usr/local/bin/perl
|
|
# edit_receipe.cgi
|
|
# Display a form for editing or creating a procmail receipe
|
|
|
|
require './procmail-lib.pl';
|
|
&ReadParse();
|
|
if ($in{'new'}) {
|
|
&ui_print_header(undef, $text{'edit_title1'}, "");
|
|
$block++ if ($in{'block'});
|
|
}
|
|
else {
|
|
&ui_print_header(undef, $text{'edit_title2'}, "");
|
|
@conf = &get_procmailrc();
|
|
$rec = $conf[$in{'idx'}];
|
|
$block++ if (defined($rec->{'block'}));
|
|
}
|
|
|
|
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 &ui_table_row($text{'edit_block'},
|
|
&ui_textarea("bdata", $rec->{'block'}, $r, 80));
|
|
}
|
|
else {
|
|
# Simple action
|
|
($t, $a) = &parse_action($rec);
|
|
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));
|
|
}
|
|
|
|
# Action options
|
|
@grid = ( );
|
|
foreach $f (@known_flags) {
|
|
push(@grid, &ui_checkbox("flag", $f, $text{"edit_flag_$f"},
|
|
&indexof($f, @{$rec->{'flags'}}) >= 0));
|
|
}
|
|
print &ui_table_row(undef, &ui_grid_table(\@grid, 2, 100), 2);
|
|
|
|
# Lock file
|
|
$ldef = $rec->{'lockfile'} ? 0 :
|
|
defined($rec->{'lockfile'}) ? 2 : 1;
|
|
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 &ui_table_end();
|
|
|
|
# Show conditions section
|
|
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'}}, [ '-' ], [ '-' ] ) {
|
|
$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++;
|
|
}
|
|
$ctable .= &ui_columns_end();
|
|
print &ui_table_row(undef, $ctable, 2);
|
|
print &ui_table_end();
|
|
|
|
# Show save buttons
|
|
if ($in{'new'}) {
|
|
print &ui_form_end([ [ undef, $text{'create'} ] ]);
|
|
}
|
|
else {
|
|
print &ui_form_end([ [ undef, $text{'save'} ],
|
|
[ 'delete', $text{'delete'} ] ]);
|
|
}
|
|
|
|
&ui_print_footer("", $text{'index_return'});
|
|
|