--- rat/lonratedt.pm 2002/05/13 15:36:05 1.12 +++ rat/lonratedt.pm 2002/05/13 21:26:05 1.15 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Edit Handler for RAT Maps # -# $Id: lonratedt.pm,v 1.12 2002/05/13 15:36:05 www Exp $ +# $Id: lonratedt.pm,v 1.15 2002/05/13 21:26:05 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -175,37 +175,100 @@ sub smpedt { undef @targetselect; if (defined($ENV{'form.import'})) { if (ref($ENV{'form.import'})) { - @importselect=$ENV->{'form.import'}; + @importselect=sort($ENV->{'form.import'}); } else { @importselect=($ENV{'form.import'}); } } if (defined($ENV{'form.target'})) { if (ref($ENV{'form.target'})) { - @targetselect=$ENV->{'form.target'}; + @targetselect=sort($ENV->{'form.target'}); } else { @targetselect=($ENV{'form.target'}); } } -# --------------------------------------------------------- +# ============================================================ Process commands - my $targetdetail=(); + 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); + } + } +# --------------------------- + } - my @imporder=(); - my @impresources=(); - my $importdetail=''; # ------------------------------------------------------------ Assemble windows - my $importwindow=join("\n",map { - my ($name)=split(/\:/,$impresources[$_]); - unless ($name) { $name='UNKNOWN'; } - ''; - } @imporder); + my $idx=-1; + my $importwindow=join("\n",map { + $idx++; + if ($_) { + my ($name,$url)=split(/\=/,$_); + unless ($name) { $name=(split(/\//,$url))[-1]; } + unless ($name) { $name='EMPTY'; } + ''; + } + } split(/\&/,$importdetail)); + $idx=0; my $targetwindow=join("\n",map { - my ($name)=split(/\:/,$resources[$_]); - unless ($name) { $name='UNKNOWN'; } - ''; + my ($name,$url)=split(/\:/,$resources[$_]); + unless ($name) { $name=(split(/\//,$url))[-1]; } + unless ($name) { $name='EMPTY'; } + $targetdetail.='&'.&Apache::lonnet::escape($name).'='. + &Apache::lonnet::escape($url); + $idx++; + ''; } @order); # ----------------------------------------------------- Start simple RAT screen @@ -291,12 +354,36 @@ function idxcheck(mode) { } idx.focus(); } + + + var editbrowser; + function openbrowser(formname,elementname,only,omit) { + var url = '/res/?'; + if (editbrowser == null) { + url += 'launch=1&'; + } + url += 'catalogmode=interactive&'; + url += 'mode=edit&'; + url += 'form=' + formname + '&'; + if (only != null) { + url += 'only=' + only + '&'; + } + if (omit != null) { + url += 'omit=' + omit + '&'; + } + url += 'element=' + elementname + ''; + var title = 'Browser'; + var options = 'scrollbars=1,resizable=1,menubar=0'; + options += ',width=700,height=600'; + editbrowser = open(url,title,options,'1'); + editbrowser.focus(); + } $buttons $errtext -
+ @@ -304,7 +391,15 @@ $buttons
ImportTarget
- + +after selected +
+ +
+ +
  @@ -324,7 +419,8 @@ Paste after selected
$targetwindow
- + +
@@ -357,7 +453,8 @@ sub viewmap { my ($title,$url)=split(/\:/,$_); $title=~s/\&colon\;/\:/g; $url=~s/\&colon\;/\:/g; - unless ($title) { $title='Unknown'; } + unless ($title) { $title=(split(/\//,$url))[-1] }; + unless ($title) { $title='Empty'; } if ($url) { $r->print(''); }