3 # Display a file for editing
5 require './custom-lib.pl';
7 $edit = &get_command($in{'id'}, $in{'idx'});
8 $edit->{'edit'} && &can_run_command($edit) || &error($text{'edit_ecannot'});
10 # Work out proper filename
11 $file = $edit->{'edit'};
13 # File is relative to user's home directory
14 @uinfo = getpwnam($remote_user);
15 $file = "$uinfo[7]/$file" if (@uinfo);
18 # Set environment variables for parameters
19 ($env, $export, $str, $displayfile) = &set_parameter_envs($edit, $file);
20 $displayfile = &html_escape($displayfile);
22 if ($edit->{'envs'} || @{$edit->{'args'}}) {
23 # Do environment variable substitution
24 chop($file = `echo "$file"`);
27 # Run any before-edit command
28 if ($edit->{'beforeedit'}) {
29 $out = &backquote_logged("($edit->{'beforeedit'}) 2>&1 </dev/null");
30 &error(&text('view_ebeforeedit', &html_escape($out))) if ($?);
33 # Show the editor form
34 &ui_print_header(undef, $text{'view_title'}, "");
36 $w = $config{'width'} || 80;
37 $h = $config{'height'} || 20;
38 print &ui_form_start("save.cgi", "form-data");
39 print &ui_table_start(&text('view_header', "<tt>$displayfile</tt>"), undef, 2);
40 foreach my $i (keys %in) {
41 print &ui_hidden($i, $in{$i}),"\n";
43 $data = &read_file_contents($file);
44 print &ui_table_row(undef, &ui_textarea("data", $data, $h, $w, $config{'wrap'}),
46 print &ui_table_end();
47 print &ui_form_end([ [ undef, $text{'save'} ] ]);
49 &ui_print_footer("", $text{'index_return'});