--- loncom/interface/londocs.pm 2004/05/06 18:28:16 1.124 +++ loncom/interface/londocs.pm 2004/05/06 20:34:06 1.125 @@ -1,7 +1,7 @@ # The LearningOnline Network # Documents # -# $Id: londocs.pm,v 1.124 2004/05/06 18:28:16 www Exp $ +# $Id: londocs.pm,v 1.125 2004/05/06 20:34:06 www Exp $ # # Copyright Michigan State University Board of Trustees # @@ -326,7 +326,34 @@ sub editor { my $newpos=$ENV{'form.newpos'}-1; my $currentpos=$ENV{'form.currentpos'}-1; - $r->print('Sorting '.$idx.': '.$currentpos.' -> '.$newpos); + my $i; + my @neworder=(); + if ($newpos>$currentpos) { +# moving stuff up + for ($i=0;$i<$currentpos;$i++) { + $neworder[$i]=$Apache::lonratedt::order[$i]; + } + for ($i=$currentpos;$i<$newpos;$i++) { + $neworder[$i]=$Apache::lonratedt::order[$i+1]; + } + $neworder[$newpos]=$Apache::lonratedt::order[$currentpos]; + for ($i=$newpos+1;$i<=$#Apache::lonratedt::order;$i++) { + $neworder[$i]=$Apache::lonratedt::order[$i]; + } + } else { +# moving stuff down + for ($i=0;$i<$newpos;$i++) { + $neworder[$i]=$Apache::lonratedt::order[$i]; + } + $neworder[$newpos]=$Apache::lonratedt::order[$currentpos]; + for ($i=$newpos+1;$i<$currentpos+1;$i++) { + $neworder[$i]=$Apache::lonratedt::order[$i-1]; + } + for ($i=$currentpos+1;$i<=$#Apache::lonratedt::order;$i++) { + $neworder[$i]=$Apache::lonratedt::order[$i]; + } + } + @Apache::lonratedt::order=@neworder; } # store the changed version