Diff for /loncom/publisher/lonretrieve.pm between versions 1.26 and 1.30

version 1.26, 2005/01/05 17:38:27 version 1.30, 2006/04/06 22:15:19
Line 37  use Apache::Constants qw(:common :http : Line 37  use Apache::Constants qw(:common :http :
 use Apache::loncacc;  use Apache::loncacc;
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonlocal;  use Apache::lonlocal;
   use Apache::lonnet;
   
 # ------------------------------------ Interface for selecting previous version  # ------------------------------------ Interface for selecting previous version
 sub phaseone {  sub phaseone {
Line 62  sub phaseone { Line 63  sub phaseone {
       &mt('Version').'</th>'.        &mt('Version').'</th>'.
               '<th>'.&mt('Published on ...').'</th>'.                '<th>'.&mt('Published on ...').'</th>'.
               '<th>'.&mt('Metadata').'</th></tr>');                '<th>'.&mt('Metadata').'</th></tr>');
     my $filename;  
     opendir(DIR,$resdir);      opendir(DIR,$resdir);
     while ($filename=readdir(DIR)) {      my @files = grep(/^\Q$main\E\.(\d+)\.\Q$suffix\E$/,readdir(DIR));
       @files = sort {
    my ($aver) = ($a=~/^\Q$main\E\.(\d+)\.\Q$suffix\E$/);
    my ($bver) = ($b=~/^\Q$main\E\.(\d+)\.\Q$suffix\E$/);
    return $aver <=> $bver;
       } (@files);
       closedir(DIR);
   
       foreach my $filename (@files) {
         if ($filename=~/^\Q$main\E\.(\d+)\.\Q$suffix\E$/) {          if ($filename=~/^\Q$main\E\.(\d+)\.\Q$suffix\E$/) {
    my $version=$1;     my $version=$1;
            my $rmtime=&Apache::lonnet::metadata($resdir.'/'.$filename,'lastrevisiondate');             my $rmtime=&Apache::lonnet::metadata($resdir.'/'.$filename,'lastrevisiondate');
Line 86  sub phaseone { Line 95  sub phaseone {
     closedir(DIR);      closedir(DIR);
     my $rmtime=&Apache::lonnet::metadata($resfn,'lastrevisiondate');      my $rmtime=&Apache::lonnet::metadata($resfn,'lastrevisiondate');
     $r->print('<tr><td><input type=radio name=version value="new"></td>'.      $r->print('<tr><td><input type=radio name=version value="new"></td>'.
               '<th>'.&mt('Currently public version').'</th><td>'.localtime($rmtime).                '<th>'.&mt('Currently published version').'</th><td>'.localtime($rmtime).
            '</td><td><a href="'.$urldir.$main.'.'.$suffix.'.meta" target=cat>'.             '</td><td><a href="'.$urldir.$main.'.'.$suffix.'.meta" target=cat>'.
               &mt('Metadata current version').'</a>');                           &mt('Metadata current version').'</a>');           
            if (&Apache::loncommon::fileembstyle($suffix) eq 'ssi') {             if (&Apache::loncommon::fileembstyle($suffix) eq 'ssi') {
Line 110  sub phaseone { Line 119  sub phaseone {
 # ---------------------------------- Interface for presenting specified version  # ---------------------------------- Interface for presenting specified version
 sub phasetwo {  sub phasetwo {
     my ($r,$fn,$uname,$udom)=@_;      my ($r,$fn,$uname,$udom)=@_;
     if ($ENV{'form.version'}) {      if ($env{'form.version'}) {
         my $version=$ENV{'form.version'};          my $version=$env{'form.version'};
  if ($version eq 'new') {   if ($version eq 'new') {
     $r->print('<h3>'.&mt('Retrieving current (most recent) version').'</h3>');      $r->print('<h3>'.&mt('Retrieving current (most recent) version').'</h3>');
         } else {          } else {
Line 162  sub handler { Line 171  sub handler {
   &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},    &Apache::loncommon::get_unprocessed_cgi($ENV{'QUERY_STRING'},
   ['filename']);    ['filename']);
   
   if ($ENV{'form.filename'}) {    if ($env{'form.filename'}) {
       $fn=$ENV{'form.filename'};        $fn=$env{'form.filename'};
       $fn=~s/^http\:\/\/[^\/]+//;        $fn=~s/^http\:\/\/[^\/]+//;
   } else {    } else {
      $r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}.       $r->log_reason($env{'user.name'}.' at '.$env{'user.domain'}.
          ' unspecified filename for retrieval', $r->filename);            ' unspecified filename for retrieval', $r->filename); 
      return HTTP_NOT_FOUND;       return HTTP_NOT_FOUND;
   }    }
   
   unless ($fn) {     unless ($fn) { 
      $r->log_reason($ENV{'user.name'}.' at '.$ENV{'user.domain'}.       $r->log_reason($env{'user.name'}.' at '.$env{'user.domain'}.
          ' trying to retrieve non-existing file', $r->filename);            ' trying to retrieve non-existing file', $r->filename); 
      return HTTP_NOT_FOUND;       return HTTP_NOT_FOUND;
   }     } 
Line 185  sub handler { Line 194  sub handler {
     &Apache::loncacc::constructaccess($fn,$r->dir_config('lonDefDomain'));      &Apache::loncacc::constructaccess($fn,$r->dir_config('lonDefDomain'));
   unless (($uname) && ($udom)) {    unless (($uname) && ($udom)) {
      $r->log_reason($uname.' at '.$udom.       $r->log_reason($uname.' at '.$udom.
          ' trying to publish file '.$ENV{'form.filename'}.           ' trying to publish file '.$env{'form.filename'}.
          ' ('.$fn.') - not authorized',            ' ('.$fn.') - not authorized', 
          $r->filename);            $r->filename); 
      return HTTP_NOT_ACCEPTABLE;       return HTTP_NOT_ACCEPTABLE;
Line 196  sub handler { Line 205  sub handler {
   &Apache::loncommon::content_type($r,'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>');    $r->print(&Apache::loncommon::start_page('Retrieve Published Resources'));
   
   $r->print(&Apache::loncommon::bodytag('Retrieve Published Resources'));  
   
       
   $r->print('<h1>'.&mt('Retrieve previous versions of').' <tt>'.$fn.'</tt></h1>');    $r->print('<h1>'.&mt('Retrieve previous versions of').' <tt>'.$fn.'</tt></h1>');
       
   if (($uname ne $ENV{'user.name'}) || ($udom ne $ENV{'user.domain'})) {    if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
           $r->print('<h3><font color=red>'.&mt('Co-Author').': '.$uname.            $r->print('<h3><font color=red>'.&mt('Co-Author').': '.$uname.
     &mt(' at ').$udom.      &mt(' at ').$udom.
                '</font></h3>');                 '</font></h3>');
   }    }
   
   
   if ($ENV{'form.phase'} eq 'two') {    if ($env{'form.phase'} eq 'two') {
       &phasetwo($r,$fn,$uname,$udom);        &phasetwo($r,$fn,$uname,$udom);
   } else {    } else {
       &phaseone($r,$fn,$uname,$udom);        &phaseone($r,$fn,$uname,$udom);
   }    }
   
   $r->print('</body></html>');    $r->print(&Apache::loncommon::end_page());
   return OK;      return OK;  
 }  }
   

Removed from v.1.26  
changed lines
  Added in v.1.30


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