--- rat/lonratedt.pm 2002/05/11 23:23:01 1.10 +++ rat/lonratedt.pm 2002/05/13 19:38:32 1.14 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Edit Handler for RAT Maps # -# $Id: lonratedt.pm,v 1.10 2002/05/11 23:23:01 www Exp $ +# $Id: lonratedt.pm,v 1.14 2002/05/13 19:38:32 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -166,6 +166,109 @@ sub buttons { sub smpedt { my ($r,$errtext)=@_; my $buttons=&buttons(2); + +# ---------------------------------------------------------- Process form input + + my @importselect=(); + my @targetselect=(); + undef @importselect; + undef @targetselect; + if (defined($ENV{'form.import'})) { + if (ref($ENV{'form.import'})) { + @importselect=sort($ENV->{'form.import'}); + } else { + @importselect=($ENV{'form.import'}); + } + } + if (defined($ENV{'form.target'})) { + if (ref($ENV{'form.target'})) { + @targetselect=sort($ENV->{'form.target'}); + } else { + @targetselect=($ENV{'form.target'}); + } + } +# ============================================================ Process commands + + my $targetdetail=$ENV{'form.targetdetail'}; + my $importdetail=$ENV{'form.curimpdetail'}; + +# ---------------------------------------------------- Importing from groupsort + if ($ENV{'form.importdetail'}) { + + $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.='&'.&Apache::lonnet::escape($name).'='. + &Apache::lonnet::escape($url); + } + } + + $importdetail.='&'.$ENV{'form.importdetail'}; + + for (my $i=$lastsel+1;$i<=$#curimport;$i++) { + my ($name,$url)=split(/\=/,$curimport[$i]); + if ($url) { + $importdetail.='&'.&Apache::lonnet::escape($name).'='. + &Apache::lonnet::escape($url); + } + } + $importdetail=~s/\&+/\&/g; + $importdetail=~s/^\&//; + +# ------------------------------------------------------------------- Clear all + } elsif ($ENV{'form.clear'}) { + $importdetail=''; +# ------------------------------------------------------------ Discard selected + } elsif ($ENV{'form.discard'}) { + $importdetail=''; + my @curimport=split(/\&/,$ENV{'form.curimpdetail'}); + foreach (@importselect) { + $curimport[$_]=''; + } + for (my $i=0;$i<=$#curimport;$i++) { + my ($name,$url)=split(/\=/,$curimport[$i]); + if ($url) { + $importdetail.='&'.&Apache::lonnet::escape($name).'='. + &Apache::lonnet::escape($url); + } + } +# --------------------------- + } + +# ------------------------------------------------------------ Assemble windows + + my $idx=-1; + my $importwindow=join("\n",map { + $idx++; + if ($_) { + my ($name)=split(/\=/,$_); + unless ($name) { $name='UNKNOWN'; } + ''.&Apache::lonnet::unescape($name). + ''; + } + } split(/\&/,$importdetail)); + + $idx=0; + my $targetwindow=join("\n",map { + my ($name,$url)=split(/\:/,$resources[$_]); + unless ($name) { $name='UNKNOWN'; } + $targetdetail.='&'.&Apache::lonnet::escape($name).'='. + &Apache::lonnet::escape($url); + $idx++; + ''.$name.''; + } @order); + # ----------------------------------------------------- Start simple RAT screen $r->print(< @@ -254,15 +357,47 @@ function idxcheck(mode) { $buttons $errtext -Group Search -Group Import - + + + + Import + +Target + + + +after selected + + + + + + + + +$importwindow + + + +Cut selected + + +Paste after selected + + + +$targetwindow + + + + + + +
+