Diff for /loncom/publisher/loncfile.pm between versions 1.47 and 1.51

version 1.47, 2003/12/15 20:44:06 version 1.51, 2004/02/17 22:06:10
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 414  sub Rename1 { Line 436  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;
       }
     $request->print('<input type="hidden" name="newfilename" value="'.      $request->print('<input type="hidden" name="newfilename" value="'.
     $newfilename.      $newfilename.
     '" /><p>'.&mt('Rename').' '.&display($fn).      '" /><p>'.&mt('Rename').' '.&display($fn).
Line 459  sub Delete1 { Line 486  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 599  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 717  sub phaseone { Line 754  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 899  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 1064  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 1130  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 1199  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>');

Removed from v.1.47  
changed lines
  Added in v.1.51


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>