--- loncom/publisher/loncfile.pm 2003/02/10 23:19:45 1.25
+++ loncom/publisher/loncfile.pm 2003/02/12 19:56:14 1.27
@@ -9,7 +9,7 @@
# and displays a page showing the results of the action.
#
#
-# $Id: loncfile.pm,v 1.25 2003/02/10 23:19:45 albertel Exp $
+# $Id: loncfile.pm,v 1.27 2003/02/12 19:56:14 albertel Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -501,6 +501,12 @@ sub Rename1 {
}
}
$request->print(&checksuffix($filename, $newfilename));
+ #renaming a dir, delete the trailing /
+ #remove last element for current dir
+ if ($filename =~ m|/$|) {
+ $filename =~ s|/$||;
+ $dir =~ s|/[^/]*$||;
+ }
my $return=&exists($user, $domain, $dir, $newfilename);
$request->print($return);
if ($return =~/^Error:/) {
@@ -764,6 +770,10 @@ sub NewFile1 {
if ($ENV{'form.action'} =~ /new(.+)file/) {
my $extension=$1;
if ($newfilename !~ /\Q.$extension\E$/) {
+ if ($newfilename =~ m|^[^\.]*\.([^\.]+)$|) {
+ #already has an extension strip it and add in expected one
+ $newfilename =~ s|.([^\.]+)$||;
+ }
$newfilename.=".$extension";
}
}
@@ -833,9 +843,11 @@ sub phaseone {
'');
if ($ENV{'form.action'} eq 'rename') {
-
- &Rename1($r, $fn, $uname, $udom, $dir);
-
+ if (!defined($dir)) {
+ $fn=~m:(.*)/:;
+ $dir=$1;
+ }
+ &Rename1($r, $fn, $uname, $udom, $dir);
} elsif ($ENV{'form.action'} eq 'delete') {
&Delete1($r, $uname, $fn);
@@ -909,8 +921,19 @@ sub Rename2 {
$newfile);
if(-e $oldfile) {
- unless(rename($oldfile,
- $directory.'/'.$newfile)) {
+ my $dest;
+
+ if ($oldfile =~ m|/$|) {
+ #renaming a dir
+ $oldfile =~ s|/$||;
+ $dest=$directory;
+ $dest=~s|(/)([^/]*)$|$1|;
+ $dest.='/'.$newfile;
+ } else {
+ $dest=$directory.'/'.$newfile;
+ }
+
+ unless(rename($oldfile,$dest)) {
$request->print('Error: '.$!.'');
return 0;
} else {}
@@ -1088,11 +1111,16 @@ sub phasetwo {
# Break down the file into it's component pieces.
- $fn=~/(.*)\/([^\/]+)\.(\w+)$/;
- my $dir=$1; # Directory path
- my $main=$2; # Filename.
- my $suffix=$3; # Extension.
-
+ my $dir; # Directory path
+ my $main; # Filename.
+ my $suffix; # Extension.
+
+ if ($fn=~m:(.*)/([^/]+)\.(\w+)$:) {
+ $dir=$1; # Directory path
+ $main=$2; # Filename.
+ $suffix=$3; # Extension.
+ }
+
my $dest; # On success this is where we'll go.
&Debug($r,
@@ -1112,12 +1140,19 @@ sub phasetwo {
if ($ENV{'form.action'} eq 'rename') { # Rename.
if($ENV{'form.newfilename'}) {
+ if (!defined($dir)) {
+ $fn=~m:^(.*)/:;
+ $dir=$1;
+ }
if(!&Rename2($r, $uname, $dir, $fn, $ENV{'form.newfilename'})) {
return;
}
# Prepend the directory to the new name to form the basis of the
# url of the new resource.
#
+ #renaming a dir
+ #remove last element for current dir
+ if ($fn =~ m|/$|) { $dir =~ s|/[^/]*$||; }
$dest = $dir."/".$ENV{'form.newfilename'};
}
} elsif ($ENV{'form.action'} eq 'delete') {