version 1.306, 2017/08/03 16:51:53
|
version 1.314, 2017/10/07 00:50:47
|
Line 4073 sub print_coursedefaults {
|
Line 4073 sub print_coursedefaults {
|
coursecredits => 'Credits can be specified for courses', |
coursecredits => 'Credits can be specified for courses', |
uselcmath => 'Math preview uses LON-CAPA previewer (javascript) in place of DragMath (Java)', |
uselcmath => 'Math preview uses LON-CAPA previewer (javascript) in place of DragMath (Java)', |
usejsme => 'Molecule editor uses JSME (HTML5) in place of JME (Java)', |
usejsme => 'Molecule editor uses JSME (HTML5) in place of JME (Java)', |
|
texengine => 'Default method to display mathematics', |
postsubmit => 'Disable submit button/keypress following student submission', |
postsubmit => 'Disable submit button/keypress following student submission', |
canclone => "People who may clone a course (besides course's owner and coordinators)", |
canclone => "People who may clone a course (besides course's owner and coordinators)", |
mysqltables => 'Lifetime (s) of "Temporary" MySQL tables (student performance data) on homeserver', |
mysqltables => 'Lifetime (s) of "Temporary" MySQL tables (student performance data) on homeserver', |
); |
); |
my %staticdefaults = ( |
my %staticdefaults = ( |
|
texengine => 'MathJax', |
anonsurvey_threshold => 10, |
anonsurvey_threshold => 10, |
uploadquota => 500, |
uploadquota => 500, |
postsubmit => 60, |
postsubmit => 60, |
Line 4091 sub print_coursedefaults {
|
Line 4093 sub print_coursedefaults {
|
'canclone' => 'none', |
'canclone' => 'none', |
); |
); |
@toggles = ('canuse_pdfforms','uselcmath','usejsme'); |
@toggles = ('canuse_pdfforms','uselcmath','usejsme'); |
|
my $deftex = $staticdefaults{'texengine'}; |
|
if (ref($settings) eq 'HASH') { |
|
if ($settings->{'texengine'}) { |
|
if ($settings->{'texengine'} =~ /^(MathJax|mimetex|tth)$/) { |
|
$deftex = $settings->{'texengine'}; |
|
} |
|
} |
|
} |
|
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
|
my $mathdisp = '<tr'.$css_class.'><td style="vertical-align: top">'. |
|
'<span class="LC_nobreak">'.$choices{'texengine'}. |
|
'</span></td><td class="LC_right_item">'. |
|
'<select name="texengine">'."\n"; |
|
my %texoptions = ( |
|
MathJax => 'MathJax', |
|
mimetex => &mt('Convert to Images'), |
|
tth => &mt('TeX to HTML'), |
|
); |
|
foreach my $renderer ('MathJax','mimetex','tth') { |
|
my $selected = ''; |
|
if ($renderer eq $deftex) { |
|
$selected = ' selected="selected"'; |
|
} |
|
$mathdisp .= '<option value="'.$renderer.'"'.$selected.'>'.$texoptions{$renderer}.'</option>'."\n"; |
|
} |
|
$mathdisp .= '</select></td></tr>'."\n"; |
|
$itemcount ++; |
($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, |
($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, |
\%choices,$itemcount); |
\%choices,$itemcount); |
|
$datatable = $mathdisp.$datatable; |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
$css_class = $itemcount%2?' class="LC_odd_row"':''; |
$datatable .= |
$datatable .= |
'<tr'.$css_class.'><td style="vertical-align: top">'. |
'<tr'.$css_class.'><td style="vertical-align: top">'. |
Line 6402 sub user_formats_row {
|
Line 6432 sub user_formats_row {
|
} |
} |
$output .= '<td class="LC_left_item">'. |
$output .= '<td class="LC_left_item">'. |
'<span class="LC_nobreak"><label>'. |
'<span class="LC_nobreak"><label>'. |
'<input type="checkbox" name="'.$name.'"'. |
'<input type="checkbox" name="'.$name.'" '. |
'value="'.$ruleorder->[$i].'"'.$check.'/>'. |
'value="'.$ruleorder->[$i].'"'.$check.'/>'. |
$rules->{$ruleorder->[$i]}{'name'}.'</label></span></td>'; |
$rules->{$ruleorder->[$i]}{'name'}.'</label></span></td>'; |
} |
} |
Line 7643 sub modifiable_userdata_row {
|
Line 7673 sub modifiable_userdata_row {
|
if ($rowid) { |
if ($rowid) { |
$rowid = ' id="'.$rowid.'"'; |
$rowid = ' id="'.$rowid.'"'; |
} |
} |
|
|
$output = '<tr '.$css_class.$rowid.'>'. |
$output = '<tr '.$css_class.$rowid.'>'. |
'<td><span class="LC_nobreak">'.$rolename.'</span></td>'. |
'<td><span class="LC_nobreak">'.$rolename.'</span></td>'. |
'<td class="LC_left_item" colspan="2"><table>'; |
'<td class="LC_left_item" colspan="2"><table>'; |
Line 9270 sub modify_quotas {
|
Line 9299 sub modify_quotas {
|
#FIXME need to obsolete item in RES space |
#FIXME need to obsolete item in RES space |
} elsif ($env{'form.'.$type.'_image_'.$i.'.filename'}) { |
} elsif ($env{'form.'.$type.'_image_'.$i.'.filename'}) { |
my ($cdom,$cnum) = split(/_/,$key); |
my ($cdom,$cnum) = split(/_/,$key); |
my ($imgurl,$error) = &process_textbook_image($r,$dom,$confname,$type.'_image_'.$i, |
if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') { |
$cdom,$cnum,$type,$configuserok, |
$errors .= '<li><span class="LC_error">'.&mt('Image not saved: could not find textbook course').'</li>'; |
$switchserver,$author_ok); |
} else { |
if ($imgurl) { |
my ($imgurl,$error) = &process_textbook_image($r,$dom,$confname,$type.'_image_'.$i, |
$confhash{$type}{$key}{'image'} = $imgurl; |
$cdom,$cnum,$type,$configuserok, |
$changes{$type}{$key} = 1; |
$switchserver,$author_ok); |
|
if ($imgurl) { |
|
$confhash{$type}{$key}{'image'} = $imgurl; |
|
$changes{$type}{$key} = 1; |
|
} |
|
if ($error) { |
|
&Apache::lonnet::logthis($error); |
|
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
|
} |
} |
} |
if ($error) { |
|
&Apache::lonnet::logthis($error); |
|
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
|
} |
|
} elsif ($domconfig{$action}{$type}{$key}{'image'}) { |
} elsif ($domconfig{$action}{$type}{$key}{'image'}) { |
$confhash{$type}{$key}{'image'} = |
$confhash{$type}{$key}{'image'} = |
$domconfig{$action}{$type}{$key}{'image'}; |
$domconfig{$action}{$type}{$key}{'image'}; |
Line 9313 sub modify_quotas {
|
Line 9346 sub modify_quotas {
|
if ($type eq 'textbooks') { |
if ($type eq 'textbooks') { |
if ($env{'form.'.$type.'_addbook_image.filename'} ne '') { |
if ($env{'form.'.$type.'_addbook_image.filename'} ne '') { |
my ($cdom,$cnum) = split(/_/,$newbook{$type}); |
my ($cdom,$cnum) = split(/_/,$newbook{$type}); |
my ($imageurl,$error) = |
if (&Apache::lonnet::homeserver($cnum,$cdom) eq 'no_host') { |
&process_textbook_image($r,$dom,$confname,$type.'_addbook_image',$cdom,$cnum,$type, |
$errors .= '<li><span class="LC_error">'.&mt('Image not saved: could not find textbook course').'</li>'; |
$configuserok,$switchserver,$author_ok); |
} else { |
if ($imageurl) { |
my ($imageurl,$error) = |
$confhash{$type}{$newbook{$type}}{'image'} = $imageurl; |
&process_textbook_image($r,$dom,$confname,$type.'_addbook_image',$cdom,$cnum,$type, |
} |
$configuserok,$switchserver,$author_ok); |
if ($error) { |
if ($imageurl) { |
&Apache::lonnet::logthis($error); |
$confhash{$type}{$newbook{$type}}{'image'} = $imageurl; |
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
} |
|
if ($error) { |
|
&Apache::lonnet::logthis($error); |
|
$errors .= '<li><span class="LC_error">'.$error.'</span></li>'; |
|
} |
} |
} |
} |
} |
} |
} |
Line 9813 sub process_textbook_image {
|
Line 9850 sub process_textbook_image {
|
} elsif ($author_ok eq 'ok') { |
} elsif ($author_ok eq 'ok') { |
my ($result,$imageurl) = |
my ($result,$imageurl) = |
&publishlogo($r,'upload',$caller,$dom,$confname, |
&publishlogo($r,'upload',$caller,$dom,$confname, |
"$type/$dom/$cnum/cover",$width,$height); |
"$type/$cdom/$cnum/cover",$width,$height); |
if ($result eq 'ok') { |
if ($result eq 'ok') { |
$url = $imageurl; |
$url = $imageurl; |
} else { |
} else { |
Line 9896 sub modify_ltitools {
|
Line 9933 sub modify_ltitools {
|
} |
} |
if ($env{'form.ltitools_add_image.filename'} ne '') { |
if ($env{'form.ltitools_add_image.filename'} ne '') { |
my ($imageurl,$error) = |
my ($imageurl,$error) = |
&process_ltitools_image($r,$dom,$confname,'ltitools_add_image',$dom, |
&process_ltitools_image($r,$dom,$confname,'ltitools_add_image',$newid, |
$configuserok,$switchserver,$author_ok); |
$configuserok,$switchserver,$author_ok); |
if ($imageurl) { |
if ($imageurl) { |
$confhash{$newid}{'image'} = $imageurl; |
$confhash{$newid}{'image'} = $imageurl; |
Line 9959 sub modify_ltitools {
|
Line 9996 sub modify_ltitools {
|
my $maxnum = $env{'form.ltitools_maxnum'}; |
my $maxnum = $env{'form.ltitools_maxnum'}; |
for (my $i=0; $i<=$maxnum; $i++) { |
for (my $i=0; $i<=$maxnum; $i++) { |
my $itemid = $env{'form.ltitools_id_'.$i}; |
my $itemid = $env{'form.ltitools_id_'.$i}; |
|
$itemid =~ s/\D+//g; |
if (ref($domconfig{$action}{$itemid}) eq 'HASH') { |
if (ref($domconfig{$action}{$itemid}) eq 'HASH') { |
if ($deletions{$itemid}) { |
if ($deletions{$itemid}) { |
if ($domconfig{$action}{$itemid}{'image'}) { |
if ($domconfig{$action}{$itemid}{'image'}) { |
Line 12072 sub modify_selfcreation {
|
Line 12110 sub modify_selfcreation {
|
if (@types) { |
if (@types) { |
if (@statuses) { |
if (@statuses) { |
$chgtext .= &mt('Processing of requests to create account with e-mail verification set as follows:'). |
$chgtext .= &mt('Processing of requests to create account with e-mail verification set as follows:'). |
'<ul>'; |
'<ul>'; |
foreach my $status (@statuses) { |
foreach my $status (@statuses) { |
if ($status eq 'default') { |
if ($status eq 'default') { |
$chgtext .= '<li>'.$othertitle.' -- '.$choices{$cancreate{'selfcreateprocessing'}{$status}}.'</li>'; |
$chgtext .= '<li>'.$othertitle.' -- '.$choices{$cancreate{'selfcreateprocessing'}{$status}}.'</li>'; |
Line 12273 sub modify_selfcreation {
|
Line 12311 sub modify_selfcreation {
|
} |
} |
} |
} |
$chgtext .= '</ul>'; |
$chgtext .= '</ul>'; |
|
my $typename; |
if (@types) { |
if (@types) { |
my $typename; |
|
if ($type eq 'default') { |
if ($type eq 'default') { |
$typename = $othertitle; |
$typename = $othertitle; |
} else { |
} else { |
Line 12290 sub modify_selfcreation {
|
Line 12328 sub modify_selfcreation {
|
'</li>'; |
'</li>'; |
} else { |
} else { |
$resulttext .= '<li>'. |
$resulttext .= '<li>'. |
&mt('There are now no restrictions on e-mail addresses which may be used for verification when a user requests an account.', |
&mt('There are now no restrictions on e-mail addresses which may be used for verification when a user requests an account.'). |
$usertypes{$type}). |
|
'</li>'. |
'</li>'. |
&mt('(Affiliation: [_1])',$type); |
&mt('(Affiliation: [_1])',$typename); |
} |
} |
} |
} |
} |
} |
Line 13656 sub modify_coursedefaults {
|
Line 13693 sub modify_coursedefaults {
|
postsubmit => 60, |
postsubmit => 60, |
mysqltables => 172800, |
mysqltables => 172800, |
); |
); |
|
my %texoptions = ( |
|
MathJax => 'MathJax', |
|
mimetex => &mt('Convert to Images'), |
|
tth => &mt('TeX to HTML'), |
|
); |
$defaultshash{'coursedefaults'} = {}; |
$defaultshash{'coursedefaults'} = {}; |
|
|
if (ref($domconfig{'coursedefaults'}) ne 'HASH') { |
if (ref($domconfig{'coursedefaults'}) ne 'HASH') { |
Line 13716 sub modify_coursedefaults {
|
Line 13757 sub modify_coursedefaults {
|
} |
} |
} |
} |
} |
} |
|
my $texengine; |
|
if ($env{'form.texengine'} =~ /^(MathJax|mimetex|tth)$/) { |
|
$texengine = $env{'form.texengine'}; |
|
if ($defaultshash{'coursedefaults'}{'texengine'} eq '') { |
|
unless ($texengine eq 'MathJax') { |
|
$changes{'texengine'} = 1; |
|
} |
|
} elsif ($defaultshash{'coursedefaults'}{'texengine'} ne $texengine) { |
|
$changes{'texengine'} = 1; |
|
} |
|
} |
|
if ($texengine ne '') { |
|
$defaultshash{'coursedefaults'}{'texengine'} = $texengine; |
|
} |
my $currclone = $domconfig{'coursedefaults'}{'canclone'}; |
my $currclone = $domconfig{'coursedefaults'}{'canclone'}; |
my @currclonecode; |
my @currclonecode; |
if (ref($currclone) eq 'HASH') { |
if (ref($currclone) eq 'HASH') { |
Line 13836 sub modify_coursedefaults {
|
Line 13891 sub modify_coursedefaults {
|
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1); |
if (($changes{'canuse_pdfforms'}) || ($changes{'uploadquota'}) || ($changes{'postsubmit'}) || |
if (($changes{'canuse_pdfforms'}) || ($changes{'uploadquota'}) || ($changes{'postsubmit'}) || |
($changes{'coursecredits'}) || ($changes{'uselcmath'}) || ($changes{'usejsme'}) || |
($changes{'coursecredits'}) || ($changes{'uselcmath'}) || ($changes{'usejsme'}) || |
($changes{'canclone'}) || ($changes{'mysqltables'})) { |
($changes{'canclone'}) || ($changes{'mysqltables'}) || ($changes{'texengine'})) { |
foreach my $item ('canuse_pdfforms','uselcmath','usejsme') { |
foreach my $item ('canuse_pdfforms','uselcmath','usejsme','texengine') { |
if ($changes{$item}) { |
if ($changes{$item}) { |
$domdefaults{$item}=$defaultshash{'coursedefaults'}{$item}; |
$domdefaults{$item}=$defaultshash{'coursedefaults'}{$item}; |
} |
} |
Line 13906 sub modify_coursedefaults {
|
Line 13961 sub modify_coursedefaults {
|
} else { |
} else { |
$resulttext .= '<li>'.&mt('Molecule editor uses JME (Java), if supported by client OS.').'</li>'; |
$resulttext .= '<li>'.&mt('Molecule editor uses JME (Java), if supported by client OS.').'</li>'; |
} |
} |
|
} elsif ($item eq 'texengine') { |
|
if ($defaultshash{'coursedefaults'}{'texengine'} ne '') { |
|
$resulttext .= '<li>'.&mt('Default method to display mathematics set to: "[_1]"', |
|
$texoptions{$defaultshash{'coursedefaults'}{'texengine'}}).'</li>'; |
|
} |
} elsif ($item eq 'anonsurvey_threshold') { |
} elsif ($item eq 'anonsurvey_threshold') { |
$resulttext .= '<li>'.&mt('Responder count required for display of anonymous survey submissions set to [_1].',$defaultshash{'coursedefaults'}{'anonsurvey_threshold'}).'</li>'; |
$resulttext .= '<li>'.&mt('Responder count required for display of anonymous survey submissions set to [_1].',$defaultshash{'coursedefaults'}{'anonsurvey_threshold'}).'</li>'; |
} elsif ($item eq 'uploadquota') { |
} elsif ($item eq 'uploadquota') { |