Diff for /loncom/interface/courseprefs.pm between versions 1.49.2.28.2.11 and 1.49.2.28.2.12

version 1.49.2.28.2.11, 2022/07/08 16:00:22 version 1.49.2.28.2.12, 2022/08/29 16:02:09
Line 489  sub handler { Line 489  sub handler {
                      help => 'Course_Prefs_Display',                       help => 'Course_Prefs_Display',
                      ordered => ['default_xml_style','pageseparators',                       ordered => ['default_xml_style','pageseparators',
                                  'disable_receipt_display','texengine',                                   'disable_receipt_display','texengine',
                                  'tthoptions','uselcmath','usejsme','inline_chem'],                                   'tthoptions','uselcmath','usejsme',
                                    'inline_chem','extresource'],
                       itemtext => {                        itemtext => {
                           default_xml_style       => 'Default XML style file',                            default_xml_style       => 'Default XML style file',
                           pageseparators          => 'Visibly Separate Items on Pages',                            pageseparators          => 'Visibly Separate Items on Pages',
Line 499  sub handler { Line 500  sub handler {
                           uselcmath               => 'Student formula entry uses inline preview, not DragMath pop-up',                            uselcmath               => 'Student formula entry uses inline preview, not DragMath pop-up',
                           usejsme                 => 'Molecule editor uses JSME (HTML5) in place of JME (Java)',                            usejsme                 => 'Molecule editor uses JSME (HTML5) in place of JME (Java)',
                           inline_chem             => 'Chemical reaction response uses inline preview, not pop-up',                            inline_chem             => 'Chemical reaction response uses inline preview, not pop-up',
                             extresource             => 'Display of external resources',
                                   },                                    },
                   },                    },
         'grading' =>          'grading' =>
Line 1413  sub process_changes { Line 1415  sub process_changes {
                                 $settings =~ s/,$//;                                  $settings =~ s/,$//;
                             }                              }
                             $newvalues{$entry} = $settings;                              $newvalues{$entry} = $settings;
                           } elsif ($entry eq 'extresource') {
                               if ($env{'form.'.$entry} =~ /^iframe|tab|window$/) {
                                   $newvalues{$entry} = $env{'form.'.$entry};
                                   if ($env{'form.'.$entry} ne 'iframe') {
                                       if ($env{'form.extwintabreuse'}) {
                                           $newvalues{$entry} .= ':1';
                                       } else {
                                           $newvalues{$entry} .= ':0';
                                       }
                                       if ($env{'form.'.$entry} eq 'window') {
                                           foreach my $dim ('width','height') {
                                               $env{'form.extreswin'.$dim} =~ s/^\s+|\s+$//g;
                                               if ($env{'form.extreswin'.$dim} =~ /^\d+$/) {
                                                   $newvalues{$entry} .= ':'.$env{'form.extreswin'.$dim};
                                               } else {
                                                   $newvalues{$entry} .= ':';
                                               }
                                           }
                                       }
                                   }
                               }
                               unless (($newvalues{$entry} eq 'iframe') && ($values->{$entry} eq '')) {
                                   if ($newvalues{$entry} ne $values->{$entry}) {
                                       $changes->{$entry} = $newvalues{$entry};
                                   }
                               }
                         } else {                          } else {
                             $newvalues{$entry} = $env{'form.'.$entry};                              $newvalues{$entry} = $env{'form.'.$entry};
                         }                          }
                         unless (($entry eq 'co-owners') || ($entry eq 'discussion_post_fonts')) {                          unless (($entry eq 'co-owners') || ($entry eq 'discussion_post_fonts') || ($entry eq 'extresource')) {
                             if ($newvalues{$entry} ne $values->{$entry}) {                              if ($newvalues{$entry} ne $values->{$entry}) {
                                 $changes->{$entry} = $newvalues{$entry};                                  $changes->{$entry} = $newvalues{$entry};
                             }                              }
Line 1852  sub store_changes { Line 1880  sub store_changes {
                                     my ($displayname,$text);                                      my ($displayname,$text);
                                     $text = $prefs->{$item}->{'itemtext'}{$key};                                      $text = $prefs->{$item}->{'itemtext'}{$key};
                                     my $displayval;                                      my $displayval;
                                     unless (($key eq 'co-owners') || ($key eq 'discussion_post_fonts')) {                                      unless (($key eq 'co-owners') || ($key eq 'discussion_post_fonts') || ($key eq 'extresource')) {
                                         $displayval = $changes->{$item}{$key};                                          $displayval = $changes->{$item}{$key};
                                     }                                      }
                                     if ($item eq 'feedback') {                                      if ($item eq 'feedback') {
Line 1961  sub store_changes { Line 1989  sub store_changes {
                                         } elsif ($changes->{$item}{$key} eq '0') {                                          } elsif ($changes->{$item}{$key} eq '0') {
                                             $displayval = &mt('No');                                              $displayval = &mt('No');
                                         }                                          }
                                       } elsif ($key eq 'extresource') {
                                           if ($changes->{$item}{$key} eq 'iframe') {
                                               $displayval = &mt('In iframe');
                                           } else {
                                               my ($selected,$reuse,$width,$height) = split(/:/,$changes->{$item}{$key});
                                               if ($selected eq 'tab') {
                                                   if ($reuse) {
                                                       $displayval = &mt('[_1]In tab[_2],[_3] and tab re-used for different external resources in course',
                                                                         "'<b>","</b>'",'<br />');
                                                   } else {
                                                       $displayval = &mt('[_1]In tab[_2],[_3] with new tab for each external resource in course',
                                                                         "'<b>","</b>'",'<br />');
                                                   }
                                               } elsif ($selected eq 'window') {
                                                    if ($reuse) {
                                                        $displayval = &mt('[_1]In pop-up window[_2],[_3] and window re-used for different external resources in course',
                                                                          "'<b>","</b>'",'<br />');
                                                    } else {
                                                        $displayval = &mt('[_1]In pop-up window[_2],[_3] with new window for each external resource in course',
                                                                          "'<b>","</b>'",'<br />');
                                                    }
                                                    if (($width ne '') || ($height ne '')) {
                                                        if ($width ne '') {
                                                            $displayval .= '<br />'.&mt('Window width: [_1]px',$width);
                                                        }
                                                        if ($height ne '') {
                                                            $displayval .= '<br />'.&mt('Window height: [_1]px',$height);
                                                        }
                                                    }
                                               }
                                           }
                                     }                                      }
                                     if ($key eq 'co-owners') {                                      if ($key eq 'co-owners') {
                                         if (ref($changes->{$item}{$key}) eq 'HASH') {                                          if (ref($changes->{$item}{$key}) eq 'HASH') {
Line 2019  sub store_changes { Line 2078  sub store_changes {
                                         $output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('Numbered menu collections:')).'<br />'.                                          $output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('Numbered menu collections:')).'<br />'.
                                                    $displayval.'</li>';                                                     $displayval.'</li>';
                                     } else {                                      } else {
                                           unless (($key eq 'extresource') && ($changes->{$item}{$key} ne 'iframe')) {
                                               $displayval = "'<b>$displayval</b>'";
                                           }
                                         $output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('[_1] set to [_2]',                                          $output .= '<li>'.&Apache::lonhtmlcommon::confirm_success(&mt('[_1] set to [_2]',
                                                    '<i>'.$displayname.'</i>',                                                     '<i>'.$displayname.'</i>',$displayval));
                                                    "'<b>$displayval</b>'"));  
                                         if ($key eq 'url') {                                          if ($key eq 'url') {
                                             my $bkuptime=time;                                              my $bkuptime=time;
                                             $output .= ('&nbsp;'x2).&mt('(Previous URL backed up)').': '.                                              $output .= ('&nbsp;'x2).&mt('(Previous URL backed up)').': '.
Line 2406  sub get_course { Line 2467  sub get_course {
 sub get_jscript {  sub get_jscript {
     my ($cid,$cdom,$phase,$crstype,$settings,$noedit) = @_;      my ($cid,$cdom,$phase,$crstype,$settings,$noedit) = @_;
     my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom,$crstype);      my ($can_toggle_cat,$can_categorize) = &can_modify_catsettings($cdom,$crstype);
     my ($jscript,$categorize_js,$loncaparev_js,$instcode_js);      my ($jscript,$categorize_js,$loncaparev_js,$instcode_js,$extresource_js);
     my $stubrowse_js = &Apache::loncommon::studentbrowser_javascript();      my $stubrowse_js = &Apache::loncommon::studentbrowser_javascript();
     my $browse_js = &Apache::loncommon::browser_and_searcher_javascript('parmset');      my $browse_js = &Apache::loncommon::browser_and_searcher_javascript('parmset');
     my $cloners_js = &cloners_javascript($phase);      my $cloners_js = &cloners_javascript($phase);
Line 2613  function toggleAddmenucoll() { Line 2674  function toggleAddmenucoll() {
 }  }
 ENDSCRIPT  ENDSCRIPT
     }      }
       $extresource_js = <<"ENDSCRIPT";
   function toggleExtRes() {
       if (document.getElementById('LC_extresource')) {
           var extressel = document.getElementById('LC_extresource').value;
           if (document.getElementById('LC_extresreusediv')) {
               var extresreuse = document.getElementById('LC_extresreusediv');
               if (document.getElementById('LC_extressize')) {
                   var extressize = document.getElementById('LC_extressize');
                   var setvis;
                   if ((extressel == 'tab') || (extressel == 'window')) {
                       extresreuse.style.display = 'inline-block';
                       setvis = 1;
                       if (extressel == 'window') {
                           extressize.style.display = 'inline-block';
                       } else {
                           extressize.style.display = 'none';
                       }
                   }
                   if (!setvis) {
                       extresreuse.style.display = 'none';
                       extressize.style.display = 'none';
                   }
               }
           }
       }
   }
   ENDSCRIPT
     $jscript = '<script type="text/javascript" language="Javascript">'."\n".      $jscript = '<script type="text/javascript" language="Javascript">'."\n".
                '// <![CDATA['."\n".                 '// <![CDATA['."\n".
                $browse_js."\n".$categorize_js."\n".$loncaparev_js."\n".                 $browse_js."\n".$categorize_js."\n".$loncaparev_js."\n".
                $cloners_js."\n".$instcode_js.                 $cloners_js."\n".$instcode_js.
                $syllabus_js."\n".$menuitems_js."\n".                 $syllabus_js."\n".$menuitems_js."\n".$extresource_js."\n".
                &linkprot_javascript()."\n".'//]]>'."\n".                 &linkprot_javascript()."\n".'//]]>'."\n".
                '</script>'."\n".$stubrowse_js."\n";                 '</script>'."\n".$stubrowse_js."\n";
     return $jscript;      return $jscript;
Line 4828  sub print_appearance { Line 4916  sub print_appearance {
                    text => '<b>'.&mt($itemtext->{'inline_chem'}).'</b>',                     text => '<b>'.&mt($itemtext->{'inline_chem'}).'</b>',
                    input => 'radio',                     input => 'radio',
                  },                   },
            'extresource' => {
                      text => '<b>'.&mt($itemtext->{'extresource'}).'</b>',
                      input => 'selectbox',
                      options => {
                                   iframe => 'In iframe',
                                   tab    => 'In new tab',
                                   window => 'In pop-up window',
                                 },
                      order  => ['iframe','tab','window'],
                    },
     );      );
     return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance',$noedit);      return &make_item_rows($cdom,\%items,$ordered,$settings,$rowtotal,$crstype,'appearance',$noedit);
 }  }
Line 5614  sub linkprot_options { Line 5712  sub linkprot_options {
     return $output;      return $output;
 }  }
   
   sub print_extresource_row {
       my ($item,$config,$curr,$noedit) = @_;
       my $onchange;
       unless ($noedit) {
           $onchange = ' onchange="javascript:toggleExtRes();"';
       }
       my $id = 'LC_'.$item;
       my ($selected,$reuse,$width,$height) = split(/:/,$curr);
       my $output = &select_from_options($item,$config->{'order'},
                                         $config->{'options'},$selected,
                                         $config->{'nullval'},
                                         undef,undef,$onchange,$noedit,$id);
       my ($checked,$reusesty,$sizesty);
       if ($reuse) {
           $checked = ' checked="checked"';
       }
       $reusesty = 'none';
       $sizesty = 'none';
       if (($selected eq 'window') || ($selected eq 'tab')) {
           $reusesty = 'inline-block';
           if ($selected eq 'window') {
               $sizesty = 'inline-block';
           }
       }
       $output .= '<div id="LC_extresreusediv" style="display:'.$reusesty.';">'.
                  '<span class="LC_nobreak">'.
                  '<label><input type="checkbox" name="extwintabreuse" value="1"'.$checked.'>'.
                  &mt('Re-use tab/window').'</label>'.
                  '</span></div>'.
                  '<fieldset id="LC_extressize" style="display:'.$sizesty.';">'.
                  '<legend>'.&mt('Window size (optional)').'</legend>'.
                  '<span class="LC_nobreak">'.
                  &mt('width').':<input type="text" name="extreswinwidth" value="'.$width.'" size="3" />px'.
                  ('&nbsp;' x 3).
                  &mt('height').':<input type="text" name="extreswinheight" value="'.$height.'" size="3" />px'.
                  '</span></fieldset>';
       return $output;
   }
   
 sub print_other {  sub print_other {
     my ($cdom,$settings,$allitems,$rowtotal,$crstype,$noedit) = @_;      my ($cdom,$settings,$allitems,$rowtotal,$crstype,$noedit) = @_;
     unless ((ref($settings) eq 'HASH') && (ref($allitems) eq 'ARRAY')) {      unless ((ref($settings) eq 'HASH') && (ref($allitems) eq 'ARRAY')) {
Line 5785  sub make_item_rows { Line 5922  sub make_item_rows {
                 (($caller eq 'printouts') && ($item ne 'print_header_format'))) {                  (($caller eq 'printouts') && ($item ne 'print_header_format'))) {
                 $colspan = 2;                  $colspan = 2;
             }              }
               my $rowdesc;
               if ($caller eq 'appearance') {
                   $rowdesc = '<span class="LC_nobreak">'.$items->{$item}{text}.'</span>';
               } else {
                   $rowdesc = $items->{$item}{text};
               }
             if (exists $items->{$item}{advanced} && $items->{$item}{advanced} == 1) {              if (exists $items->{$item}{advanced} && $items->{$item}{advanced} == 1) {
                 $datatable .= &item_table_row_start($items->{$item}{text},$count,"advanced",$colspan);                  $datatable .= &item_table_row_start($rowdesc,$count,"advanced",$colspan);
             } else {              } else {
                 $datatable .= &item_table_row_start($items->{$item}{text},$count,undef,$colspan);                  $datatable .= &item_table_row_start($rowdesc,$count,undef,$colspan);
             }              }
             if ($item eq 'defaultcredits') {              if ($item eq 'defaultcredits') {
                 my $defaultcredits = $env{'course.'.$env{'request.course.id'}.'.internal.defaultcredits'};                  my $defaultcredits = $env{'course.'.$env{'request.course.id'}.'.internal.defaultcredits'};
Line 5805  sub make_item_rows { Line 5948  sub make_item_rows {
                 $datatable .= &checkforpriv_row($cdom,$item,$settings,$crstype,$noedit);                  $datatable .= &checkforpriv_row($cdom,$item,$settings,$crstype,$noedit);
             } elsif ($item eq 'print_header_format') {              } elsif ($item eq 'print_header_format') {
                 $datatable .= &print_hdrfmt_row($item,$settings,$noedit);                  $datatable .= &print_hdrfmt_row($item,$settings,$noedit);
               } elsif ($item eq 'extresource') {
                   $datatable .= &print_extresource_row($item,$items->{$item},$settings->{$item},$noedit);
             } elsif ($items->{$item}{input} eq 'dates') {              } elsif ($items->{$item}{input} eq 'dates') {
                my $disabled;                 my $disabled;
                if ($noedit) {                 if ($noedit) {

Removed from v.1.49.2.28.2.11  
changed lines
  Added in v.1.49.2.28.2.12


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