Diff for /loncom/homework/lonhomework.pm between versions 1.379 and 1.383

version 1.379, 2023/11/07 12:26:00 version 1.383, 2024/02/21 19:50:21
Line 163  sub get_target { Line 163  sub get_target {
                 return ('web','answer');                  return ('web','answer');
             } elsif (($env{'form.problemmode'} eq 'saveedit') ||              } elsif (($env{'form.problemmode'} eq 'saveedit') ||
                      ($env{'form.problemmode'} eq 'undo')) {                       ($env{'form.problemmode'} eq 'undo')) {
                 return ('modified','no_output_web','edit');                  my %editors = &Apache::loncommon::permitted_editors();
                   if ($editors{'edit'}) {
                       return ('modified','no_output_web','edit');
                   } else {
                       return ('web');
                   }
             } elsif ($env{'form.problemmode'} eq 'edit') {              } elsif ($env{'form.problemmode'} eq 'edit') {
  return ('no_output_web','edit');                  my %editors = &Apache::loncommon::permitted_editors();
                   if ($editors{'edit'}) {
       return ('no_output_web','edit');
                   } else {
                       return ('web');
                   }
     } else {      } else {
  return ('web');   return ('web');
     }      }
Line 939  STATE Line 949  STATE
   
 sub analyze_header {  sub analyze_header {
     my ($request) = @_;      my ($request) = @_;
     my $js = &Apache::structuretags::setmode_javascript();      my $js = &Apache::lonxml::setmode_javascript();
   
     # Breadcrumbs      # Breadcrumbs
     my $text = 'Authoring Space';      my $text = 'Authoring Space';
Line 964  sub analyze_header { Line 974  sub analyze_header {
                                        {'bread_crumbs' => $brcrum,})                                         {'bread_crumbs' => $brcrum,})
        .&Apache::loncommon::head_subbox(         .&Apache::loncommon::head_subbox(
                 &Apache::loncommon::CSTR_pageheader());                  &Apache::loncommon::CSTR_pageheader());
       my %lt = &Apache::lonlocal::texthash(
                    edit => 'Edit',
                    editxml => 'EditXML',
                );
     $result .=       $result .= 
     '<form name="lonhomework" method="post" action="'.      '<form name="lonhomework" method="post" action="'.
     &HTML::Entities::encode($env{'request.uri'},'<>&"').'">'.      &HTML::Entities::encode($env{'request.uri'},'<>&"').'">'.
             '<input type="hidden" name="problemmode" value="'.              '<input type="hidden" name="problemmode" value="'.
             $env{'form.problemmode'}.'" />'.              $env{'form.problemmode'}.'" />'.
     &Apache::structuretags::remember_problem_state().'      &Apache::structuretags::remember_problem_state().'
             <div class="LC_edit_problem_analyze_header">              <div class="LC_edit_problem_analyze_header">';
             <input type="button" name="submitmode" value="'.&mt("EditXML").'" '.       my %editors = &Apache::loncommon::permitted_editors();
             'onclick="javascript:setmode(this.form,'."'editxml'".')" />       foreach my $item ('editxml','edit') {
             <input type="button" name="submitmode" value="'.&mt('Edit').'" '.           next unless ($editors{$item});
             'onclick="javascript:setmode(this.form,'."'edit'".')" />           $result .= '<input type="button" name="submitmode" value="'.$lt{$item}.'" '.
             <hr />                      'onclick="javascript:setmode(this.form,'."'$item'".')" />'.
                       "\n";
        }
        $result .=
               '<hr />
             <input type="button" name="submitmode" value="'.&mt("View").'" '.              <input type="button" name="submitmode" value="'.&mt("View").'" '.
             'onclick="javascript:setmode(this.form,'."'view'".')" />              'onclick="javascript:setmode(this.form,'."'view'".')" />
             <hr />              <hr />
Line 1180  sub editxmlmode { Line 1198  sub editxmlmode {
  my $js =   my $js =
     &Apache::edit::js_change_detection().       &Apache::edit::js_change_detection(). 
     &Apache::loncommon::resize_textarea_js().      &Apache::loncommon::resize_textarea_js().
             &Apache::structuretags::setmode_javascript().              &Apache::lonxml::setmode_javascript().
             &Apache::lonhtmlcommon::dragmath_js("EditMathPopup");              &Apache::lonhtmlcommon::dragmath_js("EditMathPopup");
   
     # Breadcrumbs      # Breadcrumbs
Line 1708  sub handler { Line 1726  sub handler {
                      ($env{'form.problemmode'} eq 'saveeditxml') ||                       ($env{'form.problemmode'} eq 'saveeditxml') ||
                      ($env{'form.problemmode'} eq 'saveviewxml') ||                       ($env{'form.problemmode'} eq 'saveviewxml') ||
                      ($env{'form.problemmode'} eq 'undoxml')) {                       ($env{'form.problemmode'} eq 'undoxml')) {
  &editxmlmode($request,$file);                  my %editors = &Apache::loncommon::permitted_editors();
                   if (($editors{'xml'}) || ($env{'form.problemmode'} eq 'saveviewxml') || ($env{'form.problemmode'} eq 'undoxml')) {
       &editxmlmode($request,$file);
                   } else {
                       &update_construct_style();
                       &renderpage($request,$file);
                   }
     } elsif ($env{'form.problemmode'} eq 'calcanswers') {      } elsif ($env{'form.problemmode'} eq 'calcanswers') {
  &analyze($request,$file);   &analyze($request,$file);
     } else {      } else {
Line 1965  sub do_ltipassback { Line 1989  sub do_ltipassback {
                     my $url = $item->{'pburl'};                      my $url = $item->{'pburl'};
                     my $type = $item->{'pbtype'};                      my $type = $item->{'pbtype'};
                     my $scope = $item->{'scope'};                      my $scope = $item->{'scope'};
                     my $map = $item->{'ltimap'};                      my $map = $item->{'pbmap'};
                     my $symb = $item->{'ltisymb'};                      my $symb = $item->{'pbsymb'};
                     my $uname = $item->{'uname'};                      my $uname = $item->{'uname'};
                     my $udom = $item->{'udom'};                      my $udom = $item->{'udom'};
                     my $keynum = $item->{'lti'}->{'cipher'};                      my $keynum = $item->{'lti'}->{'cipher'};
Line 1976  sub do_ltipassback { Line 2000  sub do_ltipassback {
                     if ($scope eq 'resource') {                      if ($scope eq 'resource') {
                         $total = $item->{'total'};                          $total = $item->{'total'};
                         $possible = $item->{'possible'};                          $possible = $item->{'possible'};
                     } elsif ($scope eq 'map') {                      } elsif (($scope eq 'map') || ($scope eq 'nonrec')) {
                         ($total,$possible) = &get_lti_score($uname,$udom,$map);                          ($total,$possible) = &get_lti_score($uname,$udom,$map,$scope);
                     } elsif ($scope eq 'course') {                      } elsif ($scope eq 'course') {
                         ($total,$possible) = &get_lti_score($uname,$udom);                          ($total,$possible) = &get_lti_score($uname,$udom);
                     }                      }
Line 1992  sub do_ltipassback { Line 2016  sub do_ltipassback {
 }  }
   
 sub get_lti_score {  sub get_lti_score {
     my ($uname,$udom,$mapurl) = @_;      my ($uname,$udom,$mapurl,$scope) = @_;
     my $navmap = Apache::lonnavmaps::navmap->new($uname,$udom);      my $navmap = Apache::lonnavmaps::navmap->new($uname,$udom);
     if (ref($navmap)) {      if (ref($navmap)) {
         my $iterator;          my $iterator;
Line 2000  sub get_lti_score { Line 2024  sub get_lti_score {
             my $map = $navmap->getResourceByUrl($mapurl);              my $map = $navmap->getResourceByUrl($mapurl);
             my $firstres = $map->map_start();              my $firstres = $map->map_start();
             my $finishres = $map->map_finish();              my $finishres = $map->map_finish();
             $iterator = $navmap->getIterator($firstres,$finishres,undef,1);              my $recursive = 1;
               if ($scope eq 'nonrec') {
                   $recursive = 0;
               }
               $iterator = $navmap->getIterator($firstres,$finishres,undef,$recursive);
         } else {          } else {
             $iterator = $navmap->getIterator(undef,undef,undef,1);              $iterator = $navmap->getIterator(undef,undef,undef,1);
         }          }

Removed from v.1.379  
changed lines
  Added in v.1.383


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>