Diff for /rat/lonratedt.pm between versions 1.22 and 1.25

version 1.22, 2002/05/20 18:54:55 version 1.25, 2002/05/21 18:18:07
Line 37  use Apache::Constants qw(:common); Line 37  use Apache::Constants qw(:common);
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::lonratsrv;  use Apache::lonratsrv;
   
 my @order=();  my @order;
 my @resources=();  my @resources;
   
   
 # Mapread read maps into global arrays @links and @resources, determines status  # Mapread read maps into global arrays @links and @resources, determines status
Line 52  sub mapread { Line 52  sub mapread {
     undef @links;      undef @links;
     undef @resources;      undef @resources;
     undef @order;      undef @order;
       @resources=('');
       @order=();
   
     my ($outtext,$errtext)=&Apache::lonratsrv::loadmap($fn,'');      my ($outtext,$errtext)=&Apache::lonratsrv::loadmap($fn,'');
     if ($errtext) { return ($errtext,2); }      if ($errtext) { return ($errtext,2); }
Line 88  sub mapread { Line 90  sub mapread {
  }   }
   
     }      }
     for (my $i=0; $i<=$#resources; $i++) {      for (my $i=1; $i<=$#resources; $i++) {
         if (defined($resources[$i])) {          if (defined($resources[$i])) {
     unless (($starters[$i]) || ($endings[$i])) {      unless (($starters[$i]) || ($endings[$i])) {
                 return                  return
Line 295  sub pastetarget { Line 297  sub pastetarget {
    }     }
         }          }
     }      }
     my @oldorder=splice(@order,$after,$#insertorder+1,@insertorder);      my @oldorder=splice(@order,$after);
     @order=(@order,@oldorder);      @order=(@order,@insertorder,@oldorder);
 }  }
   
 # ------------------------------------------------ Get start and finish correct  # ------------------------------------------------ Get start and finish correct
Line 308  sub startfinish { Line 310  sub startfinish {
         if ($url=~/http\&colon\:\/\//) { $ext='true'; }          if ($url=~/http\&colon\:\/\//) { $ext='true'; }
         $resources[$_]=$name.':'.$url.':'.$ext.':normal:res';          $resources[$_]=$name.':'.$url.':'.$ext.':normal:res';
     }      }
    my ($name,$url,$ext)=split(/\:/,$resources[0]);     my ($name,$url,$ext)=split(/\:/,$resources[$order[0]]);
    $resources[0]=$name.':'.$url.':'.$ext.':start:res';     $resources[$order[0]]=$name.':'.$url.':'.$ext.':start:res';
    my ($name,$url,$ext)=split(/\:/,$resources[$order[$#order]]);     my ($name,$url,$ext)=split(/\:/,$resources[$order[$#order]]);
    $resources[$order[$#order]]=$name.':'.$url.':'.$ext.':finish:res';     $resources[$order[$#order]]=$name.':'.$url.':'.$ext.':finish:res';
 }  }
Line 333  sub storemap { Line 335  sub storemap {
             }              }
         }          }
     }      }
     $output=~s/http\&colon\:\/\///g;      $output=~s/http\&colon\;\/\///g;
     $ENV{'form.output'}=$output;      $ENV{'form.output'}=$output;
     return       return 
      &Apache::lonratsrv::loadmap($fn,&Apache::lonratsrv::savemap($fn,''));       &Apache::lonratsrv::loadmap($fn,&Apache::lonratsrv::savemap($fn,''));
Line 353  sub smpedt { Line 355  sub smpedt {
    undef @targetselect;     undef @targetselect;
    if (defined($ENV{'form.import'})) {     if (defined($ENV{'form.import'})) {
        if (ref($ENV{'form.import'})) {         if (ref($ENV{'form.import'})) {
    @importselect=sort($ENV->{'form.import'});     @importselect=sort(@{$ENV{'form.import'}});
        } else {         } else {
            @importselect=($ENV{'form.import'});             @importselect=($ENV{'form.import'});
        }         }
    }     }
    if (defined($ENV{'form.target'})) {     if (defined($ENV{'form.target'})) {
        if (ref($ENV{'form.target'})) {         if (ref($ENV{'form.target'})) {
    @targetselect=sort($ENV->{'form.target'});     @targetselect=sort(@{$ENV{'form.target'}});
        } else {         } else {
            @targetselect=($ENV{'form.target'});             @targetselect=($ENV{'form.target'});
        }         }
Line 459  sub smpedt { Line 461  sub smpedt {
 # ------------------------------------------------ Groupimport/search to target  # ------------------------------------------------ Groupimport/search to target
    } elsif ($ENV{'form.importdetail'}) {     } elsif ($ENV{'form.importdetail'}) {
        my $lastsel;         my $lastsel;
   
        if (defined($targetselect[-1])) {         if (defined($targetselect[-1])) {
    $lastsel=$targetselect[-1];     $lastsel=$targetselect[-1];
        } else {         } else {
            $lastsel=$#order;             $lastsel=$#order+1;
        }         }
        &pastetarget($lastsel,split(/\&/,$ENV{'form.importdetail'}));         &pastetarget($lastsel,split(/\&/,$ENV{'form.importdetail'}));
        &storemap(&Apache::lonnet::filelocation('',$url));         &storemap(&Apache::lonnet::filelocation('',$url));
 # ------------------------------------------------------------------------- Cut  # ------------------------------------------------------------------------- Cut
    } elsif ($ENV{'form.cut'}) {     } elsif (($ENV{'form.cut'}) || ($ENV{'form.copy'})) {
          $importdetail='';
          my @curimport=split(/\&/,$ENV{'form.curimpdetail'});
   
          my $lastsel;
   
          if (defined($importselect[-1])) {
      $lastsel=$importselect[-1];
          } else {
              $lastsel=$#curimport;
          }
   
          for (my $i=0;$i<=$lastsel;$i++) {
              my ($name,$url)=split(/\=/,$curimport[$i]);
              if ($url) {
                 $importdetail.='&'.$name.'='.$url;
      }
          }
   
          foreach (@targetselect) {
      my ($name,$url)=split(/\:/,$resources[$order[$_-1]]);
              if ($url) {
                 $importdetail.='&'.&Apache::lonnet::escape($name).'='.
            &Apache::lonnet::escape($url);
     }
          }
   
          for (my $i=$lastsel+1;$i<=$#curimport;$i++) {
              my ($name,$url)=split(/\=/,$curimport[$i]);
              if ($url) {
                 $importdetail.='&'.$name.'='.$url;
     }
          }
          $importdetail=~s/\&+/\&/g;
          $importdetail=~s/^\&//;
   
          if ($ENV{'form.cut'}) {
              my @neworder=();
              for (my $i=0;$i<=$#order;$i++) {
                  my $include=1;
                  foreach (@targetselect) {
      if ($_-1==$i) { $include=0; }
                  }
                  if ($include) { $neworder[$#neworder+1]=$order[$i]; }
              }
              @order=@neworder;
              &storemap(&Apache::lonnet::filelocation('',$url));      
          }
   
 # ----------------------------------------------------------------------- Paste  # ----------------------------------------------------------------------- Paste
    } elsif ($ENV{'form.paste'}) {     } elsif ($ENV{'form.paste'}) {
          my $lastsel;
          if (defined($targetselect[-1])) {
      $lastsel=$targetselect[-1];
          } else {
              $lastsel=$#order+1;
          }
          my @newsequence;
          my @curimport=split(/\&/,$ENV{'form.curimpdetail'});
          foreach (@importselect) {
             $newsequence[$#newsequence+1]=$curimport[$_];
          }
          &pastetarget($lastsel,@newsequence);
          &storemap(&Apache::lonnet::filelocation('',$url));
 # ------------------------------------------------   # ------------------------------------------------ 
    }     }
 # ------------------------------------------------------------ Assemble windows  # ------------------------------------------------------------ Assemble windows
Line 666  $importwindow Line 728  $importwindow
 Cut selected<br>  Cut selected<br>
 <input type=submit name=cut value='<<<'><p>  <input type=submit name=cut value='<<<'><p>
 <hr>  <hr>
   Copy selected<br>
   <input type=submit name=copy value='<--'><p>
   <hr>
 Paste after selected<br>  Paste after selected<br>
 <input type=submit name=paste value='>>>'>  <input type=submit name=paste value='-->'>
 </td>  </td>
 <td bgcolor="#FFFFCC"><select name="target" multiple>  <td bgcolor="#FFFFCC"><select name="target" multiple>
 $targetwindow  $targetwindow

Removed from v.1.22  
changed lines
  Added in v.1.25


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