Diff for /loncom/interface/portfolio.pm between versions 1.228 and 1.229

version 1.228, 2010/10/29 23:19:54 version 1.229, 2010/10/29 23:22:43
Line 303  sub display_directory { Line 303  sub display_directory {
     my %access_controls = &Apache::lonnet::get_access_controls($current_permissions,$group);      my %access_controls = &Apache::lonnet::get_access_controls($current_permissions,$group);
     my $now = time;      my $now = time;
     if ($env{"form.mode"} eq 'selectfile') {      if ($env{"form.mode"} eq 'selectfile') {
         &select_files($r);          &select_files($r,$dir_list);
         $checked_files =&Apache::lonnet::files_in_path($uname,$env{'form.currentpath'});          $checked_files =&Apache::lonnet::files_in_path($uname,$env{'form.currentpath'});
         $select_mode = 'true';          $select_mode = 'true';
     }      }
Line 396  sub display_directory { Line 396  sub display_directory {
        push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]);         push(@dir_lines, [$filename,$dom,$testdir,$size,$mtime,$obs]);
     }      }
     }      }
       my $zerobyte;
     foreach my $dir_line (@dir_lines) {      foreach my $dir_line (@dir_lines) {
         my ($filename,$dom,$testdir,$size,$mtime,$obs) = @$dir_line;          my ($filename,$dom,$testdir,$size,$mtime,$obs) = @$dir_line;
         my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename);          my ($fname,$version,$extension) = &Apache::grades::file_name_version_ext($filename);
Line 455  sub display_directory { Line 456  sub display_directory {
  my $css_class = 'LC_browser_file';   my $css_class = 'LC_browser_file';
  my $line;   my $line;
                 if ($select_mode eq 'true') {                  if ($select_mode eq 'true') {
                     $line='<td><input type="checkbox" name="checkfile" value="'.$filename.'"';                      if ($size > 0) {
     if ($$checked_files{$filename} eq 'selected') {                          $line='<td><input type="checkbox" name="checkfile" value="'.$filename.'"';
                         $line.=' checked="checked" ';          if ($$checked_files{$filename} eq 'selected') {
                               $line.=' checked="checked" ';
                           }
           $line.=' /></td>';
                       } else {
                           $line = '<td>&nbsp;</td>';
                           $zerobyte ++;
                     }                      }
     $line.=' /></td>';  
                 } else {                  } else {
                     if (exists $locked_files{$fullpath}) {                      if (exists $locked_files{$fullpath}) {
                         my %anchor_fields = (                          my %anchor_fields = (
Line 539  sub display_directory { Line 545  sub display_directory {
         }          }
     }      }
     if ($select_mode eq 'true') {      if ($select_mode eq 'true') {
         $r->print(&Apache::loncommon::end_data_table().'          $r->print(&Apache::loncommon::end_data_table());
           if ($zerobyte) {
               $r->print('<p class="LC_warning">'.&mt('[quant,_1,file] in list not selectable as file size is 0 bytes.',$zerobyte).'</p>');
           }
           $r->print('
             <input type="hidden" name="continue" value="true" />              <input type="hidden" name="continue" value="true" />
             <input type="hidden" name="fieldname" value="'.$env{'form.fieldname'}.'" />              <input type="hidden" name="fieldname" value="'.$env{'form.fieldname'}.'" />
             <input type="hidden" name="mode" value="selectfile" />              <input type="hidden" name="mode" value="selectfile" />
Line 1854  END_SCRIPT Line 1864  END_SCRIPT
 }  }
   
 sub select_files {  sub select_files {
     my ($r) = @_;      my ($r,$dir_list) = @_;
     if ($env{'form.continue'} eq 'true') {      if ($env{'form.continue'} eq 'true') {
         # here we update the selections for the currentpath          # here we update the selections for the currentpath
         # eventually, have to handle removing those not checked, but . . .           # eventually, have to handle removing those not checked, but . . . 
         my @items=&Apache::loncommon::get_env_multiple('form.checkfile');          my @items=&Apache::loncommon::get_env_multiple('form.checkfile');
         if (scalar(@items)){          if (scalar(@items)){
              &Apache::lonnet::save_selected_files($env{'user.name'}, $env{'form.currentpath'}, @items);              my @ok_items;
               if (ref($dir_list) eq 'ARRAY') {
                   foreach my $dir_line (@{$dir_list}) {
                       my ($filename,undef,undef,undef,undef,undef,undef,undef,$size)=split(/\&/,$dir_line,10);
                       if (grep(/^\Q$filename\E$/,@items)) {
                           if ($size) {
                               push(@ok_items,$filename); 
                           }
                       }
                   }
               }
               &Apache::lonnet::save_selected_files($env{'user.name'}, $env{'form.currentpath'}, @ok_items);
         }          }
     } else {      } else {
             #empty the file for a fresh start              #empty the file for a fresh start

Removed from v.1.228  
changed lines
  Added in v.1.229


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