Diff for /loncom/publisher/loncfile.pm between versions 1.115 and 1.119

version 1.115, 2012/06/04 19:23:41 version 1.119, 2013/06/04 22:20:16
Line 37 Line 37
   
 =head1 NAME  =head1 NAME
   
 Apache::loncfile - Construction space file management.  Apache::loncfile - Authoring space file management.
   
 =head1 SYNOPSIS  =head1 SYNOPSIS
     
Line 68  use File::Basename; Line 68  use File::Basename;
 use File::Copy;  use File::Copy;
 use HTML::Entities();  use HTML::Entities();
 use Apache::Constants qw(:common :http :methods);  use Apache::Constants qw(:common :http :methods);
 use Apache::loncacc;  
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::loncommon();  use Apache::loncommon();
 use Apache::lonlocal;  use Apache::lonlocal;
Line 102  my $r;    # Needs to be global for some Line 101  my $r;    # Needs to be global for some
 =cut  =cut
   
 sub Debug {  sub Debug {
     # Put out the indicated message butonly if DEBUG is true.      # Put out the indicated message but only if DEBUG is true.
     if ($DEBUG) {      if ($DEBUG) {
  my ($r,$message) = @_;   my ($r,$message) = @_;
  $r->log_reason($message);   $r->log_reason($message);
Line 110  sub Debug { Line 109  sub Debug {
 }  }
   
 sub done {  sub done {
    my ($url)=@_;      my ($url) = @_;
    my $done=&mt("Done");      return
    return(<<ENDDONE);         '<p>'
 <a href="$url">$done</a>        .&Apache::lonhtmlcommon::confirm_success(&mt("Done"))
 <script type="text/javascript">        .'<br /><a href="'.$url.'">'.&mt("Continue").'</a>'
 location.href="$url";        .'<script type="text/javascript">'
 </script>        .'location.href="'.$url.'";'
 ENDDONE        .'</script>'
         .'</p>';
 }  }
   
 =pod  =pod
Line 235  sub empty_directory { Line 235  sub empty_directory {
   
 =item exists($user, $domain, $file)  =item exists($user, $domain, $file)
   
    Determine if a resource file name has been published or exists     Determine if a resource filename has been published or exists
    in the construction space.     in the construction space.
   
  Parameters:   Parameters:
Line 368  sub cleanDest { Line 368  sub cleanDest {
  ($newpath,$error)=&relativeDest($fn,$newpath,$uname,$udom);   ($newpath,$error)=&relativeDest($fn,$newpath,$uname,$udom);
  if (! -d "$newpath") {   if (! -d "$newpath") {
     $request->print('<p><span class="LC_warning">'      $request->print('<p><span class="LC_warning">'
                            .&mt("You have requested to create file in directory [_1] which doesn't exist. The requested directory path has been removed from the requested file name."                             .&mt("You have requested to create file in directory [_1] which doesn't exist. The requested directory path has been removed from the requested filename."
                                ,&display($newpath))                                 ,&display($newpath))
                            .'</span></p>');                             .'</span></p>');
     $dest=~s|.*/||;      $dest=~s|.*/||;
Line 409  sub relativeDest { Line 409  sub relativeDest {
     while ($newfilename=~m{/\.\./}) {      while ($newfilename=~m{/\.\./}) {
  $newfilename=~ s{/[^/]+/\.\./}{/}g; #remove dir/..   $newfilename=~ s{/[^/]+/\.\./}{/}g; #remove dir/..
     }      }
     my ($authorname,$authordom)=&Apache::loncacc::constructaccess($newfilename);      my ($authorname,$authordom)=&Apache::lonnet::constructaccess($newfilename);
     unless (($authorname) && ($authordom)) {      unless (($authorname) && ($authordom)) {
        my $otherdir = &display($newfilename);         my $otherdir = &display($newfilename);
        $error = &mt('Access denied to [_1]',$otherdir);         $error = &mt('Access denied to [_1]',$otherdir);
Line 437  Parameters: Line 437  Parameters:
   
 sub CloseForm1 {  sub CloseForm1 {
     my ($request,  $fn) = @_;      my ($request,  $fn) = @_;
     $request->print('<p><input type="submit" value="'.&mt('Continue').'" /></p></form>');      $request->print('<input type="submit" value="'.&mt('Continue').'" /></form>');
     $request->print('<form action="'.&url($fn).      $request->print(' <form action="'.&url($fn).'" method="post">'.
     '" method="post"><p><input type="submit" value="'.&mt('Cancel').'" /></p></form>');                      '<input type="submit" value="'.&mt('Cancel').'" /></form>');
 }  }
   
   
Line 825  Parameters: Line 825  Parameters:
   
 =item   $domain   - Name of the domain of the user  =item   $domain   - Name of the domain of the user
   
 =item   $fn      - Source file name  =item   $fn      - Source filename
   
 =item   $newfilename  =item   $newfilename
                   - Name of the file to be created; no path information                    - Name of the file to be created; no path information
Line 838  Side Effects: Line 838  Side Effects:
 =item 2 new forms are displayed.  Clicking on the confirmation button  =item 2 new forms are displayed.  Clicking on the confirmation button
 causes the browser to attempt to load the specfied URL, allowing the  causes the browser to attempt to load the specfied URL, allowing the
 proper handler to take care of file creation. There is also a Cancel  proper handler to take care of file creation. There is also a Cancel
 button which returns you to the driectory listing you came from  button which returns you to the directory listing you came from
   
 =back  =back
   
Line 880  sub NewFile1 { Line 880  sub NewFile1 {
  '<form name="fileaction" action="/adm/cfile" method="post">'.   '<form name="fileaction" action="/adm/cfile" method="post">'.
                 '<input type="hidden" name="qualifiedfilename" value="'.$fn.'" />'.                  '<input type="hidden" name="qualifiedfilename" value="'.$fn.'" />'.
  '<input type="hidden" name="action" value="newfile" />'.   '<input type="hidden" name="action" value="newfile" />'.
         '<span class ="LC_nobreak">'.&mt('Enter a file name: ').'<input type="text" name="newfilename" value="Type Name Here" onfocus="if (this.value == '."'Type Name Here') this.value=''".'" />&nbsp;<input type="submit" value="Go" />'.          '<span class ="LC_nobreak">'.&mt('Enter a filename: ').'<input type="text" name="newfilename" value="Type Name Here" onfocus="if (this.value == '."'Type Name Here') this.value=''".'" />&nbsp;<input type="submit" value="Go" />'.
                 '</span></form></p>'.                  '</span></form></p>'.
                 '<p><form action="'.&url($fn).                  '<p><form action="'.&url($fn).
                 '" method="post"><p><input type="submit" value="'.&mt('Cancel').'" /></form></p>');                  '" method="post"><p><input type="submit" value="'.&mt('Cancel').'" /></form></p>');
Line 962  sub phaseone { Line 962  sub phaseone {
             $dirlist=$fn;               $dirlist=$fn; 
         }          }
         $r->print('<div class="LC_error">'.$error.'</div>'.          $r->print('<div class="LC_error">'.$error.'</div>'.
                   '<h3><a href="'.&url($dirlist).'">'.&mt('Return to Directory').                    '<p><a href="'.&url($dirlist).'">'.&mt('Return to Directory').
                   '</a></h3>');                    '</a></p>');
         return;          return;
     }      }
     $r->print('<form action="/adm/cfile" method="post">'.      $r->print('<form action="/adm/cfile" method="post">'.
Line 1099  sub Rename2 { Line 1099  sub Rename2 {
  }   }
     } else {      } else {
         $request->print(          $request->print(
             '<p>'              '<p class="LC_error">'
            .&mt('No such file: [_1]',             .&mt('No such file: [_1]',
                 &display($oldfile))                  &display($oldfile))
            .'</p></form>'             .'</p></form>'
Line 1387  sub phasetwo { Line 1387  sub phasetwo {
  $dest = $newdir."/";   $dest = $newdir."/";
     }      }
     if ( ($env{'form.action'} eq 'newdir') && ($env{'form.phase'} eq 'two') && ( ($env{'form.callingmode'} eq 'testbank') || ($env{'form.callingmode'} eq 'imsimport') ) ) {      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>');          $r->print(
               '<p>'
              .&Apache::lonhtmlcommon::confirm_success(&mt('Done'))
              .'<br /><a href="javascript:self.close()">'.&mt('Continue').'</a>'
              .'</p>'
           );
     } else {      } else {
         if ($env{'form.action'} eq 'rename') {          if ($env{'form.action'} eq 'rename') {
             $r->print('<h3><a href="'.&url($dest).'">'.&mt('Return to Directory').'</a></h3>');              $r->print(
             $r->print('<h3><a href="'.&url($dest_newname).'">'.$disp_newname.'</a></h3>');                   '<p>'.&Apache::lonhtmlcommon::confirm_success(&mt('Done')).'</p>'
                   .&Apache::lonhtmlcommon::actionbox(
                        ['<a href="'.&url($dest).'">'.&mt('Return to Directory').'</a>',
                         '<a href="'.&url($dest_newname).'">'.$disp_newname.'</a>']));
         } else {          } else {
     $r->print(&done(&url($dest)));      $r->print(&done(&url($dest)));
  }   }
Line 1442  sub handler { Line 1450  sub handler {
   
 # ----------------------------------------------------------- Start page output  # ----------------------------------------------------------- Start page output
   
     my ($uname,$udom) = &Apache::loncacc::constructaccess($fn);      my ($uname,$udom) = &Apache::lonnet::constructaccess($fn);
     &Debug($r,       &Debug($r, 
    "loncfile::handler constructaccess uname = $uname domain = $udom");     "loncfile::handler constructaccess uname = $uname domain = $udom");
     if (($uname eq '') || ($udom eq '')) {      if (($uname eq '') || ($udom eq '')) {
Line 1480  function writeDone() { Line 1488  function writeDone() {
     # Breadcrumbs      # Breadcrumbs
     &Apache::lonhtmlcommon::clear_breadcrumbs();      &Apache::lonhtmlcommon::clear_breadcrumbs();
     &Apache::lonhtmlcommon::add_breadcrumb({      &Apache::lonhtmlcommon::add_breadcrumb({
         'text'  => 'Construction Space',          'text'  => 'Authoring Space',
         'href'  => &Apache::loncommon::authorspace($fn),          'href'  => &Apache::loncommon::authorspace($fn),
     });      });
     &Apache::lonhtmlcommon::add_breadcrumb({      &Apache::lonhtmlcommon::add_breadcrumb({
         'text'  => 'File Operation',          'text'  => 'File Operation',
         'title' => 'Construction Space File Operation',          'title' => 'Authoring Space File Operation',
         'href'  => '',          'href'  => '',
     });      });
   
     $r->print(&Apache::loncommon::start_page('Construction Space File Operation',      $r->print(&Apache::loncommon::start_page('Authoring Space File Operation',
      $js,       $js,
      {'add_entries' => \%loaditem,})       {'add_entries' => \%loaditem,})
              .&Apache::lonhtmlcommon::breadcrumbs()               .&Apache::lonhtmlcommon::breadcrumbs()
Line 1497  function writeDone() { Line 1505  function writeDone() {
                   &Apache::loncommon::CSTR_pageheader($trailfile))                    &Apache::loncommon::CSTR_pageheader($trailfile))
     );      );
       
     $r->print('<h3>'.&mt('Location').': '.&display($fn).'</h3>');      $r->print('<p>'.&mt('Location').': '.&display($fn).'</p>');
       
     if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {      if (($uname ne $env{'user.name'}) || ($udom ne $env{'user.domain'})) {
         $r->print('<p class="LC_info">'          $r->print('<p class="LC_info">'
Line 1508  function writeDone() { Line 1516  function writeDone() {
   
   
     &Debug($r, "loncfile::handler Form action is $env{'form.action'} ");      &Debug($r, "loncfile::handler Form action is $env{'form.action'} ");
     if ($env{'form.action'} eq 'delete') {      my %action = &Apache::lonlocal::texthash(
       $r->print('<h3>'.&mt('Delete').'</h3>');          'delete'          => 'Delete',
     } elsif ($env{'form.action'} eq 'rename') {          'rename'          => 'Rename',
  $r->print('<h3>'.&mt('Rename').'</h3>');          'move'            => 'Move',
     } elsif ($env{'form.action'} eq 'move') {          'newdir'          => 'New Directory',
  $r->print('<h3>'.&mt('Move').'</h3>');          'decompress'      => 'Decompress',
     } elsif ($env{'form.action'} eq 'newdir') {          'copy'            => 'Copy',
  $r->print('<h3>'.&mt('New Directory').'</h3>');          'newfile'         => 'New Resource',
     } elsif ($env{'form.action'} eq 'decompress') {   'newhtmlfile'     => 'New Resource',
  $r->print('<h3>'.&mt('Decompress').'</h3>');   'newproblemfile'  => 'New Resource',
     } elsif ($env{'form.action'} eq 'copy') {   'newpagefile'     => 'New Resource',
  $r->print('<h3>'.&mt('Copy').'</h3>');   'newsequencefile' => 'New Resource',
     } elsif ($env{'form.action'} eq 'newfile' ||   'newrightsfile'   => 'New Resource',
      $env{'form.action'} eq 'newhtmlfile' ||   'newstyfile'      => 'New Resource',
      $env{'form.action'} eq 'newproblemfile' ||   'newtaskfile'     => 'New Resource',
      $env{'form.action'} eq 'newpagefile' ||          'newlibraryfile'  => 'New Resource',
      $env{'form.action'} eq 'newsequencefile' ||   'Select Action'   => 'New Resource',
      $env{'form.action'} eq 'newrightsfile' ||      );
      $env{'form.action'} eq 'newstyfile' ||      if ($action{$env{'form.action'}}) {
      $env{'form.action'} eq 'newtaskfile' ||          $r->print('<h2>'.$action{$env{'form.action'}}.'</h2>');
              $env{'form.action'} eq 'newlibraryfile' ||  
      $env{'form.action'} eq 'Select Action' ) {  
  $r->print('<h3>'.&mt('New Resource').'</h3>');  
     } else {      } else {
         $r->print('<p class="LC_error">'          $r->print('<p class="LC_error">'
                  .&mt('Unknown Action').' '.$env{'form.action'}                   .&mt('Unknown Action: [_1]',$env{'form.action'})
                  .'</p>'                   .'</p>'
                  .&Apache::loncommon::end_page()                   .&Apache::loncommon::end_page()
         );          );
  return OK;            return OK;
     }      }
   
     if ($env{'form.phase'} eq 'two') {      if ($env{'form.phase'} eq 'two') {
  &Debug($r, "loncfile::handler  entering phase2");   &Debug($r, "loncfile::handler  entering phase2");
  &phasetwo($r,$fn,$uname,$udom);   &phasetwo($r,$fn,$uname,$udom);

Removed from v.1.115  
changed lines
  Added in v.1.119


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