Diff for /loncom/interface/londocs.pm between versions 1.240 and 1.245

version 1.240, 2006/07/20 15:25:09 version 1.245, 2006/11/02 21:06:06
Line 33  use Apache::Constants qw(:common :http); Line 33  use Apache::Constants qw(:common :http);
 use Apache::imsexport;  use Apache::imsexport;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::loncommon;  use Apache::loncommon;
 use Apache::lonratedt;  use LONCAPA::map();
   use Apache::lonratedt();
 use Apache::lonratsrv;  use Apache::lonratsrv;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::loncreatecourse;  use Apache::lonclonecourse;
 use Apache::lonnavmaps;  use Apache::lonnavmaps;
 use HTML::Entities;  use HTML::Entities;
 use GDBM_File;  use GDBM_File;
 use Apache::lonlocal;  use Apache::lonlocal;
 use Cwd;  use Cwd;
 use lib '/home/httpd/lib/perl/';  
 use LONCAPA;  use LONCAPA;
   
 my $iconpath;  my $iconpath;
Line 58  my $hadchanges; Line 58  my $hadchanges;
   
 my %help=();  my %help=();
   
 # Mapread read maps into lonratedt::global arrays   # Mapread read maps into LONCAPA::map:: global arrays 
 # @order and @resources, determines status  # @order and @resources, determines status
 # sets @order - pointer to resources in right order  # sets @order - pointer to resources in right order
 # sets @resources - array with the resources with correct idx  # sets @resources - array with the resources with correct idx
Line 67  my %help=(); Line 67  my %help=();
 sub mapread {  sub mapread {
     my ($coursenum,$coursedom,$map)=@_;      my ($coursenum,$coursedom,$map)=@_;
     return      return
       &Apache::lonratedt::mapread('/uploaded/'.$coursedom.'/'.$coursenum.'/'.        &LONCAPA::map::mapread('/uploaded/'.$coursedom.'/'.$coursenum.'/'.
                                 $map);       $map);
 }  }
   
 sub storemap {  sub storemap {
     my ($coursenum,$coursedom,$map)=@_;      my ($coursenum,$coursedom,$map)=@_;
     my ($outtext,$errtext)=      my ($outtext,$errtext)=
       &Apache::lonratedt::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'.        &LONCAPA::map::storemap('/uploaded/'.$coursedom.'/'.$coursenum.'/'.
                                 $map,1);        $map,1);
     if ($errtext) { return ($errtext,2); }      if ($errtext) { return ($errtext,2); }
           
     $hadchanges=1;      $hadchanges=1;
Line 186  sub dumpcourse { Line 186  sub dumpcourse {
     $r->print('<br /><tt>'.$_.'</tt> => <tt>'.$newfilename.'</tt>: ');      $r->print('<br /><tt>'.$_.'</tt> => <tt>'.$newfilename.'</tt>: ');
     if (my $fh=Apache::File->new('>'.$path.'/'.$newfilename)) {      if (my $fh=Apache::File->new('>'.$path.'/'.$newfilename)) {
  if ($_=~/\.(sequence|page|html|htm|xml|xhtml)$/) {   if ($_=~/\.(sequence|page|html|htm|xml|xhtml)$/) {
     print $fh &Apache::loncreatecourse::rewritefile(      print $fh &Apache::lonclonecourse::rewritefile(
          &Apache::loncreatecourse::readfile($env{'request.course.id'},$_),           &Apache::lonclonecourse::readfile($env{'request.course.id'},$_),
      (%replacehash,$crs => '')       (%replacehash,$crs => '')
     );      );
  } else {   } else {
     print $fh      print $fh
          &Apache::loncreatecourse::readfile($env{'request.course.id'},$_);           &Apache::lonclonecourse::readfile($env{'request.course.id'},$_);
        }         }
  $fh->close();   $fh->close();
     } else {      } else {
Line 230  sub dumpcourse { Line 230  sub dumpcourse {
  $r->print('<h3>'.&mt('Folder in Construction Space').'</h3><input type="text" size="50" name="authorfolder" value="'.$title.'" /><br />');   $r->print('<h3>'.&mt('Folder in Construction Space').'</h3><input type="text" size="50" name="authorfolder" value="'.$title.'" /><br />');
  &tiehash();   &tiehash();
  $r->print('<h3>'.&mt('Filenames in Construction Space').'</h3><table border="2"><tr><th>'.&mt('Internal Filename').'</th><th>'.&mt('Title').'</th><th>'.&mt('Save as ...').'</th></tr>');   $r->print('<h3>'.&mt('Filenames in Construction Space').'</h3><table border="2"><tr><th>'.&mt('Internal Filename').'</th><th>'.&mt('Title').'</th><th>'.&mt('Save as ...').'</th></tr>');
  foreach (&Apache::loncreatecourse::crsdirlist($origcrsid,'userfiles')) {   foreach (&Apache::lonclonecourse::crsdirlist($origcrsid,'userfiles')) {
     $r->print('<tr><td>'.$_.'</td>');      $r->print('<tr><td>'.$_.'</td>');
     my ($ext)=($_=~/\.(\w+)$/);      my ($ext)=($_=~/\.(\w+)$/);
     my $title=$hash{'title_'.$hash{      my $title=$hash{'title_'.$hash{
Line 931  sub group_import { Line 931  sub group_import {
             }              }
         }          }
  if ($url) {   if ($url) {
     my $idx = &Apache::lonratedt::getresidx($url);      my $idx = &LONCAPA::map::getresidx($url);
     $Apache::lonratedt::order[$#Apache::lonratedt::order+1]=$idx;      $LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx;
     my $ext = 'false';      my $ext = 'false';
     if ($url=~/^http:\/\//) { $ext = 'true'; }      if ($url=~/^http:\/\//) { $ext = 'true'; }
     $url =~ s/:/\&colon;/g;      $url =~ s/:/\&colon;/g;
     $name =~ s/:/\&colon;/g;      $name =~ s/:/\&colon;/g;
     $Apache::lonratedt::resources[$idx] =       $LONCAPA::map::resources[$idx] = 
  join ':', ($name, $url, $ext, 'normal', 'res');   join ':', ($name, $url, $ext, 'normal', 'res');
  }   }
     }      }
Line 961  sub breadcrumbs { Line 961  sub breadcrumbs {
                '&markedcopy_title='.                 '&markedcopy_title='.
                &escape($env{'form.markedcopy_title'});                 &escape($env{'form.markedcopy_title'});
     }      }
       my $randompick=-1;
       my $isencrypted=0;
       my $ishidden=0;
     while (@folders) {      while (@folders) {
  my $folder=shift(@folders);   my $folder=shift(@folders);
  my $foldername=shift(@folders);   my $foldername=shift(@folders);
Line 968  sub breadcrumbs { Line 971  sub breadcrumbs {
  $folderpath.=$folder.'&'.$foldername;   $folderpath.=$folder.'&'.$foldername;
  my $url='/adm/coursedocs?folderpath='.   my $url='/adm/coursedocs?folderpath='.
     &escape($folderpath);      &escape($folderpath);
               my $name=&unescape($foldername);
   # randompick number, hidden, encrypted is appended with ":"s to the foldername
               $name=~s/\:(\d*)\:(\w*)\:(\w*)$//;
               if ($1 ne '') { 
                  $randompick=$1;
               } else {
                  $randompick=-1;
               }
               if ($2) { $ishidden=1; }
               if ($3) { $isencrypted=1; }
     &Apache::lonhtmlcommon::add_breadcrumb(      &Apache::lonhtmlcommon::add_breadcrumb(
       {'href'=>$url.$cpinfo,        {'href'=>$url.$cpinfo,
        'title'=>&unescape($foldername),         'title'=>$name,
        'text'=>'<font size="+1">'.         'text'=>'<font size="+1">'.
    &unescape($foldername).'</font>'     $name.'</font>'
        });         });
          
     
     }      }
     return &Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp',      return (&Apache::lonhtmlcommon::breadcrumbs(undef,undef,0,'nohelp',
        'LC_docs_path');         'LC_docs_path'),$randompick,$ishidden,$isencrypted);
 }  }
   
 sub editor {  sub editor {
Line 991  sub editor { Line 1002  sub editor {
     }      }
     ($errtext,$fatal)=      ($errtext,$fatal)=
               &mapread($coursenum,$coursedom,$folder.'.'.$container);                &mapread($coursenum,$coursedom,$folder.'.'.$container);
     if ($#Apache::lonratedt::order<1) {      if ($#LONCAPA::map::order<1) {
  my $idx=&Apache::lonratedt::getresidx();   my $idx=&LONCAPA::map::getresidx();
  if ($idx<=0) { $idx=1; }   if ($idx<=0) { $idx=1; }
         $Apache::lonratedt::order[0]=$idx;          $LONCAPA::map::order[0]=$idx;
         $Apache::lonratedt::resources[$idx]='';          $LONCAPA::map::resources[$idx]='';
     }      }
     if (defined($env{'form.markcopy'})) {      if (defined($env{'form.markcopy'})) {
 # Mark for copying  # Mark for copying
  my ($title,$url)=split(':',$Apache::lonratedt::resources[$Apache::lonratedt::order[$env{'form.markcopy'}]]);   my ($title,$url)=split(':',$LONCAPA::map::resources[$LONCAPA::map::order[$env{'form.markcopy'}]]);
  $env{'form.markedcopy_title'}=$title;   $env{'form.markedcopy_title'}=$title;
  $env{'form.markedcopy_url'}=$url;   $env{'form.markedcopy_url'}=$url;
     }      }
     $r->print(&breadcrumbs($folder));      my ($breadcrumbtrail,$randompick,$ishidden,$isencrypted)=&breadcrumbs($folder);
       $r->print($breadcrumbtrail);
     if ($fatal) {      if ($fatal) {
    $r->print('<p><font color="red">'.$errtext.'</font></p>');     $r->print('<p><font color="red">'.$errtext.'</font></p>');
     } else {      } else {
Line 1016  sub editor { Line 1028  sub editor {
  my $idx=$env{'form.setparms'};   my $idx=$env{'form.setparms'};
 # set parameters  # set parameters
  if ($env{'form.randpick_'.$idx}) {   if ($env{'form.randpick_'.$idx}) {
     &Apache::lonratedt::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos');      &LONCAPA::map::storeparameter($idx,'parameter_randompick',$env{'form.randpick_'.$idx},'int_pos');
  } else {   } else {
     &Apache::lonratedt::delparameter($idx,'parameter_randompick');      &LONCAPA::map::delparameter($idx,'parameter_randompick');
  }   }
  if ($env{'form.hidprs_'.$idx}) {   if ($env{'form.hidprs_'.$idx}) {
     &Apache::lonratedt::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno');      &LONCAPA::map::storeparameter($idx,'parameter_hiddenresource','yes','string_yesno');
  } else {   } else {
     &Apache::lonratedt::delparameter($idx,'parameter_hiddenresource');      &LONCAPA::map::delparameter($idx,'parameter_hiddenresource');
  }   }
  if ($env{'form.encprs_'.$idx}) {   if ($env{'form.encprs_'.$idx}) {
     &Apache::lonratedt::storeparameter($idx,'parameter_encrypturl','yes','string_yesno');      &LONCAPA::map::storeparameter($idx,'parameter_encrypturl','yes','string_yesno');
  } else {   } else {
     &Apache::lonratedt::delparameter($idx,'parameter_encrypturl');      &LONCAPA::map::delparameter($idx,'parameter_encrypturl');
  }   }
   
  if ($env{'form.newpos'}) {   if ($env{'form.newpos'}) {
Line 1041  sub editor { Line 1053  sub editor {
     if ($newpos>$currentpos) {      if ($newpos>$currentpos) {
 # moving stuff up  # moving stuff up
  for ($i=0;$i<$currentpos;$i++) {   for ($i=0;$i<$currentpos;$i++) {
     $neworder[$i]=$Apache::lonratedt::order[$i];      $neworder[$i]=$LONCAPA::map::order[$i];
  }   }
  for ($i=$currentpos;$i<$newpos;$i++) {   for ($i=$currentpos;$i<$newpos;$i++) {
     $neworder[$i]=$Apache::lonratedt::order[$i+1];      $neworder[$i]=$LONCAPA::map::order[$i+1];
  }   }
                         $neworder[$newpos]=$Apache::lonratedt::order[$currentpos];                          $neworder[$newpos]=$LONCAPA::map::order[$currentpos];
  for ($i=$newpos+1;$i<=$#Apache::lonratedt::order;$i++) {   for ($i=$newpos+1;$i<=$#LONCAPA::map::order;$i++) {
     $neworder[$i]=$Apache::lonratedt::order[$i];      $neworder[$i]=$LONCAPA::map::order[$i];
  }   }
     } else {      } else {
 # moving stuff down  # moving stuff down
  for ($i=0;$i<$newpos;$i++) {   for ($i=0;$i<$newpos;$i++) {
     $neworder[$i]=$Apache::lonratedt::order[$i];      $neworder[$i]=$LONCAPA::map::order[$i];
  }   }
  $neworder[$newpos]=$Apache::lonratedt::order[$currentpos];   $neworder[$newpos]=$LONCAPA::map::order[$currentpos];
  for ($i=$newpos+1;$i<$currentpos+1;$i++) {   for ($i=$newpos+1;$i<$currentpos+1;$i++) {
     $neworder[$i]=$Apache::lonratedt::order[$i-1];      $neworder[$i]=$LONCAPA::map::order[$i-1];
  }   }
  for ($i=$currentpos+1;$i<=$#Apache::lonratedt::order;$i++) {   for ($i=$currentpos+1;$i<=$#LONCAPA::map::order;$i++) {
     $neworder[$i]=$Apache::lonratedt::order[$i];      $neworder[$i]=$LONCAPA::map::order[$i];
  }   }
     }      }
     @Apache::lonratedt::order=@neworder;      @LONCAPA::map::order=@neworder;
  }   }
 # store the changed version  # store the changed version
   
Line 1086  sub editor { Line 1098  sub editor {
     my $newurl=$1.$newid.'.'.$2;      my $newurl=$1.$newid.'.'.$2;
     my $storefn=$newurl;      my $storefn=$newurl;
                     $storefn=~s/^\/\w+\/\w+\/\w+\///;                      $storefn=~s/^\/\w+\/\w+\/\w+\///;
     &Apache::loncreatecourse::writefile      &Apache::lonclonecourse::writefile
  ($env{'request.course.id'},$storefn,   ($env{'request.course.id'},$storefn,
  &Apache::lonnet::getfile($url));   &Apache::lonnet::getfile($url));
     $url=$newurl;      $url=$newurl;
Line 1098  sub editor { Line 1110  sub editor {
  if ($url=~/^http\:\/\//) { $ext='true'; }   if ($url=~/^http\:\/\//) { $ext='true'; }
  $url=~s/\:/\&colon;/g;   $url=~s/\:/\&colon;/g;
 # Now insert the URL at the bottom  # Now insert the URL at the bottom
                 my $newidx=&Apache::lonratedt::getresidx($url);                  my $newidx=&LONCAPA::map::getresidx($url);
  $Apache::lonratedt::resources[$newidx]=   $LONCAPA::map::resources[$newidx]=
     $title.':'.$url.':'.$ext.':normal:res';      $title.':'.$url.':'.$ext.':normal:res';
  $Apache::lonratedt::order[1+$#Apache::lonratedt::order]=$newidx;   $LONCAPA::map::order[1+$#LONCAPA::map::order]=$newidx;
 # Store the result  # Store the result
  ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container);   ($errtext,$fatal)=&storemap($coursenum,$coursedom,$folder.'.'.$container);
  if ($fatal) {   if ($fatal) {
Line 1114  sub editor { Line 1126  sub editor {
     if ($env{'form.cmd'}) {      if ($env{'form.cmd'}) {
                 my ($cmd,$idx)=split(/\_/,$env{'form.cmd'});                  my ($cmd,$idx)=split(/\_/,$env{'form.cmd'});
                 if ($cmd eq 'del') {                  if ($cmd eq 'del') {
     my (undef,$url)=split(':',$Apache::lonratedt::resources[$Apache::lonratedt::order[$idx]]);      my (undef,$url)=split(':',$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]);
     if (($url=~m|/+uploaded/\Q$coursedom\E/\Q$coursenum\E/|) &&      if (($url=~m|/+uploaded/\Q$coursedom\E/\Q$coursenum\E/|) &&
  ($url!~/\.(page|sequence|problem|exam|quiz|assess|survey|form|library|task)$/)) {   ($url!~/\.(page|sequence|problem|exam|quiz|assess|survey|form|library|task)$/)) {
  &Apache::lonnet::removeuploadedurl($url);   &Apache::lonnet::removeuploadedurl($url);
     } else {      } else {
  &Apache::lonratedt::makezombie($Apache::lonratedt::order[$idx]);   &LONCAPA::map::makezombie($LONCAPA::map::order[$idx]);
     }      }
     for (my $i=$idx;$i<$#Apache::lonratedt::order;$i++) {      for (my $i=$idx;$i<$#LONCAPA::map::order;$i++) {
                         $Apache::lonratedt::order[$i]=                          $LONCAPA::map::order[$i] = $LONCAPA::map::order[$i+1];
                           $Apache::lonratedt::order[$i+1];  
                     }                      }
                     $#Apache::lonratedt::order--;                      $#LONCAPA::map::order--;
                 } elsif ($cmd eq 'cut') {                  } elsif ($cmd eq 'cut') {
     my (undef,$url)=split(':',$Apache::lonratedt::resources[$Apache::lonratedt::order[$idx]]);      my (undef,$url)=split(':',$LONCAPA::map::resources[$LONCAPA::map::order[$idx]]);
     &Apache::lonratedt::makezombie($Apache::lonratedt::order[$idx]);      &LONCAPA::map::makezombie($LONCAPA::map::order[$idx]);
     for (my $i=$idx;$i<$#Apache::lonratedt::order;$i++) {      for (my $i=$idx;$i<$#LONCAPA::map::order;$i++) {
                         $Apache::lonratedt::order[$i]=                          $LONCAPA::map::order[$i] = $LONCAPA::map::order[$i+1];
                           $Apache::lonratedt::order[$i+1];  
                     }                      }
                     $#Apache::lonratedt::order--;                      $#LONCAPA::map::order--;
                 } elsif ($cmd eq 'up') {                  } elsif ($cmd eq 'up') {
   if (($idx) && (defined($Apache::lonratedt::order[$idx-1]))) {    if (($idx) && (defined($LONCAPA::map::order[$idx-1]))) {
                     my $i=$Apache::lonratedt::order[$idx-1];                      my $i=$LONCAPA::map::order[$idx-1];
                     $Apache::lonratedt::order[$idx-1]=                      $LONCAPA::map::order[$idx-1] = $LONCAPA::map::order[$idx];
  $Apache::lonratedt::order[$idx];                      $LONCAPA::map::order[$idx] = $i;
                     $Apache::lonratedt::order[$idx]=$i;  
    }     }
                 } elsif ($cmd eq 'down') {                  } elsif ($cmd eq 'down') {
    if (defined($Apache::lonratedt::order[$idx+1])) {     if (defined($LONCAPA::map::order[$idx+1])) {
                     my $i=$Apache::lonratedt::order[$idx+1];                      my $i=$LONCAPA::map::order[$idx+1];
                     $Apache::lonratedt::order[$idx+1]=                      $LONCAPA::map::order[$idx+1] = $LONCAPA::map::order[$idx];
  $Apache::lonratedt::order[$idx];                      $LONCAPA::map::order[$idx] = $i;
                     $Apache::lonratedt::order[$idx]=$i;  
    }     }
                 } elsif ($cmd eq 'rename') {                  } elsif ($cmd eq 'rename') {
                     my $ratstr = $Apache::lonratedt::resources[$Apache::lonratedt::order[$idx]];                      my $ratstr = $LONCAPA::map::resources[$LONCAPA::map::order[$idx]];
                     my ($rtitle,@rrest)=split(/\:/,                      my ($rtitle,@rrest)=split(/\:/,
                        $Apache::lonratedt::resources[                         $LONCAPA::map::resources[$LONCAPA::map::order[$idx]]);
        $Apache::lonratedt::order[$idx]]);  
                     my $comment=                      my $comment=
                      &HTML::Entities::decode($env{'form.title'});                       &HTML::Entities::decode($env{'form.title'});
                     $comment=~s/\</\&lt\;/g;                      $comment=~s/\</\&lt\;/g;
                     $comment=~s/\>/\&gt\;/g;                      $comment=~s/\>/\&gt\;/g;
                     $comment=~s/\:/\&colon;/g;                      $comment=~s/\:/\&colon;/g;
     if ($comment=~/\S/) {      if ($comment=~/\S/) {
  $Apache::lonratedt::resources[   $LONCAPA::map::resources[$LONCAPA::map::order[$idx]]=
        $Apache::lonratedt::order[$idx]]=      $comment.':'.join(':',@rrest);
             $comment.':'.join(':',@rrest);  
     }      }
 # Devalidate title cache  # Devalidate title cache
                     my $renamed_url=$rrest[0];                      my $renamed_url=$rrest[0];
Line 1180  sub editor { Line 1186  sub editor {
 # Group import/search  # Group import/search
     if ($env{'form.importdetail'}) {      if ($env{'form.importdetail'}) {
  my @imports;   my @imports;
  &Apache::lonnet::logthis("imp detail ".$env{'form.importdetail'});  # &Apache::lonnet::logthis("imp detail ".$env{'form.importdetail'});
  foreach (split(/\&/,$env{'form.importdetail'})) {   foreach (split(/\&/,$env{'form.importdetail'})) {
     if (defined($_)) {      if (defined($_)) {
  my ($name,$url)=split(/\=/,$_);   my ($name,$url)=split(/\=/,$_);
Line 1202  sub editor { Line 1208  sub editor {
                if ($env{'form.importmap'}=~/\w/) {                 if ($env{'form.importmap'}=~/\w/) {
           foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$env{'form.importmap'}))) {            foreach (&Apache::lonsequence::attemptread(&Apache::lonnet::filelocation('',$env{'form.importmap'}))) {
       my ($title,$url,$ext,$type)=split(/\:/,$_);        my ($title,$url,$ext,$type)=split(/\:/,$_);
                       my $idx=&Apache::lonratedt::getresidx($url);                        my $idx=&LONCAPA::map::getresidx($url);
                       $Apache::lonratedt::resources[$idx]=$_;                        $LONCAPA::map::resources[$idx]=$_;
                       $Apache::lonratedt::order                        $LONCAPA::map::order[$#LONCAPA::map::order+1]=$idx;
           [$#Apache::lonratedt::order+1]=$idx;  
           }            }
 # Store the changed version  # Store the changed version
            ($errtext,$fatal)=&storemap($coursenum,$coursedom,             ($errtext,$fatal)=&storemap($coursenum,$coursedom,
Line 1223  sub editor { Line 1228  sub editor {
 # ---------------------------------------------------------------- Print screen  # ---------------------------------------------------------------- Print screen
         my $idx=0;          my $idx=0;
  my $shown=0;   my $shown=0;
           if (($ishidden) || ($isencrypted) || ($randompick>=0)) {
              $r->print('<p>'.&mt('Parameters').':<ul>'.
                        ($randompick>=0?'<li>'.&mt('randomly pick [_1] resources',$randompick).'</li>':'').
                        ($ishidden?'<li>'.&mt('contents hidden').'</li>':'').
                        ($isencrypted?'<li>'.&mt('URLs hidden').'</li>':'').
                        '</ul></p>');
           }                                                                                                     
           if ($randompick>=0) {
              $r->print('<p>'.&mt('Caution: this folder is set to randomly pick a subset of resources. Adding or removing resources from this folder will change the set of resources that the students see, resulting in spurious or missing credit for completed problems, not limited to ones you modify. Do not modify the contents of this folder if it is in active student use.').'</p>');
           }
         $r->print('<table>');          $r->print('<table>');
         foreach (@Apache::lonratedt::order) {          foreach (@LONCAPA::map::order) {
            my ($name,$url)=split(/\:/,$Apache::lonratedt::resources[$_]);             my ($name,$url)=split(/\:/,$LONCAPA::map::resources[$_]);
    $name=&Apache::lonratsrv::qtescape($name);     $name=&Apache::lonratsrv::qtescape($name);
    $url=&Apache::lonratsrv::qtescape($url);     $url=&Apache::lonratsrv::qtescape($url);
            unless ($name) {  $name=(split(/\//,$url))[-1]; }             unless ($name) {  $name=(split(/\//,$url))[-1]; }
Line 1285  sub process_file_upload { Line 1300  sub process_file_upload {
         }          }
         ($errtext,$fatal)=          ($errtext,$fatal)=
               &mapread($coursenum,$coursedom,$folder.'.'.$container);                &mapread($coursenum,$coursedom,$folder.'.'.$container);
         if ($#Apache::lonratedt::order<1) {          if ($#LONCAPA::map::order<1) {
             $Apache::lonratedt::order[0]=1;              $LONCAPA::map::order[0]=1;
             $Apache::lonratedt::resources[1]='';              $LONCAPA::map::resources[1]='';
         }          }
         if ($fatal) {          if ($fatal) {
             return 'failed';              return 'failed';
Line 1303  sub process_file_upload { Line 1318  sub process_file_upload {
         }          }
 # this is for a course, not a user, so set coursedoc flag  # this is for a course, not a user, so set coursedoc flag
 # probably the only place in the system where this should be "1"  # probably the only place in the system where this should be "1"
         my $newidx=&Apache::lonratedt::getresidx();          my $newidx=&LONCAPA::map::getresidx();
         $destination .= $newidx;          $destination .= $newidx;
         my $url=&Apache::lonnet::userfileupload('uploaddoc',1,$destination,          my $url=&Apache::lonnet::userfileupload('uploaddoc',1,$destination,
  $parseaction,$allfiles,   $parseaction,$allfiles,
Line 1320  sub process_file_upload { Line 1335  sub process_file_upload {
                   $env{'user.domain'}.'___&&&___'.$comment;                    $env{'user.domain'}.'___&&&___'.$comment;
         }          }
   
         $Apache::lonratedt::resources[$newidx]=          $LONCAPA::map::resources[$newidx]=
                   $comment.':'.$url.':'.$ext.':normal:res';      $comment.':'.$url.':'.$ext.':normal:res';
         $Apache::lonratedt::order[$#Apache::lonratedt::order+1]= $newidx;          $LONCAPA::map::order[$#LONCAPA::map::order+1]= $newidx;
         ($errtext,$fatal)=&storemap($coursenum,$coursedom,          ($errtext,$fatal)=&storemap($coursenum,$coursedom,
     $folder.'.'.$container);      $folder.'.'.$container);
         if ($fatal) {          if ($fatal) {
Line 1403  sub entryline { Line 1418  sub entryline {
     my $renametitle=$title;      my $renametitle=$title;
     my $foldertitle=$title;      my $foldertitle=$title;
     my $pagetitle=$title;      my $pagetitle=$title;
     my $orderidx=$Apache::lonratedt::order[$index];      my $orderidx=$LONCAPA::map::order[$index];
     if ($title=~ /^(\d+)___&amp;&amp;&amp;___(\w+)___&amp;&amp;&amp;___(\w+)___&amp;&amp;&amp;___(.*)$/ ) {       if ($title=~ /^(\d+)___&amp;&amp;&amp;___(\w+)___&amp;&amp;&amp;___(\w+)___&amp;&amp;&amp;___(.*)$/ ) { 
  $foldertitle=&Apache::lontexconvert::msgtexconverted($4);   $foldertitle=&Apache::lontexconvert::msgtexconverted($4);
  $renametitle=$4;   $renametitle=$4;
Line 1439  sub entryline { Line 1454  sub entryline {
  my $incindex=$index+1;   my $incindex=$index+1;
  my $selectbox='';   my $selectbox='';
  if (($folder!~/^supplemental/) &&   if (($folder!~/^supplemental/) &&
     ($#Apache::lonratedt::order>0) &&       ($#LONCAPA::map::order>0) && 
     ((split(/\:/,      ((split(/\:/,
      $Apache::lonratedt::resources[$Apache::lonratedt::order[0]]))[1]        $LONCAPA::map::resources[$LONCAPA::map::order[0]]))[1] 
      ne '') &&        ne '') && 
     ((split(/\:/,      ((split(/\:/,
      $Apache::lonratedt::resources[$Apache::lonratedt::order[1]]))[1]        $LONCAPA::map::resources[$LONCAPA::map::order[1]]))[1] 
      ne '')) {       ne '')) {
     $selectbox=      $selectbox=
  '<input type="hidden" name="currentpos" value="'.$incindex.'" />'.   '<input type="hidden" name="currentpos" value="'.$incindex.'" />'.
  '<select name="newpos" onChange="this.form.submit()">';   '<select name="newpos" onChange="this.form.submit()">';
     for (my $i=1;$i<=$#Apache::lonratedt::order+1;$i++) {      for (my $i=1;$i<=$#LONCAPA::map::order+1;$i++) {
  if ($i==$incindex) {   if ($i==$incindex) {
     $selectbox.='<option value="" selected="1">('.$i.')</option>';      $selectbox.='<option value="" selected="1">('.$i.')</option>';
  } else {   } else {
Line 1591  END Line 1606  END
  } elsif ($url=~m|^/ext/|) {    } elsif ($url=~m|^/ext/|) { 
     $url='/adm/wrapper'.$url;      $url='/adm/wrapper'.$url;
  }   }
  $url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb);          if (&Apache::lonnet::symbverify($symb,$url)) {
       $url.=(($url=~/\?/)?'&':'?').'symb='.&escape($symb);
           } else {
               $url='';
           }
  if ($container eq 'page') {   if ($container eq 'page') {
     my $symb=$env{'form.pagesymb'};      my $symb=$env{'form.pagesymb'};
                   
Line 1604  END Line 1623  END
  my $foldername=&escape($foldertitle);   my $foldername=&escape($foldertitle);
  my $folderpath=$env{'form.folderpath'};   my $folderpath=$env{'form.folderpath'};
  if ($folderpath) { $folderpath.='&' };   if ($folderpath) { $folderpath.='&' };
  $folderpath.=$folderarg.'&'.$foldername;  # Append randompick number, hidden, and encrypted with ":" to foldername, 
   # so it gets transferred between levels
    $folderpath.=$folderarg.'&'.$foldername.':'.(&LONCAPA::map::getparameter($orderidx,
                                                 'parameter_randompick'))[0]
                                                  .':'.((&LONCAPA::map::getparameter($orderidx,
                                                 'parameter_hiddenresource'))[0]=~/^yes$/i)
                                                  .':'.((&LONCAPA::map::getparameter($orderidx,
                                                 'parameter_encrypturl'))[0]=~/^yes$/i);
  $url.='folderpath='.&escape($folderpath).$cpinfo;   $url.='folderpath='.&escape($folderpath).$cpinfo;
  $parameterset='<label>'.&mt('Randomly Pick: ').   $parameterset='<label>'.&mt('Randomly Pick: ').
     '<input type="text" size="4" onChange="this.form.submit()" name="randpick_'.$orderidx.'" value="'.      '<input type="text" size="4" onChange="this.form.submit()" name="randpick_'.$orderidx.'" value="'.
     (&Apache::lonratedt::getparameter($orderidx,      (&LONCAPA::map::getparameter($orderidx,
                                               'parameter_randompick'))[0].                                                'parameter_randompick'))[0].
                                               '" />'.                                                '" />'.
 '<font size="-2"><a href="javascript:void(0)">'.&mt('Store').'</a></font></label>';  '<font size="-2"><a href="javascript:void(0)">'.&mt('Store').'</a></font></label>';
Line 1634  END Line 1660  END
     }      }
     $line.='<td bgcolor="#FFFFBB"><a href="'.$url.'"><img src="'.$icon.      $line.='<td bgcolor="#FFFFBB"><a href="'.$url.'"><img src="'.$icon.
  '" border="0"></a></td>'.   '" border="0"></a></td>'.
         "<td bgcolor='#FFFFBB'><a href=\"$url\">$title</a></td>";          "<td bgcolor='#FFFFBB'>".($url?"<a href=\"$url\">":'').$title.
           ($url?'</a>':' <font size="-2">'.&mt('(re-initialize course to access)').'</font>')."</td>";
     if (($allowed) && ($folder!~/^supplemental/)) {      if (($allowed) && ($folder!~/^supplemental/)) {
   my %lt=&Apache::lonlocal::texthash(    my %lt=&Apache::lonlocal::texthash(
        'hd' => 'Hidden',         'hd' => 'Hidden',
        'ec' => 'URL hidden');         'ec' => 'URL hidden');
  my $enctext=   my $enctext=
     ((&Apache::lonratedt::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':'');      ((&LONCAPA::map::getparameter($orderidx,'parameter_encrypturl'))[0]=~/^yes$/i?' checked="1"':'');
  my $hidtext=   my $hidtext=
     ((&Apache::lonratedt::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':'');      ((&LONCAPA::map::getparameter($orderidx,'parameter_hiddenresource'))[0]=~/^yes$/i?' checked="1"':'');
  $line.=(<<ENDPARMS);   $line.=(<<ENDPARMS);
 <td bgcolor="#BBBBFF"><font size='-2'>  <td bgcolor="#BBBBFF"><font size='-2'>
 <nobr><label><input type="checkbox" name="hidprs_$orderidx" onClick="this.form.submit()" $hidtext /> $lt{'hd'}</label></nobr></td>  <nobr><label><input type="checkbox" name="hidprs_$orderidx" onClick="this.form.submit()" $hidtext /> $lt{'hd'}</label></nobr></td>
Line 2202  sub handler { Line 2229  sub handler {
 # get personal data   # get personal data 
     my $uname=$env{'user.name'};      my $uname=$env{'user.name'};
     my $udom=$env{'user.domain'};      my $udom=$env{'user.domain'};
     my $plainname=&escape(      my $plainname=&escape(&Apache::loncommon::plainname($uname,$udom));
                      &Apache::loncommon::plainname($uname,$udom));  
   
 # graphics settings  # graphics settings
   

Removed from v.1.240  
changed lines
  Added in v.1.245


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