version 1.47, 2003/12/15 20:44:06
|
version 1.52, 2004/03/02 16:48:27
|
Line 173 sub display {
|
Line 173 sub display {
|
return '<tt>'.$fn.'</tt>'; |
return '<tt>'.$fn.'</tt>'; |
} |
} |
|
|
|
|
|
# see if the file is |
|
# a) published (return 0 if not) |
|
# b) if, so obsolete (return 0 if not) |
|
|
|
sub obsolete_unpub { |
|
my ($user,$domain,$construct)=@_; |
|
my $published=$construct; |
|
$published=~ |
|
s/^\/home\/$user\/public\_html\//\/home\/httpd\/html\/res\/$domain\/$user\//; |
|
if (-e $published) { |
|
if (&Apache::lonnet::metadata($published,'obsolete')) { |
|
return 1; |
|
} |
|
return 0; |
|
} else { |
|
return 1; |
|
} |
|
} |
|
|
|
|
|
|
=pod |
=pod |
|
|
=item exists($user, $domain, $file) |
=item exists($user, $domain, $file) |
Line 384 new filename relative to the current dir
|
Line 406 new filename relative to the current dir
|
=cut |
=cut |
|
|
sub Rename1 { |
sub Rename1 { |
my ($request, $user, $domain, $fn, $newfilename) = @_; |
my ($request, $user, $domain, $fn, $newfilename, $style) = @_; |
|
|
if(-e $fn) { |
if(-e $fn) { |
if($newfilename) { |
if($newfilename) { |
# is dest a dir |
# is dest a dir |
if (-d $newfilename) { |
if ($style eq 'move') { |
if ($fn =~ m|/([^/]*)$|) { $newfilename .= '/'.$1; } |
if (-d $newfilename) { |
|
if ($fn =~ m|/([^/]*)$|) { $newfilename .= '/'.$1; } |
|
} |
} |
} |
if ($newfilename =~ m|/[^\.]+$|) { |
if ($newfilename =~ m|/[^\.]+$|) { |
#no extension add on original extension |
#no extension add on original extension |
Line 414 sub Rename1 {
|
Line 438 sub Rename1 {
|
$request->print('<br /><a href="'.&url($fn).'">'.&mt('Cancel').'</a>'); |
$request->print('<br /><a href="'.&url($fn).'">'.&mt('Cancel').'</a>'); |
return; |
return; |
} |
} |
|
unless (&obsolete_unpub($user,$domain,$fn)) { |
|
$request->print('<h3>'.&mt('Cannot rename or move non-obsolete published file').'</h3>'. |
|
'<br /><a href="'.&url($fn).'">'.&mt('Cancel').'</a>'); |
|
return; |
|
} |
|
my $action; |
|
if ($style eq 'rename') { |
|
$action=&mt('Rename'); |
|
} else { |
|
$action=&mt('Move'); |
|
} |
$request->print('<input type="hidden" name="newfilename" value="'. |
$request->print('<input type="hidden" name="newfilename" value="'. |
$newfilename. |
$newfilename. |
'" /><p>'.&mt('Rename').' '.&display($fn). |
'" /><p>'.$action.' '.&display($fn). |
'</tt><br />to '.&display($newfilename).'?</p>'); |
'</tt><br />to '.&display($newfilename).'?</p>'); |
&CloseForm1($request, $fn); |
&CloseForm1($request, $fn); |
} else { |
} else { |
Line 459 sub Delete1 {
|
Line 494 sub Delete1 {
|
if( -e $fn) { |
if( -e $fn) { |
$request->print('<input type="hidden" name="newfilename" value="'. |
$request->print('<input type="hidden" name="newfilename" value="'. |
$fn.'"/>'); |
$fn.'"/>'); |
|
unless (&obsolete_unpub($user,$domain,$fn)) { |
|
$request->print('<h3>'.&mt('Cannot delete non-obsolete published file').'</h3>'. |
|
'<br /><a href="'.&url($fn).'">'.&mt('Cancel').'</a>'); |
|
return; |
|
} |
$request->print('<p>'.&mt('Delete').' '.&display($fn).'?</p>'); |
$request->print('<p>'.&mt('Delete').' '.&display($fn).'?</p>'); |
&CloseForm1($request, $fn); |
&CloseForm1($request, $fn); |
} else { |
} else { |
Line 567 causes the newdir operation to transitio
|
Line 607 causes the newdir operation to transitio
|
|
|
sub NewDir1 |
sub NewDir1 |
{ |
{ |
my ($request, $username, $domain, $fn, $newfilename) = @_; |
my ($request, $username, $domain, $fn, $newfilename, $mode) = @_; |
|
|
my $result=&exists($username,$domain,$newfilename); |
my $result=&exists($username,$domain,$newfilename); |
if ($result) { |
if ($result) { |
$request->print('<font color="red">'.$result.'</font></form>'); |
$request->print('<font color="red">'.$result.'</font></form>'); |
} else { |
} else { |
|
if ($mode eq 'testbank') { |
|
$request->print('<input type="hidden" name="callingmode" value="testbank">'); |
|
} elsif ($mode eq 'imsimport') { |
|
$request->print('<input type="hidden" name="callingmode" value="imsimport">'); |
|
} |
$request->print('<input type="hidden" name="newfilename" value="'. |
$request->print('<input type="hidden" name="newfilename" value="'. |
$newfilename.'" /><p>'.&mt('Make new directory').' '. |
$newfilename.'" /><p>'.&mt('Make new directory').' '. |
&display($newfilename).'?</p>'); |
&display($newfilename).'?</p>'); |
Line 705 sub phaseone {
|
Line 750 sub phaseone {
|
'<input type="hidden" name="action" value="'.$ENV{'form.action'}.'" />'); |
'<input type="hidden" name="action" value="'.$ENV{'form.action'}.'" />'); |
|
|
if ($ENV{'form.action'} eq 'rename') { |
if ($ENV{'form.action'} eq 'rename') { |
&Rename1($r, $uname, $udom, $fn, $newfilename); |
&Rename1($r, $uname, $udom, $fn, $newfilename, 'rename'); |
|
} elsif ($ENV{'form.action'} eq 'move') { |
|
&Rename1($r, $uname, $udom, $fn, $newfilename, 'move'); |
} elsif ($ENV{'form.action'} eq 'delete') { |
} elsif ($ENV{'form.action'} eq 'delete') { |
&Delete1($r, $uname, $udom, $fn); |
&Delete1($r, $uname, $udom, $fn); |
} elsif ($ENV{'form.action'} eq 'decompress') { |
} elsif ($ENV{'form.action'} eq 'decompress') { |
Line 717 sub phaseone {
|
Line 764 sub phaseone {
|
$r->print('<p>'.&mt('No new filename specified.').'</p></form>'); |
$r->print('<p>'.&mt('No new filename specified.').'</p></form>'); |
} |
} |
} elsif ($ENV{'form.action'} eq 'newdir') { |
} elsif ($ENV{'form.action'} eq 'newdir') { |
&NewDir1($r, $uname, $udom, $fn, $newfilename); |
my $mode = ''; |
|
if (exists($ENV{'form.callingmode'}) ) { |
|
$mode = $ENV{'form.callingmode'}; |
|
} |
|
&NewDir1($r, $uname, $udom, $fn, $newfilename, $mode); |
} elsif ($ENV{'form.action'} eq 'newfile' || |
} elsif ($ENV{'form.action'} eq 'newfile' || |
$ENV{'form.action'} eq 'newhtmlfile' || |
$ENV{'form.action'} eq 'newhtmlfile' || |
$ENV{'form.action'} eq 'newproblemfile' || |
$ENV{'form.action'} eq 'newproblemfile' || |
Line 858 sub Delete2 {
|
Line 909 sub Delete2 {
|
if(@files) { |
if(@files) { |
$request->print('<font color="red"> '.&mt('Error: Directory Non Empty').'</font>'); |
$request->print('<font color="red"> '.&mt('Error: Directory Non Empty').'</font>'); |
return 0; |
return 0; |
} |
} else { |
else { |
|
if(-e $filename) { |
if(-e $filename) { |
unless(rmdir($filename)) { |
unless(rmdir($filename)) { |
$request->print('<font color="red">'.&mt('Error').': '.$!.'</font>'); |
$request->print('<font color="red">'.&mt('Error').': '.$!.'</font>'); |
return 0; |
return 0; |
} |
} |
} |
} else { |
else { |
$request->print('<p> '.&mt('No such file').'. </p></form>'); |
$request->print('<p> '.&mt('No such file').'. </p></form'); |
|
return 0; |
return 0; |
} |
} |
|
|
} |
} |
|
} else { |
} |
|
else { |
|
if(-e $filename) { |
if(-e $filename) { |
unless(unlink($filename)) { |
unless(unlink($filename)) { |
$request->print('<font color="red">'.&mt('Error').': '.$!.'</font>'); |
$request->print('<font color="red">'.&mt('Error').': '.$!.'</font>'); |
return 0; |
return 0; |
} |
} |
} |
} else { |
else { |
$request->print('<p> '.&mt('No such file').'. </p></form>'); |
$request->print('<p> '.&mt('No such file').'. </p></form'); |
|
return 0; |
return 0; |
} |
} |
} |
} |
Line 1029 sub phasetwo {
|
Line 1074 sub phasetwo {
|
$main=$2; # Filename. |
$main=$2; # Filename. |
} |
} |
if($main=~m:\.(\w+)$:){ # Fixes problems with filenames with no extensions |
if($main=~m:\.(\w+)$:){ # Fixes problems with filenames with no extensions |
$main=$`; |
$main=$`; #This is what is before the match (.) so it's just the main filename, yea it's nasty |
$suffix=$1; |
$suffix=$1; #This is the actually filename extension if it exists |
} |
} |
my $dest; # On success this is where we'll go. |
my $dest; # On success this is where we'll go. |
|
|
Line 1095 sub phasetwo {
|
Line 1140 sub phasetwo {
|
} |
} |
$dest = $newdir."/" |
$dest = $newdir."/" |
} |
} |
$r->print('<h3><a href="'.&url($dest).'">'.&mt('Done').'</a></h3>'); |
if ( ($ENV{'form.action'} eq 'newdir') && ($ENV{'form.phase'} eq 'two') && ( ($ENV{'form.callingmode'} eq 'testbank') || ($ENV{'form.callingmode'} eq 'imsimport') ) ) { |
|
$r->print('<h3><a href="javascript:self.close()">'.&mt('Done').'</a></h3>'); |
|
} else { |
|
$r->print('<h3><a href="'.&url($dest).'">'.&mt('Done').'</a></h3>'); |
|
} |
} |
} |
|
|
sub handler { |
sub handler { |
Line 1160 sub handler {
|
Line 1209 sub handler {
|
} |
} |
|
|
|
|
$r->content_type('text/html'); |
&Apache::loncommon::content_type($r,'text/html'); |
$r->send_http_header; |
$r->send_http_header; |
|
|
$r->print('<html><head><title>LON-CAPA Construction Space</title></head>'); |
if ( ($ENV{'form.action'} eq 'newdir') && ($ENV{'form.phase'} eq 'two') && ( ($ENV{'form.callingmode'} eq 'testbank') || ($ENV{'form.callingmode'} eq 'imsimport') ) ) { |
|
my $newdirname = $ENV{'form.newfilename'}; |
$r->print(&Apache::loncommon::bodytag('Construction Space File Operation')); |
$r->print('<html><head><title>LON-CAPA Construction Space</title><script language="Javascript">'); |
|
$r->print(qq| |
|
function writeDone() { |
|
var winName = window.opener |
|
window.focus(); |
|
winName.document.dataForm.newdir.value = "$newdirname" |
|
setTimeout("self.close()",10000) |
|
} |
|
</script> |
|
</head>|); |
|
my $loaditem = 'onLoad="writeDone()"'; |
|
$r->print(&Apache::loncommon::bodytag('Construction Space File Operation','',$loaditem)); |
|
} else { |
|
$r->print('<html><head><title>LON-CAPA Construction Space</title></head>'); |
|
$r->print(&Apache::loncommon::bodytag('Construction Space File Operation')); |
|
} |
|
|
|
|
$r->print('<h3>'.&mt('Location').': '.&display($fn).'</h3>'); |
$r->print('<h3>'.&mt('Location').': '.&display($fn).'</h3>'); |
Line 1182 sub handler {
|
Line 1246 sub handler {
|
$r->print('<h3>'.&mt('Delete').'</h3>'); |
$r->print('<h3>'.&mt('Delete').'</h3>'); |
} elsif ($ENV{'form.action'} eq 'rename') { |
} elsif ($ENV{'form.action'} eq 'rename') { |
$r->print('<h3>'.&mt('Rename').'</h3>'); |
$r->print('<h3>'.&mt('Rename').'</h3>'); |
|
} elsif ($ENV{'form.action'} eq 'move') { |
|
$r->print('<h3>'.&mt('Move').'</h3>'); |
} elsif ($ENV{'form.action'} eq 'newdir') { |
} elsif ($ENV{'form.action'} eq 'newdir') { |
$r->print('<h3>'.&mt('New Directory').'</h3>'); |
$r->print('<h3>'.&mt('New Directory').'</h3>'); |
} elsif ($ENV{'form.action'} eq 'decompress') { |
} elsif ($ENV{'form.action'} eq 'decompress') { |