Diff for /loncom/publisher/lonretrieve.pm between versions 1.44 and 1.47

version 1.44, 2011/10/24 22:10:21 version 1.47, 2011/11/14 00:20:31
Line 108  use LONCAPA(); Line 108  use LONCAPA();
 # ------------------------------------ Interface for selecting previous version  # ------------------------------------ Interface for selecting previous version
 sub phaseone {  sub phaseone {
     my ($r,$fn,$uname,$udom)=@_;      my ($r,$fn,$uname,$udom)=@_;
     my $docroot=$r->dir_config('lonDocRoot');  
   
     my $urldir='/res/'.$udom.'/'.$uname.$fn;      my $urldir = "/res/$udom/$uname".$fn;
     $urldir=~s/\/[^\/]+$/\//;      my $resfn = $r->dir_config('lonDocRoot').$urldir;
   
     my $resfn=$docroot.'/res/'.$udom.'/'.$uname.$fn;      $urldir =~ s{[^/]+$}{};
     my $resdir=$resfn;      my $resdir = $r->dir_config('lonDocRoot').$urldir;
     $resdir=~s/\/[^\/]+$/\//;  
   
     my ($main,$suffix,$is_meta) = &get_file_info($fn);      my ($main,$suffix,$is_meta) = &get_file_info($fn);
           
     if (-e $resfn) {        if (-e $resfn) {  
  $r->print('<form action="/adm/retrieve" method="post">'.   $r->print('<form action="/adm/retrieve" method="post">'.
   '<input type="hidden" name="filename" value="/~'.$uname.$fn.'" />'.    '<input type="hidden" name="filename" value="/priv/'.$udom.'/'.$uname.$fn.'" />'.
   '<input type="hidden" name="phase" value="two" />'.    '<input type="hidden" name="phase" value="two" />'.
   &Apache::loncommon::start_data_table().    &Apache::loncommon::start_data_table().
   &Apache::loncommon::start_data_table_header_row().    &Apache::loncommon::start_data_table_header_row().
Line 162  sub phaseone { Line 160  sub phaseone {
  if ($is_meta   if ($is_meta
     || &Apache::loncommon::fileembstyle($suffix) eq 'ssi') {      || &Apache::loncommon::fileembstyle($suffix) eq 'ssi') {
     $r->print(      $r->print(
       '<td><a target="cat" href="/adm/diff?filename=/~'.        '<td><a target="cat" href="/adm/diff?filename=/priv/'.
       $uname.$fn.        $udom,'/'.$uname.$fn.
       '&amp;versiontwo=priv&amp;versionone='.$version.        '&amp;versiontwo=priv&amp;versionone='.$version.
       '">'.&mt('Diffs with Version').' '.$version.        '">'.&mt('Diffs with Version').' '.$version.
       '</a></td>');        '</a></td>');
Line 185  sub phaseone { Line 183  sub phaseone {
  if ($is_meta    if ($is_meta 
     || &Apache::loncommon::fileembstyle($suffix) eq 'ssi') {      || &Apache::loncommon::fileembstyle($suffix) eq 'ssi') {
     $r->print(      $r->print(
       '<td><a target="cat" href="/adm/diff?filename=/~'.        '<td><a target="cat" href="/adm/diff?filename=/priv/'.
       $uname.$fn.        $udom.'/'.$uname.$fn.
       '&amp;versiontwo=priv'.        '&amp;versiontwo=priv'.
       '">'.&mt('Diffs with current Version').'</a></td>');        '">'.&mt('Diffs with current Version').'</a></td>');
  }   }
Line 204  sub phaseone { Line 202  sub phaseone {
  $r->print('<p class="LC_warning">'.&mt('No previous versions published.').'</p>');   $r->print('<p class="LC_warning">'.&mt('No previous versions published.').'</p>');
     }      }
   
     my $dir =  &Apache::loncommon::authorspace()      my $dir =  &Apache::loncommon::authorspace($fn)
               .&File::Basename::dirname($fn)                .&File::Basename::dirname($fn)
               .'/';                .'/';
     $r->print(&Apache::lonhtmlcommon::start_funclist()      $r->print('<br />'
              .&Apache::lonhtmlcommon::add_item_funclist(               .&Apache::loncommon::head_subbox(
                   '<a href="/priv/'.$udom.'/'.$uname.$fn.'">'                    &Apache::lonhtmlcommon::start_funclist()
                  .&mt('Back to Resource')                   .&Apache::lonhtmlcommon::add_item_funclist(
                  .'</a>')                       '<a href="/priv/'.$udom.'/'.$uname.$fn.'">'
              .&Apache::lonhtmlcommon::add_item_funclist(                      .&mt('Back to Resource')
                   '<a href="'.$dir.'">'                      .'</a>')
                  .&mt('Back to Directory')                   .&Apache::lonhtmlcommon::add_item_funclist(
                  .'</a>')                       '<a href="'.$dir.'">'
              .&Apache::lonhtmlcommon::end_funclist()                      .&mt('Back to Directory')
                       .'</a>')
                    .&Apache::lonhtmlcommon::end_funclist()
                )
     );      );
 }  }
   
Line 233  sub phasetwo { Line 234  sub phasetwo {
  my ($main,$suffix,$is_meta) = &get_file_info($fn);   my ($main,$suffix,$is_meta) = &get_file_info($fn);
   
         my $logfile;          my $logfile;
         my $ctarget=$r->dir_config('lonDocRoot').'/priv/'.$udom.'/'.$uname.$fn;          my $ctarget=$r->dir_config('lonDocRoot')."/priv/$udom/$uname".$fn;
         my $vfn=$fn;          my $vfn=$fn;
         if ($version ne 'new') {          if ($version ne 'new') {
     $vfn=~s/\.(\Q$suffix\E)$/\.$version\.$1/;      $vfn=~s/\.(\Q$suffix\E)$/\.$version\.$1/;
         }          }
   
         my $csource=$r->dir_config('lonDocRoot').'/res/'.$udom.'/'.$uname.$vfn;          my $csource=$r->dir_config('lonDocRoot')."/res/$udom/$uname".$vfn;
   
  my $logname = $ctarget;   my $logname = $ctarget;
  if ($is_meta) { $logname =~ s/\.meta$//; }   if ($is_meta) { $logname =~ s/\.meta$//; }
Line 302  sub handler { Line 303  sub handler {
   
   if ($env{'form.filename'}) {    if ($env{'form.filename'}) {
       $fn=$env{'form.filename'};        $fn=$env{'form.filename'};
       $fn=~s/^https?\:\/\/[^\/]+//;        $fn =~ s{^https?\://[^/]+}{};
   } 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); 
Line 319  sub handler { Line 320  sub handler {
   my $uname;    my $uname;
   my $udom;    my $udom;
   
   ($uname,$udom)=    ($uname,$udom) = &Apache::loncacc::constructaccess($fn);
     &Apache::loncacc::constructaccess($fn,$r->dir_config('lonDefDomain'));    unless (($uname ne '') && ($udom ne '')) {
   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', 
Line 329  sub handler { Line 329  sub handler {
      return HTTP_NOT_ACCEPTABLE;       return HTTP_NOT_ACCEPTABLE;
   }    }
   
   $fn=~s{/~($LONCAPA::username_re)}{};  
   
   &Apache::loncommon::content_type($r,'text/html');    &Apache::loncommon::content_type($r,'text/html');
   $r->send_http_header;    $r->send_http_header;
   
Line 338  sub handler { Line 336  sub handler {
     &Apache::lonhtmlcommon::clear_breadcrumbs();      &Apache::lonhtmlcommon::clear_breadcrumbs();
     &Apache::lonhtmlcommon::add_breadcrumb({      &Apache::lonhtmlcommon::add_breadcrumb({
         'text'  => 'Construction Space',          'text'  => 'Construction Space',
         'href'  => &Apache::loncommon::authorspace(),          'href'  => &Apache::loncommon::authorspace($fn),
     });      });
     &Apache::lonhtmlcommon::add_breadcrumb({      &Apache::lonhtmlcommon::add_breadcrumb({
         'text'  => 'Retrieve previous version',          'text'  => 'Retrieve previous version',
         'href'  => '',          'href'  => '',
     });      });
   
       my $londocroot = $r->dir_config('lonDocRoot');
       my $trailfile = $fn;
       $trailfile =~ s{^/(priv/)}{$londocroot/$1};
   
   $r->print(&Apache::loncommon::start_page('Retrieve Published Resources')    $r->print(&Apache::loncommon::start_page('Retrieve Published Resources')
            .&Apache::lonhtmlcommon::breadcrumbs()             .&Apache::lonhtmlcommon::breadcrumbs()
            .&Apache::loncommon::head_subbox(             .&Apache::loncommon::head_subbox(
                 &Apache::loncommon::CSTR_pageheader()) # FIXME crumbs broken?                  &Apache::loncommon::CSTR_pageheader($trailfile))
     );      );
   
     $fn=~s{/priv/$LONCAPA::domain_re/$LONCAPA::username_re}{};
   
   $r->print('<p>'    $r->print('<p>'
            .&mt('Retrieve previous versions of [_1]'             .&mt('Retrieve previous versions of [_1]'
                    ,'<span class="LC_filename">'.$fn.'</span>')                     ,'<span class="LC_filename">'.$fn.'</span>')

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


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