version 1.113, 2022/07/08 04:24:24
|
version 1.114, 2022/08/28 02:41:29
|
Line 492 sub handler {
|
Line 492 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 502 sub handler {
|
Line 503 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 1464 sub process_changes {
|
Line 1466 sub process_changes {
|
$newvalues{$entry} = ''; |
$newvalues{$entry} = ''; |
} |
} |
} |
} |
|
} 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 1903 sub store_changes {
|
Line 1931 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 2028 sub store_changes {
|
Line 2056 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 2099 sub store_changes {
|
Line 2158 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 .= (' 'x2).&mt('(Previous URL backed up)').': '. |
$output .= (' 'x2).&mt('(Previous URL backed up)').': '. |
Line 2490 sub get_course {
|
Line 2551 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 2697 function toggleAddmenucoll() {
|
Line 2758 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 5076 sub print_appearance {
|
Line 5164 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 5992 sub linkprot_options {
|
Line 6090 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'. |
|
(' ' 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 6163 sub make_item_rows {
|
Line 6300 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 6185 sub make_item_rows {
|
Line 6328 sub make_item_rows {
|
$datatable .= &print_hdrfmt_row($item,$settings,$noedit); |
$datatable .= &print_hdrfmt_row($item,$settings,$noedit); |
} elsif ($item eq 'lti.lcmenu') { |
} elsif ($item eq 'lti.lcmenu') { |
$datatable .= &lcmenu_checkboxes($cdom,$item,$settings,$crstype,$noedit); |
$datatable .= &lcmenu_checkboxes($cdom,$item,$settings,$crstype,$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) { |