version 1.436, 2024/02/27 15:48:01
|
version 1.442, 2024/07/14 16:08:04
|
Line 6917 sub print_coursedefaults {
|
Line 6917 sub print_coursedefaults {
|
domexttool => 'External Tools defined in the domain may be used in courses/communities (by type)', |
domexttool => 'External Tools defined in the domain may be used in courses/communities (by type)', |
exttool => 'External Tools can be defined and configured in courses/communities (by type)', |
exttool => 'External Tools can be defined and configured in courses/communities (by type)', |
crsauthor => 'Standard LON-CAPA problems can be created within a course/community (by type)', |
crsauthor => 'Standard LON-CAPA problems can be created within a course/community (by type)', |
|
crseditors => 'Available editors for web pages and/or problems created in a course/community', |
); |
); |
my %staticdefaults = ( |
my %staticdefaults = ( |
anonsurvey_threshold => 10, |
anonsurvey_threshold => 10, |
Line 6927 sub print_coursedefaults {
|
Line 6928 sub print_coursedefaults {
|
domexttool => 1, |
domexttool => 1, |
exttool => 0, |
exttool => 0, |
crsauthor => 1, |
crsauthor => 1, |
|
crseditors => ['edit','xml'], |
); |
); |
if ($position eq 'top') { |
if ($position eq 'top') { |
%defaultchecked = ( |
%defaultchecked = ( |
Line 7048 sub print_coursedefaults {
|
Line 7050 sub print_coursedefaults {
|
my %domexttool; |
my %domexttool; |
my %exttool; |
my %exttool; |
my %crsauthor; |
my %crsauthor; |
|
my %crseditors; |
my @types = ('official','unofficial','community','textbook','placement'); |
my @types = ('official','unofficial','community','textbook','placement'); |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if ($settings->{'ltiauth'}) { |
if ($settings->{'ltiauth'}) { |
Line 7086 sub print_coursedefaults {
|
Line 7089 sub print_coursedefaults {
|
} |
} |
} |
} |
} |
} |
|
if (ref($settings->{'crseditors'}) eq 'ARRAY') { |
|
foreach my $editor (@{$settings->{'crseditors'}}) { |
|
$crseditors{$editor} = ' checked="checked"'; |
|
} |
|
} else { |
|
foreach my $editor (@{$staticdefaults{'crseditors'}}) { |
|
$crseditors{$editor} = ' checked="checked"'; |
|
} |
|
} |
$currdefresponder = $settings->{'anonsurvey_threshold'}; |
$currdefresponder = $settings->{'anonsurvey_threshold'}; |
if (ref($settings->{'uploadquota'}) eq 'HASH') { |
if (ref($settings->{'uploadquota'}) eq 'HASH') { |
foreach my $type (keys(%{$settings->{'uploadquota'}})) { |
foreach my $type (keys(%{$settings->{'uploadquota'}})) { |
Line 7149 sub print_coursedefaults {
|
Line 7161 sub print_coursedefaults {
|
$crsauthor{$type} = ' checked="checked"'; |
$crsauthor{$type} = ' checked="checked"'; |
} |
} |
} |
} |
|
foreach my $editor (@{$staticdefaults{'crseditors'}}) { |
|
$crseditors{$editor} = ' checked="checked"'; |
|
} |
} |
} |
if (!$currdefresponder) { |
if (!$currdefresponder) { |
$currdefresponder = $staticdefaults{'anonsurvey_threshold'}; |
$currdefresponder = $staticdefaults{'anonsurvey_threshold'}; |
Line 7276 sub print_coursedefaults {
|
Line 7291 sub print_coursedefaults {
|
foreach my $type (@types) { |
foreach my $type (@types) { |
$datatable .= '<td style="text-align: left">'. |
$datatable .= '<td style="text-align: left">'. |
'<span class="LC_nobreak">'. |
'<span class="LC_nobreak">'. |
'<input type="checkbox" name="domexttool"'. |
'<label><input type="checkbox" name="domexttool"'. |
' value="'.$type.'"'.$domexttool{$type}.' />'. |
' value="'.$type.'"'.$domexttool{$type}.' />'. |
&mt($type).'</span></td>'."\n"; |
&mt($type).'</label></span></td>'."\n"; |
} |
} |
$datatable .= '</tr></table></td></tr>'."\n"; |
$datatable .= '</tr></table></td></tr>'."\n"; |
$itemcount ++; |
$itemcount ++; |
Line 7291 sub print_coursedefaults {
|
Line 7306 sub print_coursedefaults {
|
foreach my $type (@types) { |
foreach my $type (@types) { |
$datatable .= '<td style="text-align: left">'. |
$datatable .= '<td style="text-align: left">'. |
'<span class="LC_nobreak">'. |
'<span class="LC_nobreak">'. |
'<input type="checkbox" name="exttool"'. |
'<label><input type="checkbox" name="exttool"'. |
' value="'.$type.'"'.$exttool{$type}.' />'. |
' value="'.$type.'"'.$exttool{$type}.' />'. |
&mt($type).'</span></td>'."\n"; |
&mt($type).'</label></span></td>'."\n"; |
} |
} |
$datatable .= '</tr></table></td></tr>'."\n"; |
$datatable .= '</tr></table></td></tr>'."\n"; |
$itemcount ++; |
$itemcount ++; |
Line 7306 sub print_coursedefaults {
|
Line 7321 sub print_coursedefaults {
|
foreach my $type (@types) { |
foreach my $type (@types) { |
$datatable .= '<td style="text-align: left">'. |
$datatable .= '<td style="text-align: left">'. |
'<span class="LC_nobreak">'. |
'<span class="LC_nobreak">'. |
'<input type="checkbox" name="crsauthor"'. |
'<label><input type="checkbox" name="crsauthor"'. |
' value="'.$type.'"'.$crsauthor{$type}.' />'. |
' value="'.$type.'"'.$crsauthor{$type}.' />'. |
&mt($type).'</span></td>'."\n"; |
&mt($type).'</label></span></td>'."\n"; |
|
} |
|
$datatable .= '</tr></table></td></tr>'."\n"; |
|
$itemcount ++; |
|
$css_class = $itemcount%2 ? ' class="LC_odd_row"' : ''; |
|
$datatable .= '<tr'.$css_class.'><td><span class="LC_nobreak">'. |
|
$choices{'crseditors'}. |
|
'</span></td>'. |
|
'<td style="text-align: right" class="LC_right_item">'. |
|
'<table><tr>'; |
|
my @editors = ('edit','xml','daxe'); |
|
my %editornames = &crseditor_titles(); |
|
foreach my $editor (@editors) { |
|
$datatable .= '<td style="text-align: left">'. |
|
'<span class="LC_nobreak">'. |
|
'<label><input type="checkbox" name="crseditors"'. |
|
' value="'.$editor.'"'.$crseditors{$editor}.' />'. |
|
$editornames{$editor}.'</label></span></td>'."\n"; |
} |
} |
$datatable .= '</tr></table></td></tr>'."\n"; |
$datatable .= '</tr></table></td></tr>'."\n"; |
} |
} |
Line 7316 sub print_coursedefaults {
|
Line 7348 sub print_coursedefaults {
|
return $datatable; |
return $datatable; |
} |
} |
|
|
|
sub crseditor_titles { |
|
return &Apache::lonlocal::texthash( |
|
edit => 'Standard editor (Edit)', |
|
xml => 'Text editor (EditXML)', |
|
daxe => 'Daxe editor (Daxe)', |
|
); |
|
} |
|
|
sub print_authordefaults { |
sub print_authordefaults { |
my ($position,$dom,$settings,$rowtotal) = @_; |
my ($position,$dom,$settings,$rowtotal) = @_; |
my ($css_class,$datatable,%checkedon,%checkedoff); |
my ($css_class,$datatable,%checkedon,%checkedoff); |
Line 7324 sub print_authordefaults {
|
Line 7364 sub print_authordefaults {
|
if ($position eq 'top') { |
if ($position eq 'top') { |
my %defaultchecked = ( |
my %defaultchecked = ( |
'nocodemirror' => 'off', |
'nocodemirror' => 'off', |
|
'daxecollapse' => 'off', |
'domcoordacc' => 'on', |
'domcoordacc' => 'on', |
); |
); |
my @toggles = ('nocodemirror','domcoordacc'); |
my @toggles = ('nocodemirror','daxecollapse','domcoordacc'); |
($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, |
($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked, |
\%titles,$itemcount); |
\%titles,$itemcount); |
my %staticdefaults = ( |
my %staticdefaults = ( |
Line 7482 sub print_authordefaults {
|
Line 7523 sub print_authordefaults {
|
} |
} |
$datatable .= '</td></tr>'; |
$datatable .= '</td></tr>'; |
$itemcount ++; |
$itemcount ++; |
|
my %defchecked = ( |
|
'archive' => 'off', |
|
); |
|
my @toggles = ('archive'); |
|
(my $archive,$itemcount) = &radiobutton_prefs($settings,['archive'], |
|
{'archive' => 'off'}, |
|
\%titles,$itemcount); |
|
$datatable .= $archive."\n"; |
|
$itemcount ++; |
} |
} |
$$rowtotal += $itemcount; |
$$rowtotal += $itemcount; |
return $datatable; |
return $datatable; |
Line 7495 sub authordefaults_titles {
|
Line 7545 sub authordefaults_titles {
|
webdav => 'WebDAV', |
webdav => 'WebDAV', |
authorquota => 'Authoring Space quotas (MB)', |
authorquota => 'Authoring Space quotas (MB)', |
nocodemirror => 'Deactivate CodeMirror for EditXML editor', |
nocodemirror => 'Deactivate CodeMirror for EditXML editor', |
|
daxecollapse => 'Daxe editor: LON-CAPA standard menus start collapsed', |
domcoordacc => 'Dom. Coords. can enter Authoring Spaces in domain', |
domcoordacc => 'Dom. Coords. can enter Authoring Spaces in domain', |
edit => 'Standard editor (Edit)', |
edit => 'Standard editor (Edit)', |
xml => 'Text editor (EditXML)', |
xml => 'Text editor (EditXML)', |
Line 7504 sub authordefaults_titles {
|
Line 7555 sub authordefaults_titles {
|
none => 'No override set', |
none => 'No override set', |
overon => 'Override -- webDAV on', |
overon => 'Override -- webDAV on', |
overoff => 'Override -- webDAV off', |
overoff => 'Override -- webDAV off', |
|
archive => 'Authors can download tar.gz file of Authoring Space', |
); |
); |
} |
} |
|
|
Line 13381 sub modify_authordefaults {
|
Line 13433 sub modify_authordefaults {
|
'copyright' => 'default', |
'copyright' => 'default', |
'sourceavail' => 'closed', |
'sourceavail' => 'closed', |
'nocodemirror' => 'off', |
'nocodemirror' => 'off', |
|
'daxecollapse' => 'off', |
'domcoordacc' => 'on', |
'domcoordacc' => 'on', |
'editors' => ['edit','xml']. |
'editors' => ['edit','xml'], |
'authorquota' => 500, |
'authorquota' => 500, |
'webdav' => 0, |
'webdav' => 0, |
|
'archive' => 'off', |
); |
); |
my %titles = &authordefaults_titles(); |
my %titles = &authordefaults_titles(); |
foreach my $item ('nocodemirror','domcoordacc') { |
foreach my $item ('nocodemirror','daxecollapse','domcoordacc','archive') { |
if ($env{'form.'.$item} =~ /^(0|1)$/) { |
if ($env{'form.'.$item} =~ /^(0|1)$/) { |
$confhash{$item} = $env{'form.'.$item}; |
$confhash{$item} = $env{'form.'.$item}; |
} |
} |
Line 13431 sub modify_authordefaults {
|
Line 13485 sub modify_authordefaults {
|
$save_quotas{'webdav'}{'_LC_adv'} = $env{'form.webdav_LC_adv'}; |
$save_quotas{'webdav'}{'_LC_adv'} = $env{'form.webdav_LC_adv'}; |
} |
} |
if (ref($domconfig{'authordefaults'}) eq 'HASH') { |
if (ref($domconfig{'authordefaults'}) eq 'HASH') { |
foreach my $item ('nocodemirror','domcoordacc','copyright','sourceavail') { |
foreach my $item ('nocodemirror','daxecollapse','domcoordacc','copyright','sourceavail','archive') { |
if ($domconfig{'authordefaults'}{$item} ne $confhash{$item}) { |
if ($domconfig{'authordefaults'}{$item} ne $confhash{$item}) { |
$changes{$item} = 1; |
$changes{$item} = 1; |
} |
} |
Line 13453 sub modify_authordefaults {
|
Line 13507 sub modify_authordefaults {
|
} |
} |
} else { |
} else { |
my @offon = ('off','on'); |
my @offon = ('off','on'); |
foreach my $item ('nocodemirror','domcoordacc') { |
foreach my $item ('nocodemirror','daxecollapse','domcoordacc','archive') { |
if ($offon[$confhash{$item}] ne $staticdefaults{$item}) { |
if ($offon[$confhash{$item}] ne $staticdefaults{$item}) { |
$changes{$item} = 1; |
$changes{$item} = 1; |
} |
} |
Line 13463 sub modify_authordefaults {
|
Line 13517 sub modify_authordefaults {
|
$changes{$item} = 1; |
$changes{$item} = 1; |
} |
} |
} |
} |
|
my @diffs = |
|
&Apache::loncommon::compare_arrays($confhash{'editors'}, |
|
$staticdefaults{'editors'}); |
|
unless (@diffs == 0) { |
|
$changes{'editors'} = 1; |
|
} |
} |
} |
foreach my $key ('authorquota','webdav') { |
foreach my $key ('authorquota','webdav') { |
if (ref($curr_quotas{$key}) eq 'HASH') { |
if (ref($curr_quotas{$key}) eq 'HASH') { |
Line 13522 sub modify_authordefaults {
|
Line 13582 sub modify_authordefaults {
|
} |
} |
$resulttext = &mt('Changes made:').'<ul>'; |
$resulttext = &mt('Changes made:').'<ul>'; |
my $authoroverride; |
my $authoroverride; |
foreach my $key ('nocodemirror','domcoordacc','copyright','sourceavail') { |
foreach my $key ('nocodemirror','daxecollapse','domcoordacc','copyright','sourceavail') { |
if (exists($changes{$key})) { |
if (exists($changes{$key})) { |
$domdefaults{$key} = $confhash{$key}; |
$domdefaults{$key} = $confhash{$key}; |
my $shown; |
my $shown; |
Line 13530 sub modify_authordefaults {
|
Line 13590 sub modify_authordefaults {
|
$resulttext .= '<li>'.&mt('Defaults which can be overridden by Author').'<ul>'; |
$resulttext .= '<li>'.&mt('Defaults which can be overridden by Author').'<ul>'; |
$authoroverride = 1; |
$authoroverride = 1; |
} |
} |
if (($key eq 'nocodemirror') || ($key eq 'domcoordacc')) { |
if (($key eq 'nocodemirror') || ($key eq 'daxecollapse') || ($key eq 'domcoordacc')) { |
$shown = ($confhash{$key} ? &mt('Yes') : &mt('No')); |
$shown = ($confhash{$key} ? &mt('Yes') : &mt('No')); |
} elsif ($key eq 'copyright') { |
} elsif ($key eq 'copyright') { |
$shown = &Apache::loncommon::copyrightdescription($confhash{$key}); |
$shown = &Apache::loncommon::copyrightdescription($confhash{$key}); |
Line 13544 sub modify_authordefaults {
|
Line 13604 sub modify_authordefaults {
|
$resulttext .= '</ul></li>'; |
$resulttext .= '</ul></li>'; |
} |
} |
my $domcoordoverride; |
my $domcoordoverride; |
foreach my $key ('editors','authorquota','webdav','webdav_LC_adv') { |
foreach my $key ('editors','authorquota','webdav','webdav_LC_adv','archive') { |
if (exists($changes{$key})) { |
if (exists($changes{$key})) { |
my $shown; |
my $shown; |
unless ($domcoordoverride) { |
unless ($domcoordoverride) { |
Line 13576 sub modify_authordefaults {
|
Line 13636 sub modify_authordefaults {
|
} else { |
} else { |
$shown = $titles{'none'}; |
$shown = $titles{'none'}; |
} |
} |
|
} elsif ($key eq 'archive') { |
|
$domdefaults{$key} = $confhash{$key}; |
|
$shown = ($confhash{$key} ? &mt('Yes') : &mt('No')); |
} |
} |
$resulttext .= '<li>'.&mt('[_1] set to: [_2]',$titles{$key},$shown).'</li>'; |
$resulttext .= '<li>'.&mt('[_1] set to: [_2]',$titles{$key},$shown).'</li>'; |
} |
} |
Line 13583 sub modify_authordefaults {
|
Line 13646 sub modify_authordefaults {
|
if ($domcoordoverride) { |
if ($domcoordoverride) { |
$resulttext .= '</ul></li>'; |
$resulttext .= '</ul></li>'; |
} |
} |
|
$resulttext .= '</ul>'; |
my $cachetime = 24*60*60; |
my $cachetime = 24*60*60; |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
if (ref($lastactref) eq 'HASH') { |
if (ref($lastactref) eq 'HASH') { |
Line 14786 sub modify_quotas {
|
Line 14850 sub modify_quotas {
|
$resulttext .= '<li>'.&mt('Validated course requests identified as processed by: [_1]', |
$resulttext .= '<li>'.&mt('Validated course requests identified as processed by: [_1]', |
'<b>'.$changes{'validation'}{'dc'}.'</b>').'</li>'; |
'<b>'.$changes{'validation'}{'dc'}.'</b>').'</li>'; |
} |
} |
|
$resulttext .= '</ul></li>'; |
} |
} |
} |
} |
} |
} |
Line 21210 sub modify_coursedefaults {
|
Line 21275 sub modify_coursedefaults {
|
mysqltables => 172800, |
mysqltables => 172800, |
domexttool => 1, |
domexttool => 1, |
crsauthor => 1, |
crsauthor => 1, |
|
crseditors => ['edit','xml'], |
); |
); |
my %texoptions = ( |
my %texoptions = ( |
MathJax => 'MathJax', |
MathJax => 'MathJax', |
mimetex => &mt('Convert to Images'), |
mimetex => &mt('Convert to Images'), |
tth => &mt('TeX to HTML'), |
tth => &mt('TeX to HTML'), |
); |
); |
|
|
|
my @editors = ('edit','xml','daxe'); |
|
my %editornames = &crseditor_titles(); |
|
|
$defaultshash{'coursedefaults'} = {}; |
$defaultshash{'coursedefaults'} = {}; |
|
|
if (ref($domconfig{'coursedefaults'}) ne 'HASH') { |
if (ref($domconfig{'coursedefaults'}) ne 'HASH') { |
Line 21401 sub modify_coursedefaults {
|
Line 21471 sub modify_coursedefaults {
|
$changes{'postsubmit'} = 1; |
$changes{'postsubmit'} = 1; |
} |
} |
} |
} |
my (%newdomexttool,%newexttool,%newcrsauthor,%olddomexttool,%oldexttool,%oldcrsauthor); |
my (%newdomexttool,%newexttool,%newcrsauthor,%olddomexttool,%oldexttool,%oldcrsauthor, |
|
%posscrseditors); |
map { $newdomexttool{$_} = 1; } &Apache::loncommon::get_env_multiple('form.domexttool'); |
map { $newdomexttool{$_} = 1; } &Apache::loncommon::get_env_multiple('form.domexttool'); |
map { $newexttool{$_} = 1; } &Apache::loncommon::get_env_multiple('form.exttool'); |
map { $newexttool{$_} = 1; } &Apache::loncommon::get_env_multiple('form.exttool'); |
map { $newcrsauthor{$_} = 1; } &Apache::loncommon::get_env_multiple('form.crsauthor'); |
map { $newcrsauthor{$_} = 1; } &Apache::loncommon::get_env_multiple('form.crsauthor'); |
|
map { $posscrseditors{$_} = 1; } &Apache::loncommon::get_env_multiple('form.crseditors'); |
if (ref($domconfig{'coursedefaults'}{'domexttool'}) eq 'HASH') { |
if (ref($domconfig{'coursedefaults'}{'domexttool'}) eq 'HASH') { |
%olddomexttool = %{$domconfig{'coursedefaults'}{'domexttool'}}; |
%olddomexttool = %{$domconfig{'coursedefaults'}{'domexttool'}}; |
} else { |
} else { |
Line 21438 sub modify_coursedefaults {
|
Line 21510 sub modify_coursedefaults {
|
} |
} |
} |
} |
} |
} |
|
my @newcrseditors = (); |
|
foreach my $editor (@editors) { |
|
if ($posscrseditors{$editor}) { |
|
push(@newcrseditors,$editor); |
|
} |
|
} |
|
if (ref($domconfig{'coursedefaults'}{'crseditors'}) eq 'ARRAY') { |
|
my @diffs = |
|
&Apache::loncommon::compare_arrays($domconfig{'coursedefaults'}{'crseditors'}, |
|
\@newcrseditors); |
|
if (@diffs) { |
|
$changes{'crseditors'} = 1; |
|
} |
|
} else { |
|
my @diffs = |
|
&Apache::loncommon::compare_arrays($staticdefaults{'crseditors'}, |
|
\@newcrseditors); |
|
unless (@diffs == 0) { |
|
$changes{'crseditors'} = 1; |
|
} |
|
} |
foreach my $type (@types) { |
foreach my $type (@types) { |
unless ($newdomexttool{$type}) { |
unless ($newdomexttool{$type}) { |
$newdomexttool{$type} = 0; |
$newdomexttool{$type} = 0; |
Line 21461 sub modify_coursedefaults {
|
Line 21554 sub modify_coursedefaults {
|
$defaultshash{'coursedefaults'}{'domexttool'} = \%newdomexttool; |
$defaultshash{'coursedefaults'}{'domexttool'} = \%newdomexttool; |
$defaultshash{'coursedefaults'}{'exttool'} = \%newexttool; |
$defaultshash{'coursedefaults'}{'exttool'} = \%newexttool; |
$defaultshash{'coursedefaults'}{'crsauthor'} = \%newcrsauthor; |
$defaultshash{'coursedefaults'}{'crsauthor'} = \%newcrsauthor; |
|
$defaultshash{'coursedefaults'}{'crseditors'} = \@newcrseditors; |
} |
} |
my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash, |
my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash, |
$dom); |
$dom); |
Line 21544 sub modify_coursedefaults {
|
Line 21638 sub modify_coursedefaults {
|
} |
} |
} |
} |
} |
} |
|
if ($changes{'crseditors'}) { |
|
if (ref($defaultshash{'coursedefaults'}{'crseditors'}) eq 'ARRAY') { |
|
$domdefaults{'crseditors'}=join(',',@{$defaultshash{'coursedefaults'}{'crseditors'}}); |
|
} |
|
} |
my $cachetime = 24*60*60; |
my $cachetime = 24*60*60; |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime); |
if (ref($lastactref) eq 'HASH') { |
if (ref($lastactref) eq 'HASH') { |
Line 21723 sub modify_coursedefaults {
|
Line 21822 sub modify_coursedefaults {
|
} else { |
} else { |
$resulttext .= '<li>'.$status{$item}{'default'}.'</li>'; |
$resulttext .= '<li>'.$status{$item}{'default'}.'</li>'; |
} |
} |
|
} elsif ($item eq 'crseditors') { |
|
if (ref($defaultshash{'coursedefaults'}{$item}) eq 'ARRAY') { |
|
my $shown; |
|
if (@{$defaultshash{'coursedefaults'}{$item}}) { |
|
$shown = join(', ', map { $editornames{$_} } @{$defaultshash{'coursedefaults'}{$item}}); |
|
} else { |
|
$shown = &mt('None'); |
|
} |
|
$resulttext .= '<li>'.&mt('Available editors for course/community resources: [_1]',$shown).'</li>'; |
|
} |
} |
} |
} |
} |
$resulttext .= '</ul>'; |
$resulttext .= '</ul>'; |