--- rat/lonsequence.pm 2002/08/31 00:43:13 1.14 +++ rat/lonsequence.pm 2004/05/21 20:16:40 1.17 @@ -2,7 +2,7 @@ # # Sequence Handler # -# $Id: lonsequence.pm,v 1.14 2002/08/31 00:43:13 www Exp $ +# $Id: lonsequence.pm,v 1.17 2004/05/21 20:16:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -46,6 +46,7 @@ use Apache::lonratedt; use Apache::lonratsrv; use Apache::lonpageflip; use Apache::loncommon; +use Apache::lonlocal; my %selhash; my $successtied; @@ -62,6 +63,16 @@ sub attemptread { } } +sub mapread { + my $fn=shift; + &Apache::lonnet::repcopy($fn); + if (-e $fn) { + return &Apache::lonratedt::mapread($fn,''); + } else { + return (); + } +} + # ---------------------------------------------------------------- View Handler sub viewmap { @@ -152,6 +163,10 @@ ENDSELECT } } # ----------------------------- successtied is now '1' if in working selectmode + my ($errtext,$fatal)=&mapread(&Apache::lonnet::filelocation('',$url),''); + if ($fatal==1) { + $r->print('

'.&mt('Map contents are not shown in order.').'


'); + } my $idx=0; foreach (&attemptread(&Apache::lonnet::filelocation('',$url))) { if (defined($_)) { @@ -163,7 +178,7 @@ ENDSELECT $title=~s/\&colon\;/\:/g; $url=~s/\&colon\;/\:/g; unless ($title) { $title=(split(/\//,$url))[-1] }; - unless ($title) { $title='Empty'; } + unless ($title) { $title=''.&mt('Empty').''; } if ($url) { if ($successtied) { my $checked=''; @@ -215,7 +230,7 @@ sub handler { my $r=shift; if ($r->header_only) { - $r->content_type('text/html'); + &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; return OK; } @@ -248,6 +263,7 @@ sub handler { if (tie(%bighash,'GDBM_File',$ENV{'request.course.fn'}.'.db', &GDBM_READER(),0640)) { my $disid=''; + my $randomout =''; if ($direction eq 'back') { $disid=$bighash{'map_finish_'.$requrl}; @@ -257,9 +273,10 @@ sub handler { if ($disid) { $disurl=$bighash{'src_'.$disid}; $dismapid=(split(/\./,$disid))[1]; + $randomout = $bighash{'randomout_'.$disid}; } -# ------------------------- If this is an empty one, skip to next non-empty one - if ((!$disurl) && ($disid)) { +# ----------- If this is an empty one, or hidden, skip to next non-empty or non-hidden one + if ( ((!$disurl) && ($disid)) || ($randomout && $disid) ) { $direction=($direction?$direction:'forward'); ($disid,$requrl)= &Apache::lonpageflip::fullmove($disid, @@ -281,11 +298,11 @@ sub handler { # -------------------------------------------------- Has first or last resource &Apache::lonnet::symblist($requrl,$disurl => $dismapid, 'last_known' => &Apache::lonnet::declutter($disurl)); - $r->content_type('text/html'); + &Apache::loncommon::content_type($r,'text/html'); $r->header_out(Location => 'http://'.$ENV{'HTTP_HOST'}.$disurl); return REDIRECT; } else { - $r->content_type('text/html'); + &Apache::loncommon::content_type($r,'text/html'); $r->send_http_header; &viewmap($r,$requrl); return OK;