version 1.437, 2024/03/03 00:08:37
|
version 1.446, 2024/12/31 18:51:53
|
Line 472 sub handler {
|
Line 472 sub handler {
|
header => [{col1 => 'Target user has role', |
header => [{col1 => 'Target user has role', |
col2 => 'User information updatable in author context'}, |
col2 => 'User information updatable in author context'}, |
{col1 => 'Target user has role', |
{col1 => 'Target user has role', |
|
col2 => 'User information updatable by co-author manager'}, |
|
{col1 => 'Target user has role', |
col2 => 'User information updatable in course context'}], |
col2 => 'User information updatable in course context'}], |
print => \&print_usermodification, |
print => \&print_usermodification, |
modify => \&modify_usermodification, |
modify => \&modify_usermodification, |
Line 1031 sub print_config_box {
|
Line 1033 sub print_config_box {
|
($action eq 'usersessions') || ($action eq 'coursecategories') || |
($action eq 'usersessions') || ($action eq 'coursecategories') || |
($action eq 'trust') || ($action eq 'contacts') || ($action eq 'defaults') || |
($action eq 'trust') || ($action eq 'contacts') || ($action eq 'defaults') || |
($action eq 'privacy') || ($action eq 'passwords') || ($action eq 'lti') || |
($action eq 'privacy') || ($action eq 'passwords') || ($action eq 'lti') || |
($action eq 'ltitools')) { |
($action eq 'ltitools') || ($action eq 'usermodification')) { |
if ($action eq 'coursecategories') { |
if ($action eq 'coursecategories') { |
$output .= &print_coursecategories('middle',$dom,$item,$settings,\$rowtotal); |
$output .= &print_coursecategories('middle',$dom,$item,$settings,\$rowtotal); |
$colspan = ' colspan="2"'; |
$colspan = ' colspan="2"'; |
Line 1135 sub print_config_box {
|
Line 1137 sub print_config_box {
|
} |
} |
} |
} |
$rowtotal ++; |
$rowtotal ++; |
} elsif (($action eq 'usermodification') || ($action eq 'coursedefaults') || |
} elsif (($action eq 'coursedefaults') || ($action eq 'authordefaults') || |
($action eq 'directorysrch') || ($action eq 'helpsettings') || |
($action eq 'directorysrch') || ($action eq 'helpsettings') || |
($action eq 'wafproxy') || ($action eq 'authordefaults')) { |
($action eq 'wafproxy')) { |
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
$output .= $item->{'print'}->('bottom',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'scantron') { |
} elsif ($action eq 'scantron') { |
$output .= $item->{'print'}->($r,'bottom',$dom,$confname,$settings,\$rowtotal); |
$output .= $item->{'print'}->($r,'bottom',$dom,$confname,$settings,\$rowtotal); |
Line 2019 sub print_rolecolors {
|
Line 2021 sub print_rolecolors {
|
my %choices = &color_font_choices(); |
my %choices = &color_font_choices(); |
my @bgs = ('pgbg','tabbg','sidebg'); |
my @bgs = ('pgbg','tabbg','sidebg'); |
my @links = ('link','alink','vlink'); |
my @links = ('link','alink','vlink'); |
my @images = ('img'); |
my @images = (); |
my %alt_text = &Apache::lonlocal::texthash(img => "Banner for $role role"); |
my %alt_text = &Apache::lonlocal::texthash(img => "Banner for $role role"); |
my %designhash = &Apache::loncommon::get_domainconf($dom); |
my %designhash = &Apache::loncommon::get_domainconf($dom); |
my %defaultdesign = %Apache::loncommon::defaultdesign; |
my %defaultdesign = %Apache::loncommon::defaultdesign; |
Line 2027 sub print_rolecolors {
|
Line 2029 sub print_rolecolors {
|
my %defaults = &role_defaults($role,\@bgs,\@links,\@images); |
my %defaults = &role_defaults($role,\@bgs,\@links,\@images); |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings->{$role}) eq 'HASH') { |
if (ref($settings->{$role}) eq 'HASH') { |
if ($settings->{$role}->{'img'} ne '') { |
|
$designs{'img'} = $settings->{$role}->{'img'}; |
|
$is_custom{'img'} = 1; |
|
} |
|
if ($settings->{$role}->{'font'} ne '') { |
if ($settings->{$role}->{'font'} ne '') { |
$designs{'font'} = $settings->{$role}->{'font'}; |
$designs{'font'} = $settings->{$role}->{'font'}; |
$is_custom{'font'} = 1; |
$is_custom{'font'} = 1; |
Line 2053 sub print_rolecolors {
|
Line 2051 sub print_rolecolors {
|
} |
} |
} |
} |
} else { |
} else { |
if ($designhash{$dom.'.'.$role.'.img'} ne '') { |
|
$designs{img} = $designhash{$dom.'.'.$role.'.img'}; |
|
$is_custom{'img'} = 1; |
|
} |
|
if ($designhash{$dom.'.'.$role.'.fontmenu'} ne '') { |
if ($designhash{$dom.'.'.$role.'.fontmenu'} ne '') { |
$designs{fontmenu} = $designhash{$dom.'.'.$role.'.fontmenu'}; |
$designs{fontmenu} = $designhash{$dom.'.'.$role.'.fontmenu'}; |
$is_custom{'fontmenu'} = 1; |
$is_custom{'fontmenu'} = 1; |
Line 2106 sub role_defaults {
|
Line 2100 sub role_defaults {
|
} |
} |
} else { |
} else { |
%defaults = ( |
%defaults = ( |
img => $defaultdesign{$role.'.img'}, |
|
font => $defaultdesign{$role.'.font'}, |
font => $defaultdesign{$role.'.font'}, |
fontmenu => $defaultdesign{$role.'.fontmenu'}, |
fontmenu => $defaultdesign{$role.'.fontmenu'}, |
); |
); |
Line 6917 sub print_coursedefaults {
|
Line 6910 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 6921 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 7043 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 7082 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 7154 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 7284 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 7299 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 7314 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 7341 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 7483 sub print_authordefaults {
|
Line 7516 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 7506 sub authordefaults_titles {
|
Line 7548 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 10674 sub print_usermodification {
|
Line 10717 sub print_usermodification {
|
$$rowtotal ++; |
$$rowtotal ++; |
$rowcount ++; |
$rowcount ++; |
} |
} |
|
} elsif ($position eq 'middle') { |
|
$rowcount = 0; |
|
$context = 'coauthor'; |
|
foreach my $role ('ca','aa') { |
|
$datatable .= &modifiable_userdata_row($context,$role,$settings, |
|
$numinrow,$rowcount); |
|
$$rowtotal ++; |
|
$rowcount ++; |
|
} |
} elsif ($position eq 'bottom') { |
} elsif ($position eq 'bottom') { |
$context = 'course'; |
$context = 'course'; |
$rowcount = 0; |
$rowcount = 0; |
Line 12179 sub modifiable_userdata_row {
|
Line 12231 sub modifiable_userdata_row {
|
} else { |
} else { |
if ($context eq 'lti') { |
if ($context eq 'lti') { |
$prefix = 'lti'; |
$prefix = 'lti'; |
|
} elsif ($context eq 'coauthor') { |
|
$prefix = 'cacanmodify'; |
} elsif ($context eq 'privacy') { |
} elsif ($context eq 'privacy') { |
$prefix = 'privacy'; |
$prefix = 'privacy'; |
} |
} |
Line 13071 sub check_exempt_addresses {
|
Line 13125 sub check_exempt_addresses {
|
sub color_font_choices { |
sub color_font_choices { |
my %choices = |
my %choices = |
&Apache::lonlocal::texthash ( |
&Apache::lonlocal::texthash ( |
img => "Header", |
|
bgs => "Background colors", |
bgs => "Background colors", |
links => "Link colors", |
links => "Link colors", |
images => "Images", |
images => "Images", |
Line 13126 sub modify_ipaccess {
|
Line 13179 sub modify_ipaccess {
|
foreach my $idx (@items) { |
foreach my $idx (@items) { |
my $itemid = $itemids{$idx}; |
my $itemid = $itemids{$idx}; |
next unless ($itemid); |
next unless ($itemid); |
my %current; |
my ($position,%current); |
unless ($idx eq 'add') { |
if ($idx eq 'add') { |
|
$position = $env{'form.ipaccess_pos_add'}; |
|
} else { |
|
$position = $env{'form.ipaccess_pos_'.$itemid}; |
if (ref($domconfig{'ipaccess'}{$itemid}) eq 'HASH') { |
if (ref($domconfig{'ipaccess'}{$itemid}) eq 'HASH') { |
%current = %{$domconfig{'ipaccess'}{$itemid}}; |
%current = %{$domconfig{'ipaccess'}{$itemid}}; |
} |
} |
} |
} |
my $position = $env{'form.ipaccess_pos_'.$itemid}; |
|
$position =~ s/\D+//g; |
$position =~ s/\D+//g; |
if ($position ne '') { |
if ($position ne '') { |
$allpos[$position] = $itemid; |
$allpos[$position] = $itemid; |
Line 13385 sub modify_authordefaults {
|
Line 13440 sub modify_authordefaults {
|
'nocodemirror' => 'off', |
'nocodemirror' => 'off', |
'daxecollapse' => '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','daxecollapse','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 13434 sub modify_authordefaults {
|
Line 13490 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','daxecollapse','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 13456 sub modify_authordefaults {
|
Line 13512 sub modify_authordefaults {
|
} |
} |
} else { |
} else { |
my @offon = ('off','on'); |
my @offon = ('off','on'); |
foreach my $item ('nocodemirror','daxecollapse','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 13466 sub modify_authordefaults {
|
Line 13522 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 13547 sub modify_authordefaults {
|
Line 13609 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 13579 sub modify_authordefaults {
|
Line 13641 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 13586 sub modify_authordefaults {
|
Line 13651 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 13654 sub modify_colors {
|
Line 13720 sub modify_colors {
|
@images = ('img','logo','domlogo','login'); |
@images = ('img','logo','domlogo','login'); |
@bgs = ('pgbg','mainbg','sidebg'); |
@bgs = ('pgbg','mainbg','sidebg'); |
} else { |
} else { |
@images = ('img'); |
@images = (); |
@bgs = ('pgbg','tabbg','sidebg'); |
@bgs = ('pgbg','tabbg','sidebg'); |
} |
} |
my %defaults = &role_defaults($role,\@bgs,\@links,\@images,\@logintext); |
my %defaults = &role_defaults($role,\@bgs,\@links,\@images,\@logintext); |
unless ($env{'form.'.$role.'_font'} eq $defaults{'font'}) { |
$env{'form.'.$role.'_font'} = lc($env{'form.'.$role.'_font'}); |
|
if ($env{'form.'.$role.'_font'} =~ /^\w+/) { |
|
$env{'form.'.$role.'_font'} = '#'.$env{'form.'.$role.'_font'}; |
|
} |
|
unless ($env{'form.'.$role.'_font'} eq lc($defaults{'font'})) { |
$confhash->{$role}{'font'} = $env{'form.'.$role.'_font'}; |
$confhash->{$role}{'font'} = $env{'form.'.$role.'_font'}; |
} |
} |
if ($role eq 'login') { |
if ($role eq 'login') { |
Line 13676 sub modify_colors {
|
Line 13746 sub modify_colors {
|
if ($env{'form.'.$role.'_fontmenu'} =~ /^\w+/) { |
if ($env{'form.'.$role.'_fontmenu'} =~ /^\w+/) { |
$env{'form.'.$role.'_fontmenu'} = '#'.$env{'form.'.$role.'_fontmenu'}; |
$env{'form.'.$role.'_fontmenu'} = '#'.$env{'form.'.$role.'_fontmenu'}; |
} |
} |
unless($env{'form.'.$role.'_fontmenu'} eq lc($defaults{'fontmenu'})) { |
unless ($env{'form.'.$role.'_fontmenu'} eq lc($defaults{'fontmenu'})) { |
$confhash->{$role}{'fontmenu'} = $env{'form.'.$role.'_fontmenu'}; |
$confhash->{$role}{'fontmenu'} = $env{'form.'.$role.'_fontmenu'}; |
} |
} |
} |
} |
Line 14789 sub modify_quotas {
|
Line 14859 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 19819 sub modify_usermodification {
|
Line 19890 sub modify_usermodification {
|
} |
} |
} |
} |
} |
} |
my @contexts = ('author','course'); |
my @contexts = ('author','coauthor','course'); |
my %context_title = ( |
my %context_title = ( |
author => 'In author context', |
author => 'In author context', |
|
coauthor => 'As co-author manager', |
course => 'In course context', |
course => 'In course context', |
); |
); |
my @fields = ('lastname','firstname','middlename','generation', |
my @fields = ('lastname','firstname','middlename','generation', |
'permanentemail','id'); |
'permanentemail','id'); |
my %roles = ( |
my %roles = ( |
author => ['ca','aa'], |
author => ['ca','aa'], |
|
coauthor => ['ca','aa'], |
course => ['st','ep','ta','in','cr'], |
course => ['st','ep','ta','in','cr'], |
); |
); |
my %fieldtitles = &Apache::loncommon::personal_data_fieldtitles(); |
my %fieldtitles = &Apache::loncommon::personal_data_fieldtitles(); |
foreach my $context (@contexts) { |
foreach my $context (@contexts) { |
|
my $prefix = 'canmodify'; |
|
if ($context eq 'coauthor') { |
|
$prefix = 'cacanmodify'; |
|
} |
foreach my $role (@{$roles{$context}}) { |
foreach my $role (@{$roles{$context}}) { |
my @modifiable = &Apache::loncommon::get_env_multiple('form.canmodify_'.$role); |
my @modifiable = &Apache::loncommon::get_env_multiple('form.'.$prefix.'_'.$role); |
foreach my $item (@fields) { |
foreach my $item (@fields) { |
if (grep(/^\Q$item\E$/,@modifiable)) { |
if (grep(/^\Q$item\E$/,@modifiable)) { |
$modifyhash{$context}{$role}{$item} = 1; |
$modifyhash{$context}{$role}{$item} = 1; |
Line 21213 sub modify_coursedefaults {
|
Line 21290 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 21404 sub modify_coursedefaults {
|
Line 21486 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 21441 sub modify_coursedefaults {
|
Line 21525 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 21464 sub modify_coursedefaults {
|
Line 21569 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 21547 sub modify_coursedefaults {
|
Line 21653 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 21726 sub modify_coursedefaults {
|
Line 21837 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>'; |