Diff for /loncom/interface/londocs.pm between versions 1.479 and 1.480

version 1.479, 2012/03/28 12:58:42 version 1.480, 2012/04/05 15:22:39
Line 1120  sub process_file_upload { Line 1120  sub process_file_upload {
                     position   => $position,                      position   => $position,
                     phase      => $nextphase,                      phase      => $nextphase,
                     comment    => $comment,                      comment    => $comment,
                 );                   );
                   my ($destination,$dir_root) = &embedded_destination($coursenum,$coursedom);
                   my @current = &get_dir_list($url,$coursenum,$coursedom,$newidx); 
                 $$upload_output = $showupload.                  $$upload_output = $showupload.
                                   &Apache::loncommon::decompress_form($mimetype,                                    &Apache::loncommon::decompress_form($mimetype,
                                       $archiveurl,'/adm/coursedocs',$noextract,                                        $archiveurl,'/adm/coursedocs',$noextract,
                                       \%archiveitems);                                        \%archiveitems,\@current);
             }              }
         }          }
     }      }
     return $nextphase;      return $nextphase;
 }  }
   
   sub get_dir_list {
       my ($url,$coursenum,$coursedom,$newidx) = @_;
       my ($destination,$dir_root) = &embedded_destination();
       my ($dirlistref,$listerror) =  
           &Apache::lonnet::dirlist("$dir_root/$destination/$newidx",$coursedom,$coursenum,1);
       my @dir_lines;
       my $dirptr=16384;
       if (ref($dirlistref) eq 'ARRAY') {
           foreach my $dir_line (sort
                             {
                                 my ($afile)=split('&',$a,2);
                                 my ($bfile)=split('&',$b,2);
                                 return (lc($afile) cmp lc($bfile));
                             } (@{$dirlistref})) {
               my ($filename,$dom,undef,$testdir,undef,undef,undef,undef,$size,undef,$mtime,undef,undef,undef,$obs,undef)=split(/\&/,$dir_line,16);
               $filename =~ s/\s+$//;
               next if ($filename =~ /^\.\.?$/); 
               my $isdir = 0;
               if ($dirptr&$testdir) {
                   $isdir = 1;
               }
               push(@dir_lines, [$filename,$dom,$isdir,$size,$mtime,$obs]);
           }
       }
       return @dir_lines;
   }
   
 sub is_supplemental_title {  sub is_supplemental_title {
     my ($title) = @_;      my ($title) = @_;
     return scalar($title =~ m/^(\d+)___&&&___($match_username)___&&&___($match_domain)___&&&___(.*)$/);      return scalar($title =~ m/^(\d+)___&&&___($match_username)___&&&___($match_domain)___&&&___(.*)$/);
Line 2991  sub decompression_info { Line 3020  sub decompression_info {
     my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'};      my $docudom=$env{'course.'.$env{'request.course.id'}.'.domain'};
     my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'};      my $docuname=$env{'course.'.$env{'request.course.id'}.'.num'};
     my $container='sequence';      my $container='sequence';
     my $hiddenelem;      my ($pathitem,$hiddenelem);
       my @hiddens = ('newidx','comment','position');
     if ($env{'form.pagepath'}) {      if ($env{'form.pagepath'}) {
         $container='page';          $container='page';
         $hiddenelem = '<input type="hidden" name="pagepath" value="'.$env{'form.pagepath'}.'" />'."\n";          $pathitem = 'pagepath';
     } else {      } else {
         $hiddenelem = '<input type="hidden" name="folderpath" value="'.$env{'form.folderpath'}.'" />'."\n";          $pathitem = 'folderpath';
     }  
     if ($env{'form.newidx'}) {  
         $hiddenelem .= '<input type="hidden" name="newidx" value="'.$env{'form.newidx'}.'" />'."\n";  
     }      }
     if ($env{'form.comment'}) {      unshift(@hiddens,$pathitem);
         $hiddenelem .= '<input type="hidden" name="comment" value="'.$env{'form.comment'}.'" />'."\n";      foreach my $item (@hiddens) {
           if ($env{'form.'.$item}) {
               $hiddenelem .= '<input type="hidden" name="'.$item.'" value="'.
                              $env{'form.'.$item}.'" />'."\n";
           }
     }      }
     return ($destination,$dir_root,$londocroot,$docudom,$docuname,$container,      return ($destination,$dir_root,$londocroot,$docudom,$docuname,$container,
             $hiddenelem);              $hiddenelem);
Line 3017  sub decompression_phase_one { Line 3048  sub decompression_phase_one {
     } else {      } else {
         my $file = $1;          my $file = $1;
         $output = &Apache::loncommon::process_decompression($docudom,$docuname,$file,$destination,$dir_root,$hiddenelem);          $output = &Apache::loncommon::process_decompression($docudom,$docuname,$file,$destination,$dir_root,$hiddenelem);
         if ($env{'form.archivedelete'}) {  
             my $map = $env{'form.folder'}.'.'.$container;  
             my ($delwarning,$delresult);  
             my ($errtext,$fatal) = &mapread($docuname,$docudom,$map);  
             if ($fatal) {  
                 if ($container eq 'page') {  
                     $delwarning = &mt('An error occurred retrieving the contents of the current page.');  
                 } else {  
                     $delwarning = &mt('An error occurred retrieving the contents of the current folder.');  
                 }  
                 $delwarning .= &mt('As a result the archive file has not been removed.');  
             } else {  
                 my $currcmd = $env{'form.cmd'};  
                 $env{'form.cmd'} = 'del_'.$env{'form.position'};  
                 if (&handle_edit_cmd($docuname,$docudom)) {  
                     ($errtext,$fatal) = &storemap($docuname,$docudom,$map);  
                     if ($fatal) {  
                         if ($container eq 'page') {  
                             $delwarning = &mt('An error occurred updating the contents of the current page.');  
                         } else {  
                             $delwarning = &mt('An error occurred updating the contents of the current folder.');  
                         }  
                     }  
                 }  
                 $env{'form.cmd'} = $currcmd;  
                 $delresult = &mt('Archive file removed after extracting files.');  
             }  
             if ($delwarning) {  
                 $output .= '<p class="LC_warning">'.  
                            $delwarning.  
                            '</p>';  
             }  
             if ($delresult) {  
                 $output .= '<p class="LC_info">'.  
                            $delresult.  
                            '</p>';  
             }  
         }  
     }      }
     if ($error) {      if ($error) {
         $output .= '<p class="LC_error">'.&mt('Not extracted.').'<br />'.          $output .= '<p class="LC_error">'.&mt('Not extracted.').'<br />'.
Line 3069  sub decompression_phase_one { Line 3062  sub decompression_phase_one {
 sub decompression_phase_two {  sub decompression_phase_two {
     my ($destination,$dir_root,$londocroot,$docudom,$docuname,$container,$hiddenelem)=      my ($destination,$dir_root,$londocroot,$docudom,$docuname,$container,$hiddenelem)=
         &decompression_info();          &decompression_info();
     my $output =       my ($output,$url);
         &Apache::loncommon::process_extracted_files('coursedocs',$docudom,$docuname,      if ($env{'form.archivedelete'}) {
           ($output,$url) = &remove_archive($docudom,$docuname,$container);
       }
       $output .= 
           &Apache::loncommon::process_extracted_files('coursedocs',$docudom,$docuname,$url,
                                                     $destination,$dir_root,$hiddenelem);                                                      $destination,$dir_root,$hiddenelem);
     return $output;      return $output;
 }  }
   
   sub remove_archive {
       my ($docudom,$docuname,$container) = @_;
       my $map = $env{'form.folder'}.'.'.$container;
       my ($output,$delwarning,$delresult,$url,$outcome);
       my ($errtext,$fatal) = &mapread($docuname,$docudom,$map);
       if ($fatal) {
           if ($container eq 'page') {
               $delwarning = &mt('An error occurred retrieving the contents of the current page.');
           } else {
               $delwarning = &mt('An error occurred retrieving the contents of the current folder.');
           }
           $delwarning .= &mt('As a result the archive file has not been removed.');
       } else {
           my $currcmd = $env{'form.cmd'};
           my $position = $env{'form.position'};
           if ($position > 0) { 
               $env{'form.cmd'} = 'del_'.$position;
               my ($title,$url,@rrest) = 
                   split(/:/,$LONCAPA::map::resources[$LONCAPA::map::order[$position]]);
               if (&handle_edit_cmd($docuname,$docudom)) {
                   ($errtext,$fatal) = &storemap($docuname,$docudom,$map);
                   if ($fatal) {
                       if ($container eq 'page') {
                           $delwarning = &mt('An error occurred updating the contents of the current page.');
                       } else {
                           $delwarning = &mt('An error occurred updating the contents of the current folder.');
                       }
                   } else {
                       $outcome = 'ok'; 
                   }
                   $delresult = &mt('Archive file removed.');
               }
           }
           $env{'form.cmd'} = $currcmd;
       }
       if ($delwarning) {
           $output = '<p class="LC_warning">'.
                      $delwarning.
                      '</p>';
       }
       if ($delresult) {
           $output .= '<p class="LC_info">'.
                      $delresult.
                      '</p>';
       }
       return ($output,$url,$outcome);
   }
   
 sub generate_admin_options {  sub generate_admin_options {
   my ($help_ref,$env_ref) = @_;    my ($help_ref,$env_ref) = @_;
   my %lt=&Apache::lonlocal::texthash(    my %lt=&Apache::lonlocal::texthash(
Line 3315  newWindow = window.open("","IMSimport"," Line 3360  newWindow = window.open("","IMSimport","
 newWindow.location.href = newlocation;  newWindow.location.href = newlocation;
 }  }
   
   
 function finishpick() {  function finishpick() {
 var title=this.document.forms.extimport.title.value;  var title=this.document.forms.extimport.title.value;
 var url=this.document.forms.extimport.url.value;  var url=this.document.forms.extimport.url.value;

Removed from v.1.479  
changed lines
  Added in v.1.480


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