Diff for /loncom/interface/domainprefs.pm between versions 1.344 and 1.345

version 1.344, 2018/12/08 15:03:25 version 1.345, 2018/12/26 20:10:24
Line 2836  sub lti_toggle_js { Line 2836  sub lti_toggle_js {
 // <![CDATA[  // <![CDATA[
   
 function toggleLTI(form,setting,item) {  function toggleLTI(form,setting,item) {
     if ((setting == 'user') || (setting == 'crs') || (setting == 'passback')) {      if (setting == 'requser') {
           var fieldsets = document.getElementsByClassName('ltioption_'+item);
           if (fieldsets.length) {
               var radioname = 'lti_'+setting+'_'+item;
               var num = form.elements[radioname].length;
               if (num) {
                   var setvis = '';
                   for (var i=0; i<num; i++) {
                       if (form.elements[radioname][i].checked) {
                           if (form.elements[radioname][i].value == '1') {
                              setvis = 1;
                              break;
                           }
                       }
                   }
                   for (var j=0; j<fieldsets.length; j++) { 
                       if (setvis) {
                           fieldsets[j].style.display = 'block';
                       } else {
                           fieldsets[j].style.display = 'none';
                       }
                   }
               }
           }
       } else if ((setting == 'user') || (setting == 'crs') || (setting == 'passback')) {
         var radioname = '';          var radioname = '';
         var divid = '';          var divid = '';
         if (setting == 'user') {          if (setting == 'user') {
Line 4767  sub print_lti { Line 4791  sub print_lti {
         for (my $i=0; $i<@items; $i++) {          for (my $i=0; $i<@items; $i++) {
             $css_class = $itemcount%2?' class="LC_odd_row"':'';              $css_class = $itemcount%2?' class="LC_odd_row"':'';
             my $item = $ordered{$items[$i]};              my $item = $ordered{$items[$i]};
             my ($key,$secret,$lifetime,$consumer,$current);              my ($key,$secret,$lifetime,$consumer,$requser,$current);
             if (ref($settings->{$item}) eq 'HASH') {              if (ref($settings->{$item}) eq 'HASH') {
                 $key = $settings->{$item}->{'key'};                  $key = $settings->{$item}->{'key'};
                 $secret = $settings->{$item}->{'secret'};                  $secret = $settings->{$item}->{'secret'};
                 $lifetime = $settings->{$item}->{'lifetime'};                  $lifetime = $settings->{$item}->{'lifetime'};
                 $consumer = $settings->{$item}->{'consumer'};                  $consumer = $settings->{$item}->{'consumer'};
                   $requser = $settings->{$item}->{'requser'};
                 $current = $settings->{$item};                  $current = $settings->{$item};
             }              }
               my $onclickrequser = ' onclick="toggleLTI(this.form,'."'requser','$i'".');"';
               my %checkedrequser = (
                                      yes => ' checked="checked"',
                                      no  => '',
                                    );
               if (!$requser) {
                   $checkedrequser{'no'} = $checkedrequser{'yes'};
                   $checkedrequser{'yes'} = '';
               } 
             my $chgstr = ' onchange="javascript:reorderLTI(this.form,'."'lti_pos_".$item."'".');"';              my $chgstr = ' onchange="javascript:reorderLTI(this.form,'."'lti_pos_".$item."'".');"';
             $datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'              $datatable .= '<tr '.$css_class.'><td><span class="LC_nobreak">'
                          .'<select name="lti_pos_'.$item.'"'.$chgstr.'>';                           .'<select name="lti_pos_'.$item.'"'.$chgstr.'>';
Line 4792  sub print_lti { Line 4826  sub print_lti {
                 '<td colspan="2">'.                  '<td colspan="2">'.
                 '<fieldset><legend>'.&mt('Required settings').'</legend>'.                  '<fieldset><legend>'.&mt('Required settings').'</legend>'.
                 '<span class="LC_nobreak">'.$lt{'consumer'}.                  '<span class="LC_nobreak">'.$lt{'consumer'}.
                 ':<input type="text" size="20" name="lti_consumer_'.$i.'" value="'.$consumer.'" /></span> '.                  ':<input type="text" size="15" name="lti_consumer_'.$i.'" value="'.$consumer.'" /></span> '.
                 ('&nbsp;'x2).                  ('&nbsp;'x2).
                 '<span class="LC_nobreak">'.$lt{'version'}.':<select name="lti_version_'.$i.'">'.                  '<span class="LC_nobreak">'.$lt{'version'}.':<select name="lti_version_'.$i.'">'.
                 '<option value="LTI-1p0" selected="selected">1.1</option></select></span> '.                  '<option value="LTI-1p0" selected="selected">1.1</option></select></span> '.
                 ('&nbsp;'x2).                  ('&nbsp;'x2).
                 '<span class="LC_nobreak">'.$lt{'lifetime'}.':<input type="text" name="lti_lifetime_'.$i.'"'.                  '<span class="LC_nobreak">'.$lt{'lifetime'}.':<input type="text" name="lti_lifetime_'.$i.'"'.
                 'value="'.$lifetime.'" size="5" /></span>'.                  'value="'.$lifetime.'" size="3" /></span>'.
                   ('&nbsp;'x2).
                    '<span class="LC_nobreak">'.$lt{'requser'}.':'.
                    '<label><input type="radio" name="lti_requser_'.$i.'" value="1"'.$onclickrequser.$checkedrequser{yes}.' />'.&mt('Yes').'</label>&nbsp;'."\n".
                    '<label><input type="radio" name="lti_requser_'.$i.'" value="0"'.$onclickrequser.$checkedrequser{no}.' />'.&mt('No').'</label></span>'."\n".
                 '<br /><br />'.                  '<br /><br />'.
                 '<span class="LC_nobreak">'.$lt{'key'}.                  '<span class="LC_nobreak">'.$lt{'key'}.
                 ':<input type="text" size="25" name="lti_key_'.$i.'" value="'.$key.'" /></span> '.                  ':<input type="text" size="25" name="lti_key_'.$i.'" value="'.$key.'" /></span> '.
Line 4829  sub print_lti { Line 4867  sub print_lti {
                   '<td colspan="2">'.                    '<td colspan="2">'.
                   '<fieldset><legend>'.&mt('Required settings').'</legend>'.                    '<fieldset><legend>'.&mt('Required settings').'</legend>'.
                   '<span class="LC_nobreak">'.$lt{'consumer'}.                    '<span class="LC_nobreak">'.$lt{'consumer'}.
                   ':<input type="text" size="20" name="lti_consumer_add" value="" /></span> '."\n".                    ':<input type="text" size="15" name="lti_consumer_add" value="" /></span> '."\n".
                   ('&nbsp;'x2).                    ('&nbsp;'x2).
                   '<span class="LC_nobreak">'.$lt{'version'}.':<select name="lti_version_add">'.                    '<span class="LC_nobreak">'.$lt{'version'}.':<select name="lti_version_add">'.
                   '<option value="LTI-1p0" selected="selected">1.1</option></select></span> '."\n".                    '<option value="LTI-1p0" selected="selected">1.1</option></select></span> '."\n".
                   ('&nbsp;'x2).                    ('&nbsp;'x2).
                   '<span class="LC_nobreak">'.$lt{'lifetime'}.':<input type="text" size="5" name="lti_lifetime_add" value="300" /></span> '."\n".                    '<span class="LC_nobreak">'.$lt{'lifetime'}.':<input type="text" size="3" name="lti_lifetime_add" value="300" /></span> '."\n".
                     ('&nbsp;'x2).
                     '<span class="LC_nobreak">'.$lt{'requser'}.':'.
                     '<label><input type="radio" name="lti_requser_add" value="1" onclick="toggleLTI(this.form,'."'requser','add'".');" checked="checked" />'.&mt('Yes').'</label>&nbsp;'."\n".
                     '<label><input type="radio" name="lti_requser_add" value="0" onclick="toggleLTI(this.form,'."'requser','add'".');" />'.&mt('No').'</label></span>'."\n".
                   '<br /><br />'.                    '<br /><br />'.
                   '<span class="LC_nobreak">'.$lt{'key'}.':<input type="text" size="25" name="lti_key_add" value="" /></span> '."\n".                    '<span class="LC_nobreak">'.$lt{'key'}.':<input type="text" size="25" name="lti_key_add" value="" /></span> '."\n".
                   ('&nbsp;'x2).                    ('&nbsp;'x2).
Line 4853  sub lti_names { Line 4895  sub lti_names {
                                           'url'       => 'URL',                                            'url'       => 'URL',
                                           'key'       => 'Key',                                            'key'       => 'Key',
                                           'lifetime'  => 'Nonce lifetime (s)',                                            'lifetime'  => 'Nonce lifetime (s)',
                                           'consumer'  => 'LTI Consumer',                                             'consumer'  => 'Consumer',
                                           'secret'    => 'Secret',                                            'secret'    => 'Secret',
                                             'requser'   => "User's identity sent",
                                           'email'     => 'Email address',                                            'email'     => 'Email address',
                                           'sourcedid' => 'User ID',                                            'sourcedid' => 'User ID',
                                           'other'     => 'Other',                                            'other'     => 'Other',
                                           'passback'  => 'Can return grades to Consumer:',                                            'passback'  => 'Can return grades to Consumer:',
                                           'roster'    => 'Can retrieve roster from Consumer:',                                            'roster'    => 'Can retrieve roster from Consumer:',
                                           'topmenu'   => 'Display LON-CAPA page header',                                            'topmenu'   => 'Display LON-CAPA page header',
                                           'inlinemenu'=> 'Display LON-CAPA inline menu',                                             'inlinemenu'=> 'Display LON-CAPA inline menu',
                                         );                                          );
     return %lt;      return %lt;
 }  }
Line 4887  sub lti_options { Line 4930  sub lti_options {
     my $crssecfieldsty = 'none';      my $crssecfieldsty = 'none';
     my $secsrcfieldsty = 'none';      my $secsrcfieldsty = 'none';
     my $passbacksty = 'none';      my $passbacksty = 'none';
       my $optionsty = 'block';
     my $lcauthparm;      my $lcauthparm;
     my $lcauthparmstyle = 'display:none';      my $lcauthparmstyle = 'display:none';
     my $lcauthparmtext;      my $lcauthparmtext;
Line 4895  sub lti_options { Line 4939  sub lti_options {
     my %menutitles = &ltimenu_titles();      my %menutitles = &ltimenu_titles();
   
     if (ref($current) eq 'HASH') {      if (ref($current) eq 'HASH') {
           if (!$current->{'requser'}) {
               $optionsty = 'none';
           }
         if (($current->{'mapuser'} ne '') && ($current->{'mapuser'} ne 'lis_person_sourcedid')) {          if (($current->{'mapuser'} ne '') && ($current->{'mapuser'} ne 'lis_person_sourcedid')) {
             $checked{'mapuser'}{'sourcedid'} = '';              $checked{'mapuser'}{'sourcedid'} = '';
             if ($current->{'mapuser'} eq 'lis_person_contact_email_primary') {              if ($current->{'mapuser'} eq 'lis_person_contact_email_primary') {
Line 4920  sub lti_options { Line 4967  sub lti_options {
                 $checked{'mapcrstype'}{$type} = ' checked="checked"';                  $checked{'mapcrstype'}{$type} = ' checked="checked"';
             }              }
         }          }
         if ($current->{'makecrs'}) {           if ($current->{'makecrs'}) {
             $checked{'makecrs'}{'Y'} = '  checked="checked"';              $checked{'makecrs'}{'Y'} = '  checked="checked"';
         }          }
         if (ref($current->{'makeuser'}) eq 'ARRAY') {          if (ref($current->{'makeuser'}) eq 'ARRAY') {
Line 5017  sub lti_options { Line 5064  sub lti_options {
     my $onclicksecsrc = ' onclick="toggleLTI(this.form,'."'secsrc','$num'".')"';      my $onclicksecsrc = ' onclick="toggleLTI(this.form,'."'secsrc','$num'".')"';
     my $onclicklcauth = ' onclick="toggleLTI(this.form,'."'lcauth','$num'".')"';      my $onclicklcauth = ' onclick="toggleLTI(this.form,'."'lcauth','$num'".')"';
     my $onclickmenu = ' onclick="toggleLTI(this.form,'."'lcmenu','$num'".');"';      my $onclickmenu = ' onclick="toggleLTI(this.form,'."'lcmenu','$num'".');"';
     my $output = '<fieldset><legend>'.&mt('Mapping users').'</legend>'.      my $output = '<fieldset class="ltioption_'.$num.'" style="display:'.$optionsty.'"><legend>'.&mt('Mapping users').'</legend>'.
                  '<div class="LC_floatleft"><span class="LC_nobreak">'.&mt('LON-CAPA username').':&nbsp;';                   '<div class="LC_floatleft"><span class="LC_nobreak">'.&mt('LON-CAPA username').':&nbsp;';
     foreach my $option ('sourcedid','email','other') {      foreach my $option ('sourcedid','email','other') {
         $output .= '<label><input type="radio" name="lti_mapuser_'.$num.'" value="'.$option.'"'.          $output .= '<label><input type="radio" name="lti_mapuser_'.$num.'" value="'.$option.'"'.
Line 5028  sub lti_options { Line 5075  sub lti_options {
                '<div class="LC_floatleft" style="display:'.$userfieldsty.';" id="lti_userfield_'.$num.'">'.                 '<div class="LC_floatleft" style="display:'.$userfieldsty.';" id="lti_userfield_'.$num.'">'.
                '<input type="text" name="lti_customuser_'.$num.'" '.                 '<input type="text" name="lti_customuser_'.$num.'" '.
                'value="'.$userfield.'" /></div></fieldset>'.                  'value="'.$userfield.'" /></div></fieldset>'. 
                '<fieldset><legend>'.&mt('Mapping course roles').'</legend><table><tr>';                 '<fieldset class="ltioption_'.$num.'" style="display:'.$optionsty.'"><legend>'.&mt('Mapping course roles').'</legend><table><tr>';
     foreach my $ltirole (@lticourseroles) {      foreach my $ltirole (@lticourseroles) {
         my ($selected,$selectnone);          my ($selected,$selectnone);
         if ($rolemaps{$ltirole} eq '') {          if ($rolemaps{$ltirole} eq '') {
Line 5052  sub lti_options { Line 5099  sub lti_options {
         $output .= '</select></td>';          $output .= '</select></td>';
     }      }
     $output .= '</tr></table></fieldset>'.      $output .= '</tr></table></fieldset>'.
                '<fieldset><legend>'.&mt('Roles which may create user accounts').'</legend>';                 '<fieldset class="ltioption_'.$num.'" style="display:'.$optionsty.'"><legend>'.&mt('Roles which may create user accounts').'</legend>';
     foreach my $ltirole (@ltiroles) {      foreach my $ltirole (@ltiroles) {
         $output .= '<span class="LC_nobreak"><label><input type="checkbox" name="lti_makeuser_'.$num.'" value="'.$ltirole.'"'.          $output .= '<span class="LC_nobreak"><label><input type="checkbox" name="lti_makeuser_'.$num.'" value="'.$ltirole.'"'.
                    $checked{'makeuser'}{$ltirole}.' />'.$ltirole.'</label>&nbsp;</span> ';                          $checked{'makeuser'}{$ltirole}.' />'.$ltirole.'</label>&nbsp;</span> ';     
     }      }
     $output .= '</fieldset>'.      $output .= '</fieldset>'.
                '<fieldset><legend>'.&mt('New user accounts created for LTI users').'</legend>'.                 '<fieldset class="ltioption_'.$num.'" style="display:'.$optionsty.'"><legend>'.&mt('New user accounts created for LTI users').'</legend>'.
                '<table>'.                 '<table>'.
                &modifiable_userdata_row('lti','instdata_'.$num,$current,$numinrow,$itemcount).                 &modifiable_userdata_row('lti','instdata_'.$num,$current,$numinrow,$itemcount).
                '</table>'.                 '</table>'.
Line 5081  sub lti_options { Line 5128  sub lti_options {
                '<span id="lti_lcauth_parmtext_'.$num.'">'.$lcauthparmtext.'</span>'.                 '<span id="lti_lcauth_parmtext_'.$num.'">'.$lcauthparmtext.'</span>'.
                '<input type="text" name="lti_lcauthparm_'.$num.'" value="" /></span></td></tr>'.                 '<input type="text" name="lti_lcauthparm_'.$num.'" value="" /></span></td></tr>'.
                '</table></fieldset>'.                 '</table></fieldset>'.
                '<fieldset><legend>'.&mt('Mapping courses').'</legend>'.                 '<fieldset class="ltioption_'.$num.'" style="display:'.$optionsty.'"><legend>'.&mt('Mapping courses').'</legend>'.
                '<div class="LC_floatleft"><span class="LC_nobreak">'.                 '<div class="LC_floatleft"><span class="LC_nobreak">'.
                &mt('Unique course identifier').':&nbsp;';                 &mt('Unique course identifier').':&nbsp;';
     foreach my $option ('course_offering_sourcedid','context_id','other') {      foreach my $option ('course_offering_sourcedid','context_id','other') {
Line 5099  sub lti_options { Line 5146  sub lti_options {
                    ('&nbsp;'x2);                     ('&nbsp;'x2);
     }      }
     $output .= '</span></fieldset>'.      $output .= '</span></fieldset>'.
                '<fieldset><legend>'.&mt('Creating courses').'</legend>'.                 '<fieldset class="ltioption_'.$num.'" style="display:'.$optionsty.'"><legend>'.&mt('Creating courses').'</legend>'.
                '<span class="LC_nobreak">'.&mt('Course created (if absent) on Instructor access').':&nbsp;'.                 '<span class="LC_nobreak">'.&mt('Course created (if absent) on Instructor access').':&nbsp;'.
                '<label><input type="radio" name="lti_makecrs_'.$num.'" value="0"'.                 '<label><input type="radio" name="lti_makecrs_'.$num.'" value="0"'.
                $checked{'makecrs'}{'N'}.' />'.&mt('No').'</label>'.('&nbsp;'x2).                 $checked{'makecrs'}{'N'}.' />'.&mt('No').'</label>'.('&nbsp;'x2).
                '<label><input type="radio" name="lti_makecrs_'.$num.'" value="1"'.                 '<label><input type="radio" name="lti_makecrs_'.$num.'" value="1"'.
                $checked{'makecrs'}{'Y'}.' />'.&mt('Yes').'</label></span>'.                 $checked{'makecrs'}{'Y'}.' />'.&mt('Yes').'</label></span>'.
                '</fieldset>'.                 '</fieldset>'.
                '<fieldset><legend>'.&mt('Roles which may self-enroll').'</legend>';                 '<fieldset class="ltioption_'.$num.'" style="display:'.$optionsty.'"><legend>'.&mt('Roles which may self-enroll').'</legend>';
     foreach my $lticrsrole (@lticourseroles) {      foreach my $lticrsrole (@lticourseroles) {
         $output .= '<span class="LC_nobreak"><label><input type="checkbox" name="lti_selfenroll_'.$num.'" value="'.$lticrsrole.'"'.          $output .= '<span class="LC_nobreak"><label><input type="checkbox" name="lti_selfenroll_'.$num.'" value="'.$lticrsrole.'"'.
                    $checked{'selfenroll'}{$lticrsrole}.' />'.$lticrsrole.'</label>&nbsp;</span> ';                     $checked{'selfenroll'}{$lticrsrole}.' />'.$lticrsrole.'</label>&nbsp;</span> ';
     }      }
     $output .= '</fieldset>'.      $output .= '</fieldset>'.
                '<fieldset><legend>'.&mt('Course options').'</legend>'.                 '<fieldset class="ltioption_'.$num.'" style="display:'.$optionsty.'"><legend>'.&mt('Course options').'</legend>'.
                '<div class="LC_floatleft"><span class="LC_nobreak">'.&mt('Assign users to sections').':&nbsp;'.                 '<div class="LC_floatleft"><span class="LC_nobreak">'.&mt('Assign users to sections').':&nbsp;'.
                '<label><input type="radio" name="lti_crssec_'.$num.'" value="0"'.                 '<label><input type="radio" name="lti_crssec_'.$num.'" value="0"'.
                $checked{'crssec'}{'N'}.$onclicksec.' />'.&mt('No').'</label>'.('&nbsp;'x2).                 $checked{'crssec'}{'N'}.$onclicksec.' />'.&mt('No').'</label>'.('&nbsp;'x2).
Line 5164  sub lti_options { Line 5211  sub lti_options {
                &mt('Outcomes Service (1.1)').'</label>'.('&nbsp;'x2).                 &mt('Outcomes Service (1.1)').'</label>'.('&nbsp;'x2).
                '<label><input type="radio" name="lti_passbackformat_'.$num.'" value="1.0"'.$pb1p0chk.'/>'.                 '<label><input type="radio" name="lti_passbackformat_'.$num.'" value="1.0"'.$pb1p0chk.'/>'.
                &mt('Outcomes Extension (1.0)').'</label></span></div></fieldset>'.                 &mt('Outcomes Extension (1.0)').'</label></span></div></fieldset>'.
                '<fieldset><legend>'.&mt('Course defaults (Course Coordinator can override)').'</legend>'.                 '<fieldset class="ltioption_'.$num.'" style="display:'.$optionsty.'"><legend>'.&mt('Course defaults (Course Coordinator can override)').'</legend>'.
                '<div class="LC_floatleft"><span class="LC_nobreak">'.$lt{'topmenu'}.':&nbsp;'.                 '<div class="LC_floatleft"><span class="LC_nobreak">'.$lt{'topmenu'}.':&nbsp;'.
                '<label><input type="radio" name="lti_topmenu_'.$num.'" value="0"'.                 '<label><input type="radio" name="lti_topmenu_'.$num.'" value="0"'.
                $checked{'topmenu'}{'N'}.$onclickmenu.' />'.&mt('No').'</label>'.('&nbsp;'x2).                 $checked{'topmenu'}{'N'}.$onclickmenu.' />'.&mt('No').'</label>'.('&nbsp;'x2).
Line 11776  sub modify_lti { Line 11823  sub modify_lti {
         if ($position ne '') {          if ($position ne '') {
             $allpos[$position] = $itemid;              $allpos[$position] = $itemid;
         }          }
         foreach my $item ('consumer','key','secret','lifetime') {          foreach my $item ('consumer','key','secret','lifetime','requser') {
             my $formitem = 'form.lti_'.$item.'_'.$idx;              my $formitem = 'form.lti_'.$item.'_'.$idx;
             $env{$formitem} =~ s/(`)/'/g;              $env{$formitem} =~ s/(`)/'/g;
             if ($item eq 'lifetime') {              if ($item eq 'lifetime') {
Line 11798  sub modify_lti { Line 11845  sub modify_lti {
         if ($env{'form.lti_version_'.$idx} eq 'LTI-1p0') {          if ($env{'form.lti_version_'.$idx} eq 'LTI-1p0') {
             $confhash{$itemid}{'version'} = $env{'form.lti_version_'.$idx};              $confhash{$itemid}{'version'} = $env{'form.lti_version_'.$idx};
         }          }
         if ($env{'form.lti_mapuser_'.$idx} eq 'sourcedid') {          if ($confhash{$itemid}{'requser'}) {
             $confhash{$itemid}{'mapuser'} = 'lis_person_sourcedid';               if ($env{'form.lti_mapuser_'.$idx} eq 'sourcedid') {
         } elsif ($env{'form.lti_mapuser_'.$idx} eq 'email') {                  $confhash{$itemid}{'mapuser'} = 'lis_person_sourcedid'; 
             $confhash{$itemid}{'mapuser'} = 'lis_person_contact_email_primary';              } elsif ($env{'form.lti_mapuser_'.$idx} eq 'email') {
         } elsif ($env{'form.lti_mapuser_'.$idx} eq 'other') {                  $confhash{$itemid}{'mapuser'} = 'lis_person_contact_email_primary';
             my $mapuser = $env{'form.lti_customuser_'.$idx};              } elsif ($env{'form.lti_mapuser_'.$idx} eq 'other') {
             $mapuser =~ s/(`)/'/g;                  my $mapuser = $env{'form.lti_customuser_'.$idx};
             $mapuser =~ s/^\s+|\s+$//g;                   $mapuser =~ s/(`)/'/g;
             $confhash{$itemid}{'mapuser'} = $mapuser;                   $mapuser =~ s/^\s+|\s+$//g; 
         }                  $confhash{$itemid}{'mapuser'} = $mapuser; 
         foreach my $ltirole (@lticourseroles) {  
             my $possrole = $env{'form.lti_maprole_'.$ltirole.'_'.$idx};  
             if (grep(/^\Q$possrole\E$/,@courseroles)) {  
                 $confhash{$itemid}{'maproles'}{$ltirole} = $possrole;  
             }              }
         }              foreach my $ltirole (@lticourseroles) {
         my @possmakeuser = &Apache::loncommon::get_env_multiple('form.lti_makeuser_'.$idx);                  my $possrole = $env{'form.lti_maprole_'.$ltirole.'_'.$idx};
         my @makeuser;                  if (grep(/^\Q$possrole\E$/,@courseroles)) {
         foreach my $ltirole (sort(@possmakeuser)) {                      $confhash{$itemid}{'maproles'}{$ltirole} = $possrole;
             if ($posslti{$ltirole}) {                  }
                 push(@makeuser,$ltirole);  
             }              }
         }              my @possmakeuser = &Apache::loncommon::get_env_multiple('form.lti_makeuser_'.$idx);
         $confhash{$itemid}{'makeuser'} = \@makeuser;              my @makeuser;
         if (@makeuser) {              foreach my $ltirole (sort(@possmakeuser)) {
             my $lcauth = $env{'form.lti_lcauth_'.$idx};                  if ($posslti{$ltirole}) {
             if ($lcauth =~ /^(internal|krb4|krb5|localauth)$/) {                      push(@makeuser,$ltirole);
                 $confhash{$itemid}{'lcauth'} = $lcauth;  
                 if ($lcauth ne 'internal') {  
                     my $lcauthparm = $env{'form.lti_lcauthparm_'.$idx};  
                     $lcauthparm =~ s/^(\s+|\s+)$//g;  
                     $lcauthparm =~ s/`//g;  
                     if ($lcauthparm ne '') {  
                         $confhash{$itemid}{'lcauthparm'} = $lcauthparm;  
                     }  
                 }                  }
             } else {  
                 $confhash{$itemid}{'lcauth'} = 'lti';  
             }              }
         }              $confhash{$itemid}{'makeuser'} = \@makeuser;
         my @possinstdata =  &Apache::loncommon::get_env_multiple('form.lti_instdata_'.$idx);              if (@makeuser) {
         if (@possinstdata) {                  my $lcauth = $env{'form.lti_lcauth_'.$idx};
             foreach my $field (@possinstdata) {                  if ($lcauth =~ /^(internal|krb4|krb5|localauth)$/) {
                 if (exists($fieldtitles{$field})) {                      $confhash{$itemid}{'lcauth'} = $lcauth;
                     push(@{$confhash{$itemid}{'instdata'}});                      if ($lcauth ne 'internal') {
                           my $lcauthparm = $env{'form.lti_lcauthparm_'.$idx};
                           $lcauthparm =~ s/^(\s+|\s+)$//g;
                           $lcauthparm =~ s/`//g;
                           if ($lcauthparm ne '') {
                               $confhash{$itemid}{'lcauthparm'} = $lcauthparm;
                           }
                       }
                   } else {
                       $confhash{$itemid}{'lcauth'} = 'lti';
                 }                  }
             }              }
         }              my @possinstdata =  &Apache::loncommon::get_env_multiple('form.lti_instdata_'.$idx);
         if (($env{'form.lti_mapcrs_'.$idx} eq 'course_offering_sourcedid') ||              if (@possinstdata) {
             ($env{'form.lti_mapcrs_'.$idx} eq 'context_id'))  {                  foreach my $field (@possinstdata) {
             $confhash{$itemid}{'mapcrs'} = $env{'form.lti_mapcrs_'.$idx};                      if (exists($fieldtitles{$field})) {
         } elsif ($env{'form.lti_mapcrs_'.$idx} eq 'other') {                          push(@{$confhash{$itemid}{'instdata'}});
             my $mapcrs = $env{'form.lti_mapcrsfield_'.$idx};                       }
             $mapcrs =~ s/(`)/'/g;                  }
             $mapcrs =~ s/^\s+|\s+$//g;  
             $confhash{$itemid}{'mapcrs'} = $mapcrs;  
         }  
         my @posstypes = &Apache::loncommon::get_env_multiple('form.lti_mapcrstype_'.$idx);  
         my @crstypes;  
         foreach my $type (sort(@posstypes)) {  
             if ($posscrstype{$type}) {  
                 push(@crstypes,$type);  
             }              }
         }              if (($env{'form.lti_mapcrs_'.$idx} eq 'course_offering_sourcedid') ||
         $confhash{$itemid}{'mapcrstype'} = \@crstypes;                  ($env{'form.lti_mapcrs_'.$idx} eq 'context_id'))  {
         if ($env{'form.lti_makecrs_'.$idx}) {                  $confhash{$itemid}{'mapcrs'} = $env{'form.lti_mapcrs_'.$idx};
             $confhash{$itemid}{'makecrs'} = 1;              } elsif ($env{'form.lti_mapcrs_'.$idx} eq 'other') {
         }                  my $mapcrs = $env{'form.lti_mapcrsfield_'.$idx}; 
         my @possenroll = &Apache::loncommon::get_env_multiple('form.lti_selfenroll_'.$idx);                  $mapcrs =~ s/(`)/'/g;
         my @selfenroll;                  $mapcrs =~ s/^\s+|\s+$//g;
         foreach my $type (sort(@possenroll)) {                  $confhash{$itemid}{'mapcrs'} = $mapcrs;
             if ($posslticrs{$type}) {  
                 push(@selfenroll,$type);  
             }              }
         }              my @posstypes = &Apache::loncommon::get_env_multiple('form.lti_mapcrstype_'.$idx);
         $confhash{$itemid}{'selfenroll'} = \@selfenroll;              my @crstypes;
         if ($env{'form.lti_crssec_'.$idx}) {              foreach my $type (sort(@posstypes)) {
             if ($env{'form.lti_crssecsrc_'.$idx} eq 'course_section_sourcedid') {                  if ($posscrstype{$type}) {
                 $confhash{$itemid}{'section'} = $env{'form.lti_crssecsrc_'.$idx};                      push(@crstypes,$type);
             } elsif ($env{'form.lti_crssecsrc_'.$idx} eq 'other') {  
                 my $section = $env{'form.lti_customsection_'.$idx};  
                 $section =~ s/(`)/'/g;  
                 $section =~ s/^\s+|\s+$//g;  
                 if ($section ne '') {  
                     $confhash{$itemid}{'section'} = $section;  
                 }                  }
             }              }
         }              $confhash{$itemid}{'mapcrstype'} = \@crstypes;
         foreach my $field ('passback','roster','topmenu','inlinemenu') {              if ($env{'form.lti_makecrs_'.$idx}) {
             if ($env{'form.lti_'.$field.'_'.$idx}) {                  $confhash{$itemid}{'makecrs'} = 1;
                 $confhash{$itemid}{$field} = 1;  
             }              }
         }              my @possenroll = &Apache::loncommon::get_env_multiple('form.lti_selfenroll_'.$idx);
         if ($env{'form.lti_passback_'.$idx}) {              my @selfenroll;
             if ($env{'form.lti_passbackformat_'.$idx} eq '1.0') {              foreach my $type (sort(@possenroll)) {
                 $confhash{$itemid}{'passbackformat'} = '1.0';                  if ($posslticrs{$type}) {
             } else {                      push(@selfenroll,$type);
                 $confhash{$itemid}{'passbackformat'} = '1.1';                  }
             }              }
         }              $confhash{$itemid}{'selfenroll'} = \@selfenroll;
         if ($env{'form.lti_topmenu_'.$idx} || $env{'form.lti_inlinemenu_'.$idx}) {              if ($env{'form.lti_crssec_'.$idx}) {
             $confhash{$itemid}{lcmenu} = [];                  if ($env{'form.lti_crssecsrc_'.$idx} eq 'course_section_sourcedid') {
             my @possmenu = &Apache::loncommon::get_env_multiple('form.lti_menuitem_'.$idx);                      $confhash{$itemid}{'section'} = $env{'form.lti_crssecsrc_'.$idx};
             foreach my $field (@possmenu) {                  } elsif ($env{'form.lti_crssecsrc_'.$idx} eq 'other') {
                 if (exists($menutitles{$field})) {                      my $section = $env{'form.lti_customsection_'.$idx};
                     if ($field eq 'grades') {                      $section =~ s/(`)/'/g;
                         next unless ($env{'form.lti_inlinemenu_'.$idx});                      $section =~ s/^\s+|\s+$//g;
                       if ($section ne '') {
                           $confhash{$itemid}{'section'} = $section;
                     }                      }
                     push(@{$confhash{$itemid}{lcmenu}},$field);  
                 }                  }
             }              }
         }              foreach my $field ('passback','roster','topmenu','inlinemenu') {
         unless (($idx eq 'add') || ($changes{$itemid})) {                  if ($env{'form.lti_'.$field.'_'.$idx}) {
             foreach my $field ('mapuser','mapcrs','makecrs','section','passback','roster','lcauth','lcauthparm','topmenu','inlinemenu') {                      $confhash{$itemid}{$field} = 1;
                 if ($domconfig{$action}{$itemid}{$field} ne $confhash{$itemid}{$field}) {  
                     $changes{$itemid} = 1;  
                 }                  }
             }              }
             unless ($changes{$itemid}) {              if ($env{'form.lti_passback_'.$idx}) {
                 if ($domconfig{$action}{$itemid}{'passback'} eq $confhash{$itemid}{'passback'}) {                  if ($env{'form.lti_passbackformat_'.$idx} eq '1.0') {
                     if ($domconfig{$action}{$itemid}{'passbackformat'} ne $confhash{$itemid}{'passbackformat'}) {                      $confhash{$itemid}{'passbackformat'} = '1.0';
                         $changes{$itemid} = 1;                  } else {
                       $confhash{$itemid}{'passbackformat'} = '1.1';
                   }
               }
               if ($env{'form.lti_topmenu_'.$idx} || $env{'form.lti_inlinemenu_'.$idx}) {
                   $confhash{$itemid}{lcmenu} = [];
                   my @possmenu = &Apache::loncommon::get_env_multiple('form.lti_menuitem_'.$idx);
                   foreach my $field (@possmenu) {
                       if (exists($menutitles{$field})) {
                           if ($field eq 'grades') {
                               next unless ($env{'form.lti_inlinemenu_'.$idx});
                           }
                           push(@{$confhash{$itemid}{lcmenu}},$field);
                     }                      }
                 }                  }
             }              }
             foreach my $field ('makeuser','mapcrstype','selfenroll','instdata','lcmenu') {              unless (($idx eq 'add') || ($changes{$itemid})) {
                   foreach my $field ('mapuser','mapcrs','makecrs','section','passback','roster','lcauth','lcauthparm','topmenu','inlinemenu') {
                       if ($domconfig{$action}{$itemid}{$field} ne $confhash{$itemid}{$field}) {
                           $changes{$itemid} = 1;
                       }
                   }
                 unless ($changes{$itemid}) {                  unless ($changes{$itemid}) {
                     if (ref($domconfig{$action}{$itemid}{$field}) eq 'ARRAY') {                      if ($domconfig{$action}{$itemid}{'passback'} eq $confhash{$itemid}{'passback'}) {
                         if (ref($confhash{$itemid}{$field}) eq 'ARRAY') {                          if ($domconfig{$action}{$itemid}{'passbackformat'} ne $confhash{$itemid}{'passbackformat'}) {
                             my @diffs = &Apache::loncommon::compare_arrays($domconfig{$action}{$itemid}{$field},  
                                                                            $confhash{$itemid}{$field});  
                             if (@diffs) {  
                                 $changes{$itemid} = 1;  
                             }  
                         } elsif (@{$domconfig{$action}{$itemid}{$field}} > 0) {  
                             $changes{$itemid} = 1;                              $changes{$itemid} = 1;
                         }                          }
                     } elsif (ref($confhash{$itemid}{$field}) eq 'ARRAY') {                      }
                         if (@{$confhash{$itemid}{$field}} > 0) {  
                             $changes{$itemid} = 1;  
                         }  
                     }   
                 }                  }
             }                  foreach my $field ('makeuser','mapcrstype','selfenroll','instdata','lcmenu') {
             unless ($changes{$itemid}) {                      unless ($changes{$itemid}) {
                 if (ref($domconfig{$action}{$itemid}{'maproles'}) eq 'HASH') {                          if (ref($domconfig{$action}{$itemid}{$field}) eq 'ARRAY') {
                     if (ref($confhash{$itemid}{'maproles'}) eq 'HASH') {                              if (ref($confhash{$itemid}{$field}) eq 'ARRAY') {
                         foreach my $ltirole (keys(%{$domconfig{$action}{$itemid}{'maproles'}})) {                                  my @diffs = &Apache::loncommon::compare_arrays($domconfig{$action}{$itemid}{$field},
                             if ($domconfig{$action}{$itemid}{'maproles'}{$ltirole} ne                                                                                  $confhash{$itemid}{$field});
                                 $confhash{$itemid}{'maproles'}{$ltirole}) {                                  if (@diffs) {
                                       $changes{$itemid} = 1;
                                   }
                               } elsif (@{$domconfig{$action}{$itemid}{$field}} > 0) {
                                   $changes{$itemid} = 1;
                               }
                           } elsif (ref($confhash{$itemid}{$field}) eq 'ARRAY') {
                               if (@{$confhash{$itemid}{$field}} > 0) {
                                 $changes{$itemid} = 1;                                  $changes{$itemid} = 1;
                                 last;  
                             }                              }
                         }                          }
                         unless ($changes{$itemid}) {                      }
                             foreach my $ltirole (keys(%{$confhash{$itemid}{'maproles'}})) {                  }
                                 if ($confhash{$itemid}{'maproles'}{$ltirole} ne                   unless ($changes{$itemid}) {
                                     $domconfig{$action}{$itemid}{'maproles'}{$ltirole}) {                      if (ref($domconfig{$action}{$itemid}{'maproles'}) eq 'HASH') {
                           if (ref($confhash{$itemid}{'maproles'}) eq 'HASH') {
                               foreach my $ltirole (keys(%{$domconfig{$action}{$itemid}{'maproles'}})) {
                                   if ($domconfig{$action}{$itemid}{'maproles'}{$ltirole} ne 
                                       $confhash{$itemid}{'maproles'}{$ltirole}) {
                                     $changes{$itemid} = 1;                                      $changes{$itemid} = 1;
                                     last;                                      last;
                                 }                                  }
                             }                              }
                         }                              unless ($changes{$itemid}) {
                     } elsif (keys(%{$domconfig{$action}{$itemid}{'maproles'}}) > 0) {                                  foreach my $ltirole (keys(%{$confhash{$itemid}{'maproles'}})) {
                         $changes{$itemid} = 1;                                      if ($confhash{$itemid}{'maproles'}{$ltirole} ne 
                     }                                          $domconfig{$action}{$itemid}{'maproles'}{$ltirole}) {
                 } elsif (ref($confhash{$itemid}{'maproles'}) eq 'HASH') {                                          $changes{$itemid} = 1;
                     unless ($changes{$itemid}) {                                          last;
                         if (keys(%{$confhash{$itemid}{'maproles'}}) > 0) {                                      }
                                   }
                               }
                           } elsif (keys(%{$domconfig{$action}{$itemid}{'maproles'}}) > 0) {
                             $changes{$itemid} = 1;                              $changes{$itemid} = 1;
                         }                          }
                       } elsif (ref($confhash{$itemid}{'maproles'}) eq 'HASH') {
                           unless ($changes{$itemid}) {
                               if (keys(%{$confhash{$itemid}{'maproles'}}) > 0) {
                                   $changes{$itemid} = 1;
                               }
                           }
                     }                      }
                 }                  }
             }              }
Line 12041  sub modify_lti { Line 12090  sub modify_lti {
                         my $num = length($encconfig{$itemid}{'secret'});                          my $num = length($encconfig{$itemid}{'secret'});
                         $resulttext .= ('*'x$num).'</li>';                          $resulttext .= ('*'x$num).'</li>';
                     }                      }
                     if ($confhash{$itemid}{'mapuser'}) {                      if ($confhash{$itemid}{'requser'}) {
                         my $shownmapuser;                          if ($confhash{$itemid}{'mapuser'}) {
                         if ($confhash{$itemid}{'mapuser'} eq 'lis_person_sourcedid') {                              my $shownmapuser;
                             $shownmapuser = $lt{'sourcedid'}.' (lis_person_sourcedid)';                              if ($confhash{$itemid}{'mapuser'} eq 'lis_person_sourcedid') {
                         } elsif ($confhash{$itemid}{'mapuser'} eq 'lis_person_contact_email_primary') {                                  $shownmapuser = $lt{'sourcedid'}.' (lis_person_sourcedid)';
                             $shownmapuser = $lt{'email'}.' (lis_person_contact_email_primary)';                              } elsif ($confhash{$itemid}{'mapuser'} eq 'lis_person_contact_email_primary') {
                         } else {                                  $shownmapuser = $lt{'email'}.' (lis_person_contact_email_primary)';
                             $shownmapuser = &mt('Other').' ('.$confhash{$itemid}{'mapuser'}.')';                              } else {
                         }                                   $shownmapuser = &mt('Other').' ('.$confhash{$itemid}{'mapuser'}.')';
                         $resulttext .= '<li>'.&mt('LON-CAPA username').': '.$shownmapuser.'</li>';  
                     }  
                     if (ref($confhash{$itemid}{'maproles'}) eq 'HASH') {  
                         my $rolemaps;  
                         foreach my $role (@ltiroles) {  
                             if ($confhash{$itemid}{'maproles'}{$role}) {  
                                 $rolemaps .= ('&nbsp;'x2).$role.'='.  
                                              &Apache::lonnet::plaintext($confhash{$itemid}{'maproles'}{$role},  
                                                                         'Course').',';  
                             }                              }
                               $resulttext .= '<li>'.&mt('LON-CAPA username').': '.$shownmapuser.'</li>';
                         }                          }
                         if ($rolemaps) {                          if (ref($confhash{$itemid}{'maproles'}) eq 'HASH') {
                             $rolemaps =~ s/,$//;                              my $rolemaps;
                             $resulttext .= '<li>'.&mt('Role mapping:').$rolemaps.'</li>';                              foreach my $role (@ltiroles) {
                         }                                  if ($confhash{$itemid}{'maproles'}{$role}) {
                     }                                      $rolemaps .= ('&nbsp;'x2).$role.'='.
                     if (ref($confhash{$itemid}{'makeuser'}) eq 'ARRAY') {                                                   &Apache::lonnet::plaintext($confhash{$itemid}{'maproles'}{$role},
                         if (@{$confhash{$itemid}{'makeuser'}} > 0) {                                                                               'Course').',';
                             $resulttext .= '<li>'.&mt('Following roles may create user accounts: [_1]',                                  }
                                                       join(', ',@{$confhash{$itemid}{'makeuser'}})).'<br />';                              }
                             if ($confhash{$itemid}{'lcauth'} eq 'lti') {                              if ($rolemaps) {
                                 $resulttext .= &mt('New users will only be able to authenticate via LTI').'</li>';                                  $rolemaps =~ s/,$//;
                             } else {                                  $resulttext .= '<li>'.&mt('Role mapping:').$rolemaps.'</li>';
                                 $resulttext .= &mt('New users will be assigned LON-CAPA authentication: [_1]',                              }
                                                    $confhash{$itemid}{'lcauth'});                          }
                                 if ($confhash{$itemid}{'lcauth'} eq 'internal') {                          if (ref($confhash{$itemid}{'makeuser'}) eq 'ARRAY') {
                                     $resulttext .= '; '.&mt('a randomly generated password will be created');                              if (@{$confhash{$itemid}{'makeuser'}} > 0) { 
                                 } elsif ($confhash{$itemid}{'lcauth'} eq 'localauth') {                                  $resulttext .= '<li>'.&mt('Following roles may create user accounts: [_1]',
                                     if ($confhash{$itemid}{'lcauthparm'} ne '') {                                                            join(', ',@{$confhash{$itemid}{'makeuser'}})).'<br />';
                                         $resulttext .= ' '.&mt('with argument: [_1]',$confhash{$itemid}{'lcauthparm'});                                  if ($confhash{$itemid}{'lcauth'} eq 'lti') {
                                     }                                      $resulttext .= &mt('New users will only be able to authenticate via LTI').'</li>';
                                 } else {                                  } else {
                                     $resulttext .= '; '.&mt('Kerberos domain: [_1]',$confhash{$itemid}{'lcauthparm'});                                      $resulttext .= &mt('New users will be assigned LON-CAPA authentication: [_1]',
                                                          $confhash{$itemid}{'lcauth'});
                                       if ($confhash{$itemid}{'lcauth'} eq 'internal') {
                                           $resulttext .= '; '.&mt('a randomly generated password will be created');
                                       } elsif ($confhash{$itemid}{'lcauth'} eq 'localauth') {
                                           if ($confhash{$itemid}{'lcauthparm'} ne '') {
                                               $resulttext .= ' '.&mt('with argument: [_1]',$confhash{$itemid}{'lcauthparm'});
                                           }
                                       } else {
                                           $resulttext .= '; '.&mt('Kerberos domain: [_1]',$confhash{$itemid}{'lcauthparm'});
                                       }
                                 }                                  }
                                   $resulttext .= '</li>';
                               } else {
                                   $resulttext .= '<li>'.&mt('User account creation not permitted.').'</li>';
                             }                              }
                             $resulttext .= '</li>';  
                         } else {  
                             $resulttext .= '<li>'.&mt('User account creation not permitted.').'</li>';  
                         }                          }
                     }                          if (ref($confhash{$itemid}{'instdata'}) eq 'ARRAY') {
                     if (ref($confhash{$itemid}{'instdata'}) eq 'ARRAY') {                              if (@{$confhash{$itemid}{'instdata'}} > 0) {
                         if (@{$confhash{$itemid}{'instdata'}} > 0) {                                  $resulttext .= '<li>'.&mt('Institutional data will be used when creating a new user for: [_1]',
                             $resulttext .= '<li>'.&mt('Institutional data will be used when creating a new user for: [_1]',                                                            join(', ',map { $fieldtitles{$_}; } @{$confhash{$itemid}{'instdata'}})).'</li>';
                                                       join(', ',map { $fieldtitles{$_}; } @{$confhash{$itemid}{'instdata'}})).'</li>';                              } else {
                         } else {                                  $resulttext .= '<li>'.&mt('No institutional data used when creating a new user.').'</li>';
                             $resulttext .= '<li>'.&mt('No institutional data used when creating a new user.').'</li>';                              }
                         }                          }
                     }                          if ($confhash{$itemid}{'mapcrs'}) {
                     if ($confhash{$itemid}{'mapcrs'}) {                              $resulttext .= '<li>'.&mt('Unique course identifier').': '.$confhash{$itemid}{'mapcrs'}.'</li>';
                         $resulttext .= '<li>'.&mt('Unique course identifier').': '.$confhash{$itemid}{'mapcrs'}.'</li>';  
                     }  
                     if (ref($confhash{$itemid}{'mapcrstype'}) eq 'ARRAY') {  
                         if (@{$confhash{$itemid}{'mapcrstype'}} > 0) {  
                             $resulttext .= '<li>'.&mt('Mapping for the following LON-CAPA course types: [_1]',  
                                            join(', ',map { $coursetypetitles{$_}; } @coursetypes)).  
                                            '</li>';  
                         } else {  
                             $resulttext .= '<li>'.&mt('No mapping to LON-CAPA courses').'</li>';  
                         }                          }
                     }                          if (ref($confhash{$itemid}{'mapcrstype'}) eq 'ARRAY') {
                     if ($confhash{$itemid}{'makecrs'}) {                              if (@{$confhash{$itemid}{'mapcrstype'}} > 0) {
                         $resulttext .= '<li>'.&mt('Instructor may create course (if absent).').'</li>';                                  $resulttext .= '<li>'.&mt('Mapping for the following LON-CAPA course types: [_1]',
                     } else {                                                 join(', ',map { $coursetypetitles{$_}; } @coursetypes)).
                         $resulttext .= '<li>'.&mt('Instructor may not create course (if absent).').'</li>';                                                 '</li>';
                     }                              } else {
                     if (ref($confhash{$itemid}{'selfenroll'}) eq 'ARRAY') {                                  $resulttext .= '<li>'.&mt('No mapping to LON-CAPA courses').'</li>';
                         if (@{$confhash{$itemid}{'selfenroll'}} > 0) {                              }
                             $resulttext .= '<li>'.&mt('Self-enrollment for following roles: [_1]',                          }
                                                       join(', ',@{$confhash{$itemid}{'selfenroll'}})).                          if ($confhash{$itemid}{'makecrs'}) {
                                            '</li>';                              $resulttext .= '<li>'.&mt('Instructor may create course (if absent).').'</li>';
                         } else {                          } else {
                             $resulttext .= '<li>'.&mt('Self-enrollment not permitted').'</li>';                              $resulttext .= '<li>'.&mt('Instructor may not create course (if absent).').'</li>';
                         }                          }
                     }                          if (ref($confhash{$itemid}{'selfenroll'}) eq 'ARRAY') {
                     if ($confhash{$itemid}{'section'}) {                              if (@{$confhash{$itemid}{'selfenroll'}} > 0) {
                         if ($confhash{$itemid}{'section'} eq 'course_section_sourcedid') {                                  $resulttext .= '<li>'.&mt('Self-enrollment for following roles: [_1]',
                             $resulttext .= '<li>'.&mt('User section from standard field:').                                                            join(', ',@{$confhash{$itemid}{'selfenroll'}})).
                                                  ' (course_section_sourcedid)'.'</li>';                                                   '</li>';
                               } else {
                                   $resulttext .= '<li>'.&mt('Self-enrollment not permitted').'</li>';
                               }
                           }
                           if ($confhash{$itemid}{'section'}) {
                               if ($confhash{$itemid}{'section'} eq 'course_section_sourcedid') {
                                   $resulttext .= '<li>'.&mt('User section from standard field:').
                                                        ' (course_section_sourcedid)'.'</li>';  
                               } else {
                                   $resulttext .= '<li>'.&mt('User section from:').' '.
                                                         $confhash{$itemid}{'section'}.'</li>';
                               }
                         } else {                          } else {
                             $resulttext .= '<li>'.&mt('User section from:').' '.                              $resulttext .= '<li>'.&mt('No section assignment').'</li>';
                                                   $confhash{$itemid}{'section'}.'</li>';  
                         }                          }
                     } else {                          foreach my $item ('passback','roster','topmenu','inlinemenu') {
                         $resulttext .= '<li>'.&mt('No section assignment').'</li>';                              $resulttext .= '<li>'.$lt{$item}.':&nbsp;';
                     }                              if ($confhash{$itemid}{$item}) {
                     foreach my $item ('passback','roster','topmenu','inlinemenu') {                                  $resulttext .= &mt('Yes');
                         $resulttext .= '<li>'.$lt{$item}.':&nbsp;';                                  if ($item eq 'passback') {
                         if ($confhash{$itemid}{$item}) {                                      if ($confhash{$itemid}{'passbackformat'} eq '1.0') {
                             $resulttext .= &mt('Yes');                                          $resulttext .= '&nbsp;('.&mt('Outcomes Extension (1.0)').')';
                             if ($item eq 'passback') {                                      } elsif ($confhash{$itemid}{'passbackformat'} eq '1.1') {
                                 if ($confhash{$itemid}{'passbackformat'} eq '1.0') {                                          $resulttext .= '&nbsp;('.&mt('Outcomes Service (1.1)').')';
                                     $resulttext .= '&nbsp;('.&mt('Outcomes Extension (1.0)').')';                                      }
                                 } elsif ($confhash{$itemid}{'passbackformat'} eq '1.1') {  
                                     $resulttext .= '&nbsp;('.&mt('Outcomes Service (1.1)').')';  
                                 }                                  }
                               } else {
                                   $resulttext .= &mt('No');
                             }                              }
                         } else {                              $resulttext .= '</li>';
                             $resulttext .= &mt('No');  
                         }                          }
                         $resulttext .= '</li>';                          if (ref($confhash{$itemid}{'lcmenu'}) eq 'ARRAY') {
                     }                              if (@{$confhash{$itemid}{'lcmenu'}} > 0) {
                     if (ref($confhash{$itemid}{'lcmenu'}) eq 'ARRAY') {                                  $resulttext .= '<li>'.&mt('Menu items:').' '.
                         if (@{$confhash{$itemid}{'lcmenu'}} > 0) {                                                 join(', ', map { $menutitles{$_}; } (@{$confhash{$itemid}{'lcmenu'}})).'</li>'; 
                             $resulttext .= '<li>'.&mt('Menu items:').' '.                              } else {
                                            join(', ', map { $menutitles{$_}; } (@{$confhash{$itemid}{'lcmenu'}})).'</li>';                                   $resulttext .= '<li>'.&mt('No menu items displayed in header or online menu').'</li>'; 
                         } else {                              }
                             $resulttext .= '<li>'.&mt('No menu items displayed in header or online menu').'</li>';   
                         }                          }
                     }                      }
                     $resulttext .= '</ul></li>';                      $resulttext .= '</ul></li>';

Removed from v.1.344  
changed lines
  Added in v.1.345


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