[# tag: ewok file edit page #] [! do { use File::Basename; use Ewok::Config; use Ewok::Authz qw(:common); use Ewok::File qw(restrictCheck); use Ewok::Util qw(:dir :error); use Ewok::Locker; } !] [- do { Execute({ inputfile => 'util.epl', import => 1 }); $req = shift; @errors = (); $web_file = $fdat{p}; ($web_dir, $fs_dir, $wd, $filename) = webfsdir($req, $web_file, { errors => \@errors }); $fs_file = "$fs_dir$filename"; $authz = authzGetUserHash($req, $fs_file); $meta = 0; $Config = get_config(); if ($filename !~ m/$Config->{EWOK_NONMETA_RE}/i) { $meta = 1; $meta = $fdat{meta} if exists $fdat{meta}; } $javascript = ! exists $req->{pref} || $req->{pref}->{javascript}; $rows = $req->{pref}->{edit_window_rows} || 25; $cols = $req->{pref}->{edit_window_columns} || 80; } -] [$ if ($javascript) $] [$ endif $] ewok: edit [+ $web_file +] [- do { if (! @errors) { if (! restrictCheck($req, 'edit', $fs_dir, [ $filename ], { errors => \@errors, web_dir => $web_dir, })) { # Errors in @errors } elsif ($filename !~ m/$Config->{EWOK_EDIT_RE}/ && $filename !~ m/$Config->{EWOK_TEMPLATE_RE}/ && ! $Config->{EWOK_RESTRICTED_OBJECTS}->{$filename}) { info("Error: cannot edit '$filename'.", \@errors);; } elsif (($filename =~ m/$Config->{EWOK_EDIT_RE}/ && ! $authz->{$EDIT_PRIV}) || ($filename =~ m/$Config->{EWOK_TEMPLATE_RE}/ && ! $authz->{$TMPL_PRIV})) { info("Error: insufficient privileges to edit '$filename'.", \@errors); } elsif (! -r $fs_file) { info("Error: cannot read '$filename'.", \@errors); } elsif (-l $fs_file) { info("Error: cannot edit '$filename' - it's a link (try editing the target).", \@errors); } else { my $l = Ewok::Locker->new(); $l->lock($fs_file, $req->{user}, { errors => \@errors, altfile => $web_file, op => 'edit' }); } } errors(\@errors) if @errors; } -] [$ if (! @errors) $]

Editing [+ $web_file +], status LOCKED.

Note: do NOT use your browser 'Back' key here or the lock on this file will not be removed properly. [#

#] [$ if ($meta) $] Use the 'Next', 'Save', or 'Cancel' buttons below.

[$ else $] Use the 'Save' or 'Cancel' buttons below.

[$ endif $] [- do { open TEXT,"<$fs_file"; { local $/ = undef; $text = ; } } -]
[# #] [$ if ($meta) $] [$ else $] [$ endif $] [$ endif $]