%} else {
% my $act = 'added';
% $act = 'updated' if ($attachnum);
+% $act = 'purged' if($attachnum and $purge);
% $act = 'undeleted' if($attachnum and $undelete);
% $act = 'deleted' if($attachnum and $delete);
-<% header('Attachment ' . $act ) %>
- <SCRIPT TYPE="text/javascript">
- window.top.location.reload();
- </SCRIPT>
- </BODY></HTML>
+<& /elements/popup-topreload.html, mt("Attachment $act") &>
% }
<%init>
or die "Illegal attachnum: ". $cgi->param('attachnum');
my $attachnum = $1;
-my $otaker = $FS::CurrentUser::CurrentUser->name;
-$otaker = $FS::CurrentUser::CurrentUser->username
- if ($otaker eq "User, Legacy");
+my $filename = $cgi->param('file');
+# strip directory names; thanks, IE7
+$filename =~ s!.*[\/\\]!!;
+
+my $curuser = $FS::CurrentUser::CurrentUser;
my $delete = $cgi->param('delete');
my $undelete = $cgi->param('undelete');
+my $purge = $cgi->param('purge');
my $new = new FS::cust_attachment ( {
attachnum => $attachnum,
custnum => $custnum,
_date => time,
- otaker => $otaker,
+ usernum => $curuser->usernum,
disabled => '',
});
my $old;
if(!$old) {
$error = "Attachnum '$attachnum' not found";
}
+ elsif($purge) { # do nothing
+ }
else {
map { $new->$_($old->$_) }
('_date', 'otaker', 'body', 'disabled');
- $new->filename($cgi->param('filename') || $old->filename);
+ $new->filename($filename || $old->filename);
$new->mime_type($cgi->param('mime_type') || $old->mime_type);
+ $new->title( scalar($cgi->param('title')) );
if($delete and not $old->disabled) {
$new->disabled(time);
}
}
else { # This is a new attachment, so require a file.
- my $filename = $cgi->param('file');
if($filename) {
$new->filename($filename);
- $new->mime_type($cgi->uploadInfo($filename)->{'Content-Type'});
+ # use the original filename here, not the stripped form
+ $new->mime_type(
+ $cgi->uploadInfo( scalar($cgi->param('file')) )->{'Content-Type'}
+ );
+ $new->title( scalar($cgi->param('title')) );
local $/;
my $fh = $cgi->upload('file');
$error = 'No file uploaded';
}
}
-my $user = $FS::CurrentUser::CurrentUser;
+my $action = 'Add';
+$action = 'Edit' if $attachnum;
+$action = 'Delete' if $attachnum and $delete;
+$action = 'Undelete' if $attachnum and $undelete;
+$action = 'Purge' if $attachnum and $purge;
-$error = 'access denied' unless $user->access_right(($old ? 'Edit' : 'Add') . ' attachment');
+$error = 'access denied' unless $curuser->access_right($action . ' attachment');
if(!$error) {
- if($old) {
+ if($old and $old->disabled and $purge) {
+ $error = $old->delete;
+ }
+ elsif($old) {
$error = $new->replace($old);
}
else {