version 1.91, 2009/03/31 16:59:01
|
version 1.98, 2009/07/25 14:44:50
|
Line 162 sub handler {
|
Line 162 sub handler {
|
col2 => 'Information settable when self-creating account (if directory data blank)'}], |
col2 => 'Information settable when self-creating account (if directory data blank)'}], |
}, |
}, |
'scantron' => |
'scantron' => |
{ text => 'Scantron format file', |
{ text => 'Bubblesheet format file', |
help => 'Domain_Configuration_Scantron_Format', |
help => 'Domain_Configuration_Scantron_Format', |
header => [ {col1 => 'Item', |
header => [ {col1 => 'Item', |
col2 => '', |
col2 => '', |
Line 204 sub handler {
|
Line 204 sub handler {
|
&Apache::lonconfigsettings::display_settings($r,$dom,$phase,$context,\@prefs_order,\%prefs,\%domconfig,$confname); |
&Apache::lonconfigsettings::display_settings($r,$dom,$phase,$context,\@prefs_order,\%prefs,\%domconfig,$confname); |
} else { |
} else { |
if (keys(%domconfig) == 0) { |
if (keys(%domconfig) == 0) { |
&Apache::lonconfigsettings::print_header($r,$phase,$context); |
|
my $primarylibserv = &Apache::lonnet::domain($dom,'primary'); |
my $primarylibserv = &Apache::lonnet::domain($dom,'primary'); |
my @ids=&Apache::lonnet::current_machine_ids(); |
my @ids=&Apache::lonnet::current_machine_ids(); |
if (!grep(/^\Q$primarylibserv\E$/,@ids)) { |
if (!grep(/^\Q$primarylibserv\E$/,@ids)) { |
Line 222 sub handler {
|
Line 221 sub handler {
|
} |
} |
} |
} |
if ($custom_img_count > 0) { |
if ($custom_img_count > 0) { |
|
&Apache::lonconfigsettings::print_header($r,$phase,$context); |
my $switch_server = &check_switchserver($dom,$confname); |
my $switch_server = &check_switchserver($dom,$confname); |
$r->print( |
$r->print( |
&mt('Domain configuration settings have yet to be saved for this domain via the web-based domain preferences interface.').'<br />'. |
&mt('Domain configuration settings have yet to be saved for this domain via the web-based domain preferences interface.').'<br />'. |
Line 242 sub handler {
|
Line 242 sub handler {
|
} |
} |
|
|
sub process_changes { |
sub process_changes { |
my ($r,$dom,$confname,$action,$roles,%domconfig) = @_; |
my ($r,$dom,$confname,$action,$roles,$values) = @_; |
|
my %domconfig; |
|
if (ref($values) eq 'HASH') { |
|
%domconfig = %{$values}; |
|
} |
my $output; |
my $output; |
if ($action eq 'login') { |
if ($action eq 'login') { |
$output = &modify_login($r,$dom,$confname,%domconfig); |
$output = &modify_login($r,$dom,$confname,%domconfig); |
Line 630 sub print_rolecolors {
|
Line 634 sub print_rolecolors {
|
my %defaults = ( |
my %defaults = ( |
img => $defaultdesign{$role.'.img'}, |
img => $defaultdesign{$role.'.img'}, |
font => $defaultdesign{$role.'.font'}, |
font => $defaultdesign{$role.'.font'}, |
|
fontmenu => $defaultdesign{$role.'.fontmenu'}, |
); |
); |
foreach my $item (@bgs) { |
foreach my $item (@bgs) { |
$defaults{'bgs'}{$item} = $defaultdesign{$role.'.'.$item}; |
$defaults{'bgs'}{$item} = $defaultdesign{$role.'.'.$item}; |
Line 647 sub print_rolecolors {
|
Line 652 sub print_rolecolors {
|
$designs{'font'} = $settings->{$role}->{'font'}; |
$designs{'font'} = $settings->{$role}->{'font'}; |
$is_custom{'font'} = 1; |
$is_custom{'font'} = 1; |
} |
} |
|
if ($settings->{$role}->{'fontmenu'} ne '') { |
|
$designs{'fontmenu'} = $settings->{$role}->{'fontmenu'}; |
|
$is_custom{'fontmenu'} = 1; |
|
} |
foreach my $item (@bgs) { |
foreach my $item (@bgs) { |
if ($settings->{$role}->{$item} ne '') { |
if ($settings->{$role}->{$item} ne '') { |
$designs{'bgs'}{$item} = $settings->{$role}->{$item}; |
$designs{'bgs'}{$item} = $settings->{$role}->{$item}; |
Line 665 sub print_rolecolors {
|
Line 674 sub print_rolecolors {
|
$designs{img} = $designhash{$dom.'.'.$role.'.img'}; |
$designs{img} = $designhash{$dom.'.'.$role.'.img'}; |
$is_custom{'img'} = 1; |
$is_custom{'img'} = 1; |
} |
} |
|
if ($designhash{$dom.'.'.$role.'.fontmenu'} ne '') { |
|
$designs{fontmenu} = $designhash{$dom.'.'.$role.'.fontmenu'}; |
|
$is_custom{'fontmenu'} = 1; |
|
} |
if ($designhash{$dom.'.'.$role.'.font'} ne '') { |
if ($designhash{$dom.'.'.$role.'.font'} ne '') { |
$designs{font} = $designhash{$dom.'.'.$role.'.font'}; |
$designs{font} = $designhash{$dom.'.'.$role.'.font'}; |
$is_custom{'font'} = 1; |
$is_custom{'font'} = 1; |
Line 693 sub display_color_options {
|
Line 706 sub display_color_options {
|
my ($dom,$confname,$phase,$role,$itemcount,$choices,$is_custom,$defaults,$designs, |
my ($dom,$confname,$phase,$role,$itemcount,$choices,$is_custom,$defaults,$designs, |
$images,$bgs,$links,$alt_text,$rowtotal,$logintext,$loginheader) = @_; |
$images,$bgs,$links,$alt_text,$rowtotal,$logintext,$loginheader) = @_; |
my $css_class = $itemcount%2?' class="LC_odd_row"':''; |
my $css_class = $itemcount%2?' class="LC_odd_row"':''; |
my $datatable = '<tr'.$css_class.'>'. |
my $datatable = '<tr>'. |
'<td>'.$choices->{'font'}.'</td>'; |
'<td>'.$choices->{'font'}.'</td>'; |
if (!$is_custom->{'font'}) { |
if (!$is_custom->{'font'}) { |
$datatable .= '<td>'.&mt('Default in use:').' <span id="css_default_'.$role.'_font" style="color: '.$defaults->{'font'}.';">'.$defaults->{'font'}.'</span></td>'; |
$datatable .= '<td>'.&mt('Default in use:').' <span id="css_default_'.$role.'_font" style="color: '.$defaults->{'font'}.';">'.$defaults->{'font'}.'</span></td>'; |
Line 707 sub display_color_options {
|
Line 720 sub display_color_options {
|
' <span id="css_'.$role.'_font" style="background-color: '. |
' <span id="css_'.$role.'_font" style="background-color: '. |
$designs->{'font'}.';"> </span>'. |
$designs->{'font'}.';"> </span>'. |
'</span></td></tr>'; |
'</span></td></tr>'; |
|
$datatable .= '<tr'.$css_class.'>'. |
|
'<td>'.$choices->{'fontmenu'}.'</td>'; |
|
if (!$is_custom->{'fontmenu'}) { |
|
$datatable .= '<td>'.&mt('Default in use:').' <span id="css_default_'.$role.'_font" style="color: '.$defaults->{'fontmenu'}.';">'.$defaults->{'fontmenu'}.'</span></td>'; |
|
} else { |
|
$datatable .= '<td> </td>'; |
|
} |
|
$fontlink = &color_pick($phase,$role,'fontmenu',$choices->{'fontmenu'},$designs->{'fontmenu'}); |
|
$datatable .= '<td><span class="LC_nobreak">'. |
|
'<input type="text" size="10" name="'.$role.'_fontmenu"'. |
|
' value="'.$designs->{'fontmenu'}.'" /> '.$fontlink. |
|
' <span id="css_'.$role.'_fontmenu" style="background-color: '. |
|
$designs->{'fontmenu'}.';"> </span>'. |
|
'</span></td></tr>'; |
my $switchserver = &check_switchserver($dom,$confname); |
my $switchserver = &check_switchserver($dom,$confname); |
foreach my $img (@{$images}) { |
foreach my $img (@{$images}) { |
$itemcount ++; |
$itemcount ++; |
Line 992 sub print_quotas {
|
Line 1019 sub print_quotas {
|
my $typecount = 0; |
my $typecount = 0; |
my $css_class; |
my $css_class; |
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
@usertools = ('official','unofficial'); |
@usertools = ('official','unofficial','community'); |
} else { |
} else { |
@usertools = ('aboutme','blog','portfolio'); |
@usertools = ('aboutme','blog','portfolio'); |
} |
} |
Line 1090 sub print_quotas {
|
Line 1117 sub print_quotas {
|
$typecount ++; |
$typecount ++; |
$css_class = $typecount%2?' class="LC_odd_row"':''; |
$css_class = $typecount%2?' class="LC_odd_row"':''; |
$datatable .= '<tr'.$css_class.'>'. |
$datatable .= '<tr'.$css_class.'>'. |
'<td><br/>'.&mt('LON-CAPA Advanced Users').'</td>'. |
'<td>'.&mt('LON-CAPA Advanced Users'). |
|
' <span class="LC_nobreak">('. |
|
&mt('overrides affiliation').')</span></td>'. |
'<td class="LC_left_item" colspan="2"><br />'; |
'<td class="LC_left_item" colspan="2"><br />'; |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
my $checked; |
my $checked; |
Line 1111 sub print_quotas {
|
Line 1140 sub print_quotas {
|
'" value="_LC_adv" '.$checked.'/>'.$titles{$item}. |
'" value="_LC_adv" '.$checked.'/>'.$titles{$item}. |
'</label></span> '; |
'</label></span> '; |
} |
} |
$datatable .= '<span class="LC_nobreak">('.&mt('overrides affiliation'). |
$datatable .= '</td></tr>'; |
')</span></td></tr>'; |
|
$$rowtotal += $typecount; |
$$rowtotal += $typecount; |
return $datatable; |
return $datatable; |
} |
} |
Line 1295 sub print_directorysrch {
|
Line 1323 sub print_directorysrch {
|
$$rowtotal += 2; |
$$rowtotal += 2; |
if (ref($usertypes) eq 'HASH') { |
if (ref($usertypes) eq 'HASH') { |
if (keys(%{$usertypes}) > 0) { |
if (keys(%{$usertypes}) > 0) { |
$datatable .= &users_cansearch_row($settings,$types,$usertypes,$dom, |
$datatable .= &insttypes_row($settings,$types,$usertypes,$dom, |
$numinrow,$othertitle); |
$numinrow,$othertitle,'cansearch'); |
$cansrchrow = 1; |
$cansrchrow = 1; |
} |
} |
} |
} |
Line 1311 sub print_directorysrch {
|
Line 1339 sub print_directorysrch {
|
foreach my $title (@{$titleorder}) { |
foreach my $title (@{$titleorder}) { |
if (defined($searchtitles->{$title})) { |
if (defined($searchtitles->{$title})) { |
my $check = ' '; |
my $check = ' '; |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
if (ref($settings->{'searchby'}) eq 'ARRAY') { |
if (ref($settings->{'searchby'}) eq 'ARRAY') { |
if (grep(/^\Q$title\E$/,@{$settings->{'searchby'}})) { |
if (grep(/^\Q$title\E$/,@{$settings->{'searchby'}})) { |
$check = ' checked="checked" '; |
$check = ' checked="checked" '; |
Line 1444 sub tool_titles {
|
Line 1472 sub tool_titles {
|
portfolio => 'Portfolio', |
portfolio => 'Portfolio', |
official => 'Official courses (with institutional codes)', |
official => 'Official courses (with institutional codes)', |
unofficial => 'Unofficial courses', |
unofficial => 'Unofficial courses', |
|
community => 'Communities', |
); |
); |
return %titles; |
return %titles; |
} |
} |
Line 1566 sub print_usercreation {
|
Line 1595 sub print_usercreation {
|
} |
} |
$datatable .= '</td></tr>'; |
$datatable .= '</td></tr>'; |
} |
} |
|
my ($othertitle,$usertypes,$types) = |
|
&Apache::loncommon::sorted_inst_types($dom); |
|
if (ref($usertypes) eq 'HASH') { |
|
if (keys(%{$usertypes}) > 0) { |
|
$datatable .= &insttypes_row($settings->{cancreate},$types,$usertypes, |
|
$dom,$numinrow,$othertitle, |
|
'statustocreate'); |
|
$$rowtotal ++; |
|
} |
|
} |
} else { |
} else { |
my @contexts = ('author','course','domain'); |
my @contexts = ('author','course','domain'); |
my @authtypes = ('int','krb4','krb5','loc'); |
my @authtypes = ('int','krb4','krb5','loc'); |
Line 1819 sub print_scantronformat {
|
Line 1858 sub print_scantronformat {
|
%confhash); |
%confhash); |
my $switchserver = &check_switchserver($dom,$confname); |
my $switchserver = &check_switchserver($dom,$confname); |
my %lt = &Apache::lonlocal::texthash ( |
my %lt = &Apache::lonlocal::texthash ( |
default => 'Default scantron format file error', |
default => 'Default bubblesheet format file error', |
custom => 'Custom scantron format file error', |
custom => 'Custom bubblesheet format file error', |
); |
); |
my %scantronfiles = ( |
my %scantronfiles = ( |
default => 'default.tab', |
default => 'default.tab', |
Line 1893 sub print_scantronformat {
|
Line 1932 sub print_scantronformat {
|
} |
} |
} |
} |
} else { |
} else { |
$error{'default'} = &mt("Unable to copy default scantron formatfile to domain's RES space: [_1]",$switchserver); |
$error{'default'} = &mt("Unable to copy default bubblesheet formatfile to domain's RES space: [_1]",$switchserver); |
} |
} |
} |
} |
if (ref($settings) eq 'HASH') { |
if (ref($settings) eq 'HASH') { |
Line 2456 sub modifiable_userdata_row {
|
Line 2495 sub modifiable_userdata_row {
|
return $output; |
return $output; |
} |
} |
|
|
sub users_cansearch_row { |
sub insttypes_row { |
my ($settings,$types,$usertypes,$dom,$numinrow,$othertitle) = @_; |
my ($settings,$types,$usertypes,$dom,$numinrow,$othertitle,$context) = @_; |
|
my %lt = &Apache::lonlocal::texthash ( |
|
cansearch => 'Users allowed to search', |
|
statustocreate => 'Institutional affiliation(s) able to create own account (login/SSO)', |
|
); |
|
my $showdom; |
|
if ($context eq 'cansearch') { |
|
$showdom = ' ('.$dom.')'; |
|
} |
my $output = '<tr class="LC_odd_row">'. |
my $output = '<tr class="LC_odd_row">'. |
'<td>'.&mt('Users allowed to search').' ('.$dom.')'. |
'<td>'.$lt{$context}.$showdom. |
'</td><td class="LC_left_item" colspan="2"><table>'; |
'</td><td class="LC_left_item" colspan="2"><table>'; |
my $rem; |
my $rem; |
if (ref($types) eq 'ARRAY') { |
if (ref($types) eq 'ARRAY') { |
Line 2473 sub users_cansearch_row {
|
Line 2520 sub users_cansearch_row {
|
$output .= '<tr>'; |
$output .= '<tr>'; |
} |
} |
my $check = ' '; |
my $check = ' '; |
if (ref($settings->{'cansearch'}) eq 'ARRAY') { |
if (ref($settings->{$context}) eq 'ARRAY') { |
if (grep(/^\Q$types->[$i]\E$/,@{$settings->{'cansearch'}})) { |
if (grep(/^\Q$types->[$i]\E$/,@{$settings->{$context}})) { |
$check = ' checked="checked" '; |
$check = ' checked="checked" '; |
} |
} |
|
} elsif ($context eq 'statustocreate') { |
|
$check = ' checked="checked" '; |
} |
} |
$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="cansearch" '. |
'<input type="checkbox" name="'.$context.'" '. |
'value="'.$types->[$i].'"'.$check.'/>'. |
'value="'.$types->[$i].'"'.$check.'/>'. |
$usertypes->{$types->[$i]}.'</label></span></td>'; |
$usertypes->{$types->[$i]}.'</label></span></td>'; |
} |
} |
Line 2495 sub users_cansearch_row {
|
Line 2544 sub users_cansearch_row {
|
$output .= '<td class="LC_left_item">'; |
$output .= '<td class="LC_left_item">'; |
} |
} |
my $defcheck = ' '; |
my $defcheck = ' '; |
if (ref($settings->{'cansearch'}) eq 'ARRAY') { |
if (ref($settings->{$context}) eq 'ARRAY') { |
if (grep(/^default$/,@{$settings->{'cansearch'}})) { |
if (grep(/^default$/,@{$settings->{$context}})) { |
$defcheck = ' checked="checked" '; |
$defcheck = ' checked="checked" '; |
} |
} |
|
} elsif ($context eq 'statustocreate') { |
|
$defcheck = ' checked="checked" '; |
} |
} |
$output .= '<span class="LC_nobreak"><label>'. |
$output .= '<span class="LC_nobreak"><label>'. |
'<input type="checkbox" name="cansearch" '. |
'<input type="checkbox" name="'.$context.'" '. |
'value="default"'.$defcheck.'/>'. |
'value="default"'.$defcheck.'/>'. |
$othertitle.'</label></span></td>'. |
$othertitle.'</label></span></td>'. |
'</tr></table></td></tr>'; |
'</tr></table></td></tr>'; |
Line 2671 sub color_font_choices {
|
Line 2722 sub color_font_choices {
|
links => "Link colors", |
links => "Link colors", |
images => "Images", |
images => "Images", |
font => "Font color", |
font => "Font color", |
|
fontmenu => "Font Menu", |
pgbg => "Page", |
pgbg => "Page", |
tabbg => "Header", |
tabbg => "Header", |
sidebg => "Border", |
sidebg => "Border", |
Line 2737 sub modify_colors {
|
Line 2789 sub modify_colors {
|
@bgs = ('pgbg','tabbg','sidebg'); |
@bgs = ('pgbg','tabbg','sidebg'); |
} |
} |
$confhash->{$role}{'font'} = $env{'form.'.$role.'_font'}; |
$confhash->{$role}{'font'} = $env{'form.'.$role.'_font'}; |
|
$confhash->{$role}{'fontmenu'} = $env{'form.'.$role.'_fontmenu'}; |
foreach my $item (@bgs,@links,@logintext) { |
foreach my $item (@bgs,@links,@logintext) { |
$confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; |
$confhash->{$role}{$item} = $env{'form.'.$role.'_'.$item}; |
} |
} |
Line 2850 sub modify_colors {
|
Line 2903 sub modify_colors {
|
$changes{$role}{'font'} = 1; |
$changes{$role}{'font'} = 1; |
} |
} |
} |
} |
|
if ($domconfig->{$role}{'fontmenu'} ne '') { |
|
if ($confhash->{$role}{'fontmenu'} ne $domconfig->{$role}{'fontmenu'}) { |
|
$changes{$role}{'fontmenu'} = 1; |
|
} |
|
} else { |
|
if ($confhash->{$role}{'fontmenu'}) { |
|
$changes{$role}{'fontmenu'} = 1; |
|
} |
|
} |
foreach my $item (@bgs) { |
foreach my $item (@bgs) { |
if ($domconfig->{$role}{$item} ne '') { |
if ($domconfig->{$role}{$item} ne '') { |
if ($confhash->{$role}{$item} ne $domconfig->{$role}{$item}) { |
if ($confhash->{$role}{$item} ne $domconfig->{$role}{$item}) { |
Line 3288 sub modify_quotas {
|
Line 3350 sub modify_quotas {
|
$context = $action; |
$context = $action; |
} |
} |
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
@usertools = ('official','unofficial'); |
@usertools = ('official','unofficial','community'); |
} else { |
} else { |
@usertools = ('aboutme','blog','portfolio'); |
@usertools = ('aboutme','blog','portfolio'); |
} |
} |
Line 3974 sub modify_usercreation {
|
Line 4036 sub modify_usercreation {
|
$cancreate{$item} = $env{'form.can_createuser_'.$item}; |
$cancreate{$item} = $env{'form.can_createuser_'.$item}; |
} |
} |
} |
} |
|
my ($othertitle,$usertypes,$types) = |
|
&Apache::loncommon::sorted_inst_types($dom); |
|
if (ref($types) eq 'ARRAY') { |
|
if (@{$types} > 0) { |
|
@{$cancreate{'statustocreate'}} = |
|
&Apache::loncommon::get_env_multiple('form.statustocreate'); |
|
} |
|
push(@contexts,'statustocreate'); |
|
} |
if (ref($curr_usercreation{'cancreate'}) eq 'HASH') { |
if (ref($curr_usercreation{'cancreate'}) eq 'HASH') { |
foreach my $item (@contexts) { |
foreach my $item (@contexts) { |
if ($item eq 'selfcreate') { |
if (($item eq 'selfcreate') || ($item eq 'statustocreate')) { |
if (ref($curr_usercreation{'cancreate'}{$item}) eq 'ARRAY') { |
if (ref($curr_usercreation{'cancreate'}{$item}) eq 'ARRAY') { |
foreach my $curr (@{$curr_usercreation{'cancreate'}{$item}}) { |
foreach my $curr (@{$curr_usercreation{'cancreate'}{$item}}) { |
if (!grep(/^$curr$/,@{$cancreate{$item}})) { |
if (!grep(/^$curr$/,@{$cancreate{$item}})) { |
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
if (!grep(/^$item$/,@{$changes{'cancreate'}})) { |
Line 4164 sub modify_usercreation {
|
Line 4235 sub modify_usercreation {
|
} |
} |
$chgtext .= '</ul>'; |
$chgtext .= '</ul>'; |
} |
} |
|
} elsif ($type eq 'statustocreate') { |
|
if ((ref($cancreate{'selfcreate'}) eq 'ARRAY') && |
|
(ref($cancreate{'statustocreate'}) eq 'ARRAY')) { |
|
if (@{$cancreate{'selfcreate'}} > 0) { |
|
if (@{$cancreate{'statustocreate'}} == 0) { |
|
if (!grep(/^email$/,@{$cancreate{'selfcreate'}})) { |
|
$chgtext .= &mt("However, no institutional affiliations (including 'other') are currently permitted to create accounts."); |
|
} |
|
} elsif (ref($usertypes) eq 'HASH') { |
|
if (grep(/^(login|sso)$/,@{$cancreate{'selfcreate'}})) { |
|
$chgtext .= &mt('creation of a new account for an institutional user is restricted to the following institutional affiliation(s):').'<ul>'; |
|
foreach my $case (@{$cancreate{$type}}) { |
|
if ($case eq 'default') { |
|
$chgtext .= '<li>'.$othertitle.'</li>'; |
|
} else { |
|
$chgtext .= '<li>'.$usertypes->{$case}.'</li>'; |
|
} |
|
} |
|
$chgtext .= '</ul>'; |
|
} |
|
} |
|
} |
|
} |
} else { |
} else { |
if ($cancreate{$type} eq 'none') { |
if ($cancreate{$type} eq 'none') { |
$chgtext .= &mt('creation of new users is not permitted, except by a Domain Coordinator.'); |
$chgtext .= &mt('creation of new users is not permitted, except by a Domain Coordinator.'); |