--- rat/lonpage.pm 2022/09/19 20:01:39 1.111.2.13.2.3 +++ rat/lonpage.pm 2023/09/11 12:11:26 1.111.2.13.2.6 @@ -1,7 +1,7 @@ # The LearningOnline Network with CAPA # Page Handler # -# $Id: lonpage.pm,v 1.111.2.13.2.3 2022/09/19 20:01:39 raeburn Exp $ +# $Id: lonpage.pm,v 1.111.2.13.2.6 2023/09/11 12:11:26 raeburn Exp $ # # Copyright Michigan State University Board of Trustees # @@ -268,6 +268,7 @@ sub handler { my $nforms=0; my $nuploads=0; my $ntimers=0; + my $hasnumresp; my %turninpaths; my %multiresps; my $turninparent; @@ -515,6 +516,11 @@ ENDEXT $ntimers++; $hastimer = 1; } + unless ($hasnumresp) { + if ($output=~/\]+class\s*=\s*[\'\"]*([^\'\"\>]+|)LC_numresponse_text/) { + $hasnumresp = 1; + } + } $output=~ s/\<((?:input|select|button|textarea)[^\>]+)name\s*\=\s*[\'\"]*([^\'\"]+)[\'\"]*([^\>]*)\>/\<$1 name="$prefix$2" $3\>/gsi; $output=~ @@ -686,7 +692,7 @@ ENDEXT # ---------------------------------------------------------------- End SSI cell } } - } + } } unless ($contents) { &Apache::loncommon::content_type($r,'text/html'); @@ -956,8 +962,11 @@ ENDEXT &mt('Processing your submission ...').''); } unless (($target eq 'tex') || ($target eq 'tex_answer')) { - $r->print(&Apache::loncommon::end_page({'discussion' - => 1,})); + my $args = {'discussion' => 1}; + if ($hasnumresp) { + $args->{'dashjs'} = 1; + } + $r->print(&Apache::loncommon::end_page($args)); } else { $r->print('\end{document}'.$number_of_columns); } @@ -968,9 +977,26 @@ ENDEXT } # ------------------------------------------------------------- End render page } else { - &Apache::loncommon::content_type($r,'text/html'); - $r->send_http_header; - &Apache::lonsequence::viewmap($r,$requrl); + if ($hash{'map_type_'.$hash{'map_pc_'.$requrl}} eq 'none') { + &Apache::loncommon::content_type($r,'text/html'); + $r->send_http_header; + $r->print(&Apache::loncommon::start_page(undef,undef, + {'force_register' => 1,})); + my $crstype = &Apache::loncommon::course_type(); + if (&Apache::lonnet::allowed('mdc',$env{'request.course.id'})) { + $r->print(''.&mt('Missing composite page file.').'
'. + &mt("You may want to use the $crstype Editor to remove this item.")); + } else { + $r->print(''. + &mt('This resource was unavailable when your '.lc($crstype).' session was loaded').'
'. + &mt("Please use 'Contents' to list items available in the $crstype.").'
'); + } + $r->print(&Apache::loncommon::end_page()); + } else { + &Apache::loncommon::content_type($r,'text/html'); + $r->send_http_header; + &Apache::lonsequence::viewmap($r,$requrl); + } } # ------------------------------------------------------------------ Untie hash unless (untie(%hash)) { @@ -999,6 +1025,7 @@ sub get_buttons { my ($aname,$shownsymb); if (($hash->{'encrypted_'.$rid}) && (!$env{'request.role.adv'})) { $aname = 'LC_'.$rid; + $shownsymb = &Apache::lonenc::encrypted($symb); } else { $shownsymb = $symb; my $dispsymb = $symb;