--- loncom/homework/structuretags.pm 2011/07/28 03:13:58 1.495 +++ loncom/homework/structuretags.pm 2011/12/20 22:46:40 1.499 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # definition of tags that give a structure to a document # -# $Id: structuretags.pm,v 1.495 2011/07/28 03:13:58 raeburn Exp $ +# $Id: structuretags.pm,v 1.499 2011/12/20 22:46:40 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -208,7 +208,11 @@ sub page_start { my $navmap = Apache::lonnavmaps::navmap->new(); if (ref($navmap)) { my $mapres = $navmap->getResourceByUrl($map); - unless ($mapres->is_page()) { + my $is_page; + if (ref($mapres)) { + $is_page = $mapres->is_page(); + } + unless ($is_page) { $needs_upload = 1; } } @@ -218,7 +222,11 @@ sub page_start { my $navmap = Apache::lonnavmaps::navmap->new(); if (ref($navmap)) { my $mapres = $navmap->getResourceByUrl($map); - unless ($mapres->is_page()) { + my $is_page; + if (ref($mapres)) { + $is_page = $mapres->is_page(); + } + unless ($is_page) { my $res = $navmap->getBySymb($symb); if (ref($res)) { my $partlist = $res->parts(); @@ -275,7 +283,7 @@ sub page_start { &Apache::lonhtmlcommon::clear_breadcrumbs(); &Apache::lonhtmlcommon::add_breadcrumb({ 'text' => 'Construction Space', - 'href' => &Apache::loncommon::authorspace(), + 'href' => &Apache::loncommon::authorspace($env{'request.uri'}), }); # breadcrumbs (and tools) will be created # in start_page->bodytag->innerregister @@ -952,6 +960,9 @@ sub reset_problem_globals { undef(%Apache::lonhomework::history); undef(%Apache::lonhomework::results); undef($Apache::inputtags::part); + if ($type eq 'Task') { + undef($Apache::inputtags::slot_name); + } #don't undef this, lonhomework.pm takes care of this, we use this to #detect if we try to do 2 problems in one file # undef($Apache::lonhomework::parsing_a_problem); @@ -1121,6 +1132,9 @@ sub start_problem { ( $status eq 'BANNED') || ( $status eq 'UNAVAILABLE') || ( $status eq 'NOT_IN_A_SLOT') || + ( $status eq 'NOTRESERVABLE') || + ( $status eq 'RESERVABLE') || + ( $status eq 'RESERVABLE_LATER') || ( $status eq 'INVALID_ACCESS')) { my $bodytext=&Apache::lonxml::get_all_text("/problem",$parser, $style); @@ -1130,9 +1144,12 @@ sub start_problem { $msg.='

'.&mt('Unable to determine if this resource is open due to network problems. Please try again later.').'

'; } elsif ($status eq 'NOT_IN_A_SLOT') { $msg.='

'.&mt('You are not currently signed up to work at this time and/or place.').'

'; + } elsif (($status eq 'RESERVABLE') || ($status eq 'RESERVABLE_LATER') || + ($status eq 'NOTRESERVABLE')) { + $msg.='

'.&mt('Access requires reservation to work at specific time/place.').'

'; } elsif ($status ne 'NOT_YET_VIEWED') { $msg.='

'.&mt('Not open to be viewed').'

'; - } + } if ($status eq 'CLOSED' || $status eq 'INVALID_ACCESS') { $msg.=&mt('The problem ').$accessmsg; } elsif ($status eq 'UNCHECKEDOUT') { @@ -1141,6 +1158,16 @@ sub start_problem { $msg.=&firstaccess_msg($accessmsg,$symb); } elsif ($status eq 'NOT_IN_A_SLOT') { $msg.=&Apache::bridgetask::add_request_another_attempt_button("Sign up for time to work"); + } elsif ($status eq 'RESERVABLE') { + $msg.=&mt('Available to make a reservation.').' '.&mt('Reservation window closes [_1].', + &Apache::lonnavmaps::timeToHumanString($accessmsg,'end')). + '
'. + &Apache::bridgetask::add_request_another_attempt_button("Sign up for time to work"); + } elsif ($status eq 'RESERVABLE_LATER') { + $msg.=&mt('Window to make a reservation will open [_1].', + &Apache::lonnavmaps::timeToHumanString($accessmsg,'start')); + } elsif ($status eq 'NOTRESERVABLE') { + $msg.=&mt('Not available to make a reservation.'); } $result.=$msg.'
'; } elsif ($target eq 'tex') {