--- rat/lonratedt.pm 2002/08/31 00:42:30 1.34 +++ rat/lonratedt.pm 2002/12/06 12:58:11 1.42 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Edit Handler for RAT Maps # -# $Id: lonratedt.pm,v 1.34 2002/08/31 00:42:30 www Exp $ +# $Id: lonratedt.pm,v 1.42 2002/12/06 12:58:11 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -103,7 +103,12 @@ sub mapread { } } } - +# ---------------------------------------------- Did we just read an empty map? + if ($#resources<1) { + undef $resources[0]; + $resources[1]=':::start'; + $resources[2]=':::finish'; + } # -------------------------------------------------- This is a linear map, sort my $startidx=0; @@ -300,6 +305,7 @@ sub pastetarget { my $ext='false'; if ($url=~/^http\:\/\//) { $ext='true'; } $url=~s/\:/\:/g; + $name=~s/\:/\:/g; $resources[$idx]=$name.':'.$url.':'.$ext.':normal:res'; } } @@ -323,7 +329,7 @@ sub startfinish { $resources[$#resources+1]='::false'; $order[1]=$#resources; } - my ($name,$url,$ext)=split(/\:/,$resources[$order[$#order]]); + ($name,$url,$ext)=split(/\:/,$resources[$order[$#order]]); $resources[$order[$#order]]=$name.':'.$url.':'.$ext.':finish:res'; } @@ -331,10 +337,16 @@ sub startfinish { sub storemap { my $realfn=shift; - my $fn=$realfn.'.tmp'; - unless (-e $fn) { - copy($realfn,$fn); + my $fn=$realfn; +# unless this is forced to work from the original file, use a temporary file +# instead + unless (shift) { + $fn=$realfn.'.tmp'; + unless (-e $fn) { + copy($realfn,$fn); + } } +# store data either into tmp or real file &startfinish(); my $output='graphdef<:>no'; my $k=1; @@ -474,10 +486,14 @@ sub smpedt { $targetmsg='Saving ...
'; copy($tmpfn,&Apache::lonnet::filelocation('',$url)); unlink($tmpfn); + my ($errtext,$fatal)= + &mapread(&Apache::lonnet::filelocation('',$url),''); } if ($ENV{'form.revert'}) { $targetmsg='Reverting ...
'; unlink($tmpfn); + my ($errtext,$fatal)= + &mapread(&Apache::lonnet::filelocation('',$url),''); } if (-e $tmpfn) { $targetmsg= @@ -670,7 +686,34 @@ sub smpedt { } &pastetarget($lastsel,@newsequence); &storemap(&Apache::lonnet::filelocation('',$url)); -# ------------------------------------------------ +# -------------------------------------------------------------------- Move up + } elsif ($ENV{'form.moveup'}) { + foreach (sort @targetselect) { + if ($_-1>0) { + my $movethis=$order[$_-1]; + $order[$_-1]=$order[$_-2]; + $order[$_-2]=$movethis; + } + } + &storemap(&Apache::lonnet::filelocation('',$url)); +# ------------------------------------------------------------------ Move down + } elsif ($ENV{'form.movedown'}) { + foreach (reverse sort @targetselect) { + if ($_-1<$#order) { + my $movethis=$order[$_-1]; + $order[$_-1]=$order[$_]; + $order[$_]=$movethis; + } + } + &storemap(&Apache::lonnet::filelocation('',$url)); +# --------------------------------------------------------------------- Rename + } elsif ($ENV{'form.renameres'}) { + my $residx=$Apache::lonratedt::order[$ENV{'form.renameidx'}-1]; + my ($name,@resrest)=split(/\:/,$Apache::lonratedt::resources[$residx]); + $name=$ENV{'form.renametitle'}; + $name=~s/\:/\&colon\;/g; + $Apache::lonratedt::resources[$residx]=$name.':'.join(':',@resrest); + &storemap(&Apache::lonnet::filelocation('',$url)); } # ------------------------------------------------------------ Assemble windows @@ -691,6 +734,7 @@ sub smpedt { } split(/\&/,$importdetail)); $idx=0; + $targetdetail=''; my $targetwindow= ''. join("\n",map { @@ -700,6 +744,7 @@ sub smpedt { $targetdetail.='&'.&Apache::lonnet::escape($name).'='. &Apache::lonnet::escape($url); $idx++; + $name=~s/\:/\:/g; ''; } @order); @@ -731,21 +776,43 @@ sub smpedt { [document.forms.simpleedit.importsel.selectedIndex]); } + function renametarget() { + var selidx=document.forms.simpleedit.target.selectedIndex; + var entry=(document.forms.simpleedit.targetdetail.value.split('&')) + [selidx]; + var oldname=unescape((entry.split('='))[0]); + var nameparts=oldname.split(':'); + oldname=unescape(nameparts.join(':')); + nameparts=oldname.split('"'); + oldname=unescape(nameparts.join('"')); + nameparts=oldname.split('''); + oldname=unescape(nameparts.join("'")); + newtitle=prompt('New Title',oldname); + if (newtitle) { + document.forms.simpleedit.renameres.value=1; + document.forms.simpleedit.renameidx.value=selidx; + document.forms.simpleedit.renametitle.value=newtitle; + document.forms.simpleedit.submit(); + } + } + $bodytag $buttons $errtext -

$url

+ + + - + - +
Import
Temporary Assembly Workspace  Target
File: $url
- - + + after selected
@@ -759,10 +826,14 @@ value="Browse">
  +"javascript:impfortarget.value=1;groupsearch()" value="Search"> +"javascript:impfortarget.value=1;groupimport();" value="Import"> after selected +
+ + +
$targetmsg