version 1.102.4.1, 2009/09/23 02:40:13
|
version 1.110, 2009/10/06 18:10:25
|
Line 220 sub handler {
|
Line 220 sub handler {
|
{col1 => 'Administrator Settings', |
{col1 => 'Administrator Settings', |
col2 => '',}], |
col2 => '',}], |
}, |
}, |
'login' => |
'login' => |
{ text => 'Log-in page options', |
{ text => 'Log-in page options', |
help => 'Domain_Configuration_Login_Page', |
help => 'Domain_Configuration_Login_Page', |
header => [{col1 => 'Item', |
header => [{col1 => 'Item', |
col2 => '',}], |
col2 => '',}], |
}, |
}, |
|
|
'defaults' => |
'defaults' => |
{ text => 'Default authentication/language/timezone', |
{ text => 'Default authentication/language/timezone', |
help => 'Domain_Configuration_LangTZAuth', |
help => 'Domain_Configuration_LangTZAuth', |
Line 319 sub handler {
|
Line 320 sub handler {
|
}], |
}], |
}, |
}, |
); |
); |
|
my %servers = &Apache::lonnet::get_servers($dom); |
|
if (keys(%servers) > 1) { |
|
$prefs{'login'} = { text => 'Log-in page options', |
|
help => 'Domain_Configuration_Login_Page', |
|
header => [{col1 => 'Log-in Service', |
|
col2 => 'Server Setting',}, |
|
{col1 => 'Log-in Page Items', |
|
col2 => ''}], |
|
}; |
|
} |
my @roles = ('student','coordinator','author','admin'); |
my @roles = ('student','coordinator','author','admin'); |
my @actions = &Apache::loncommon::get_env_multiple('form.actions'); |
my @actions = &Apache::loncommon::get_env_multiple('form.actions'); |
&Apache::lonhtmlcommon::add_breadcrumb |
&Apache::lonhtmlcommon::add_breadcrumb |
Line 423 sub print_config_box {
|
Line 434 sub print_config_box {
|
&Apache::loncommon::help_open_topic($item->{'help'}).'</span></th>'."\n". |
&Apache::loncommon::help_open_topic($item->{'help'}).'</span></th>'."\n". |
'</tr>'; |
'</tr>'; |
$rowtotal ++; |
$rowtotal ++; |
if (($action eq 'autoupdate') || ($action eq 'rolecolors') || |
my $numheaders = 1; |
($action eq 'usercreation') || ($action eq 'usermodification') || |
if (ref($item->{'header'}) eq 'ARRAY') { |
($action eq 'coursecategories') || ($action eq 'requestcourses')) { |
$numheaders = scalar(@{$item->{'header'}}); |
|
} |
|
if ($numheaders > 1) { |
my $colspan = ''; |
my $colspan = ''; |
if (($action eq 'rolecolors') || ($action eq 'coursecategories')) { |
if (($action eq 'rolecolors') || ($action eq 'coursecategories')) { |
$colspan = ' colspan="2"'; |
$colspan = ' colspan="2"'; |
Line 447 sub print_config_box {
|
Line 460 sub print_config_box {
|
$output .= &print_usermodification('top',$dom,$settings,\$rowtotal); |
$output .= &print_usermodification('top',$dom,$settings,\$rowtotal); |
} elsif ($action eq 'coursecategories') { |
} elsif ($action eq 'coursecategories') { |
$output .= &print_coursecategories('top',$dom,$item,$settings,\$rowtotal); |
$output .= &print_coursecategories('top',$dom,$item,$settings,\$rowtotal); |
|
} elsif ($action eq 'login') { |
|
$output .= &print_login('top',$dom,$confname,$phase,$settings,\$rowtotal); |
|
$colspan = ' colspan="2"'; |
} elsif ($action eq 'requestcourses') { |
} elsif ($action eq 'requestcourses') { |
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
} else { |
} else { |
Line 496 sub print_config_box {
|
Line 512 sub print_config_box {
|
$rowtotal ++; |
$rowtotal ++; |
} elsif ($action eq 'coursecategories') { |
} elsif ($action eq 'coursecategories') { |
$output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal); |
$output .= &print_coursecategories('bottom',$dom,$item,$settings,\$rowtotal); |
|
} elsif ($action eq 'login') { |
|
$output .= &print_login('bottom',$dom,$confname,$phase,$settings,\$rowtotal); |
} elsif ($action eq 'requestcourses') { |
} elsif ($action eq 'requestcourses') { |
$output .= &print_courserequestmail($dom,$settings,\$rowtotal); |
$output .= &print_courserequestmail($dom,$settings,\$rowtotal); |
} else { |
} else { |
Line 566 sub print_config_box {
|
Line 584 sub print_config_box {
|
$output .= '</tr>'; |
$output .= '</tr>'; |
$rowtotal ++; |
$rowtotal ++; |
if ($action eq 'login') { |
if ($action eq 'login') { |
$output .= &print_login($dom,$confname,$phase,$settings,\$rowtotal); |
$output .= &print_login('bottom',$dom,$confname,$phase,$settings, |
|
\$rowtotal); |
} elsif ($action eq 'quotas') { |
} elsif ($action eq 'quotas') { |
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
$output .= &print_quotas($dom,$settings,\$rowtotal,$action); |
} elsif ($action eq 'autoenroll') { |
} elsif ($action eq 'autoenroll') { |
Line 592 sub print_config_box {
|
Line 611 sub print_config_box {
|
} |
} |
|
|
sub print_login { |
sub print_login { |
my ($dom,$confname,$phase,$settings,$rowtotal) = @_; |
my ($position,$dom,$confname,$phase,$settings,$rowtotal) = @_; |
|
my ($css_class,$datatable); |
my %choices = &login_choices(); |
my %choices = &login_choices(); |
|
my $itemcount = 1; |
|
|
|
if ($position eq 'top') { |
|
my %servers = &Apache::lonnet::get_servers($dom); |
|
my $choice = $choices{'disallowlogin'}; |
|
$css_class = ' class="LC_odd_row"'; |
|
$datatable .= '<tr'.$css_class.'><td>'.$choices{'disallowlogin'}.'</td>'. |
|
'<td align="right"><table><tr><th>'.$choices{'hostid'}.'</th>'. |
|
'<th>'.$choices{'serverurl'}.'</th></tr>'."\n"; |
|
my %disallowed; |
|
if (ref($settings) eq 'HASH') { |
|
if (ref($settings->{'loginvia'}) eq 'HASH') { |
|
%disallowed = %{$settings->{'loginvia'}}; |
|
} |
|
} |
|
foreach my $lonhost (sort(keys(%servers))) { |
|
my $direct = 'selected="selected"'; |
|
if ($disallowed{$lonhost} eq '') { |
|
$direct = ''; |
|
} |
|
$datatable .= '<tr><td>'.$lonhost.'</td>'. |
|
'<td><select name="'.$lonhost.'_serverurl">'. |
|
'<option value=""'.$direct.'>'.$choices{'directlogin'}. |
|
'</option>'; |
|
foreach my $hostid (keys(%servers)) { |
|
next if ($hostid eq $lonhost); |
|
my $selected = ''; |
|
if ($hostid eq $disallowed{$lonhost}) { |
|
$selected = 'selected="selected"'; |
|
} |
|
$datatable .= '<option value="'.$hostid.'"'.$selected.'>'. |
|
$servers{$hostid}.'</option>'; |
|
} |
|
$datatable .= '</select></td></tr>'; |
|
} |
|
$datatable .= '</table></td></tr>'; |
|
return $datatable; |
|
} |
|
|
my %defaultchecked = ( |
my %defaultchecked = ( |
'coursecatalog' => 'on', |
'coursecatalog' => 'on', |
'adminmail' => 'off', |
'adminmail' => 'off', |
Line 729 sub login_choices {
|
Line 788 sub login_choices {
|
my %choices = |
my %choices = |
&Apache::lonlocal::texthash ( |
&Apache::lonlocal::texthash ( |
coursecatalog => 'Display Course Catalog link?', |
coursecatalog => 'Display Course Catalog link?', |
adminmail => "Display Administrator's E-mail Address?", |
adminmail => "Display Administrator's E-mail Address?", |
newuser => "Link to create a user account", |
disallowlogin => "Login page requests redirected", |
img => "Header", |
hostid => "Server", |
logo => "Main Logo", |
serverurl => "Redirect to log-in via:", |
domlogo => "Domain Logo", |
directlogin => "No redirect", |
login => "Log-in Header", |
newuser => "Link to create a user account", |
textcol => "Text color", |
img => "Header", |
bgcol => "Box color", |
logo => "Main Logo", |
bgs => "Background colors", |
domlogo => "Domain Logo", |
links => "Link colors", |
login => "Log-in Header", |
font => "Font color", |
textcol => "Text color", |
pgbg => "Header", |
bgcol => "Box color", |
mainbg => "Page", |
bgs => "Background colors", |
sidebg => "Login box", |
links => "Link colors", |
link => "Link", |
font => "Font color", |
alink => "Active link", |
pgbg => "Header", |
vlink => "Visited link", |
mainbg => "Page", |
|
sidebg => "Login box", |
|
link => "Link", |
|
alink => "Active link", |
|
vlink => "Visited link", |
); |
); |
return %choices; |
return %choices; |
} |
} |
Line 763 sub print_rolecolors {
|
Line 826 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 780 sub print_rolecolors {
|
Line 844 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 798 sub print_rolecolors {
|
Line 866 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 826 sub display_color_options {
|
Line 898 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 840 sub display_color_options {
|
Line 912 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>'; |
|
unless ($role eq 'login') { |
|
$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 1126 sub print_quotas {
|
Line 1214 sub print_quotas {
|
my ($css_class,%titles); |
my ($css_class,%titles); |
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
@usertools = ('official','unofficial','community'); |
@usertools = ('official','unofficial','community'); |
@options =('norequest','approval','autolimit','validate'); |
@options =('norequest','approval','validate','autolimit'); |
%validations = &Apache::lonnet::auto_courserequest_checks($dom); |
%validations = &Apache::lonnet::auto_courserequest_checks($dom); |
%titles = &courserequest_titles(); |
%titles = &courserequest_titles(); |
} else { |
} else { |
Line 1201 sub print_quotas {
|
Line 1289 sub print_quotas {
|
$item.'_limit_'.$type.'" size="1" '. |
$item.'_limit_'.$type.'" size="1" '. |
'value="'.$currlimit.'" />'; |
'value="'.$currlimit.'" />'; |
} |
} |
|
$cell{$item} .= '</span> '; |
if ($option eq 'autolimit') { |
if ($option eq 'autolimit') { |
$cell{$item} .= $titles{'unlimited'}; |
$cell{$item} .= $titles{'unlimited'} |
} |
} |
$cell{$item} .= '</span> '; |
|
} |
} |
} else { |
} else { |
my $checked = 'checked="checked" '; |
my $checked = 'checked="checked" '; |
Line 1226 sub print_quotas {
|
Line 1314 sub print_quotas {
|
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
$datatable .= '</tr><tr>'; |
$datatable .= '</tr><tr>'; |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
$datatable .= '<td style="vertical-align: top;">'.$cell{$item}.'</td>'; |
$datatable .= '<td style="vertical-align: top">'.$cell{$item}.'</td>'; |
} |
} |
$datatable .= '</tr></table>'; |
$datatable .= '</tr></table>'; |
} |
} |
Line 1309 sub print_quotas {
|
Line 1397 sub print_quotas {
|
} |
} |
$defcell{$item} .= '</span> '; |
$defcell{$item} .= '</span> '; |
if ($option eq 'autolimit') { |
if ($option eq 'autolimit') { |
$defcell{$item} .= $titles{'unlimited'}; |
$defcell{$item} .= $titles{'unlimited'} |
} |
} |
} |
} |
} else { |
} else { |
Line 1332 sub print_quotas {
|
Line 1420 sub print_quotas {
|
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
$datatable .= '</tr><tr>'; |
$datatable .= '</tr><tr>'; |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
$datatable .= '<td style="vertical-align: top;">'.$defcell{$item}.'</td>'; |
$datatable .= '<td style="vertical-align: top">'.$defcell{$item}.'</td>'; |
} |
} |
$datatable .= '</tr></table>'; |
$datatable .= '</tr></table>'; |
} |
} |
Line 1412 sub print_quotas {
|
Line 1500 sub print_quotas {
|
} |
} |
$advcell{$item} .= '</span> '; |
$advcell{$item} .= '</span> '; |
if ($option eq 'autolimit') { |
if ($option eq 'autolimit') { |
$advcell{$item} .= $titles{'unlimited'}; |
$advcell{$item} .= $titles{'unlimited'} |
} |
} |
} |
} |
} else { |
} else { |
Line 1435 sub print_quotas {
|
Line 1523 sub print_quotas {
|
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
$datatable .= '</tr><tr>'; |
$datatable .= '</tr><tr>'; |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
$datatable .= '<td style="vertical-align: top;">'.$advcell{$item}.'</td>'; |
$datatable .= '<td style="vertical-align: top">'.$advcell{$item}.'</td>'; |
} |
} |
$datatable .= '</tr></table>'; |
$datatable .= '</tr></table>'; |
} |
} |
Line 1873 sub courserequest_titles {
|
Line 1961 sub courserequest_titles {
|
|
|
sub courserequest_conditions { |
sub courserequest_conditions { |
my %conditions = &Apache::lonlocal::texthash ( |
my %conditions = &Apache::lonlocal::texthash ( |
approval => '(Processing of request subject to approval by Domain Coordinator).', |
approval => '(Processing of request subject to approval by Domain Coordinator).', |
validate => '(Processing of request subject to instittutional validation).', |
validate => '(Processing of request subject to instittutional validation).', |
); |
); |
return %conditions; |
return %conditions; |
Line 3063 sub modify_login {
|
Line 3151 sub modify_login {
|
$colchgtext = &display_colorchgs($dom,\%colchanges,['login'], |
$colchgtext = &display_colorchgs($dom,\%colchanges,['login'], |
\%loginhash); |
\%loginhash); |
} |
} |
|
|
|
my %servers = &Apache::lonnet::get_servers($dom); |
|
if (keys(%servers) > 1) { |
|
foreach my $lonhost (keys(%servers)) { |
|
if ($env{'form.'.$lonhost.'_serverurl'} ne '') { |
|
if (defined($servers{$env{'form.'.$lonhost.'_serverurl'}})) { |
|
$loginhash{login}{loginvia}{$lonhost} = $env{'form.'.$lonhost.'_serverurl'}; |
|
} |
|
} |
|
} |
|
} |
|
|
my $putresult = &Apache::lonnet::put_dom('configuration',\%loginhash, |
my $putresult = &Apache::lonnet::put_dom('configuration',\%loginhash, |
$dom); |
$dom); |
if ($putresult eq 'ok') { |
if ($putresult eq 'ok') { |
Line 3136 sub color_font_choices {
|
Line 3236 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 3193 sub modify_colors {
|
Line 3294 sub modify_colors {
|
@logintext = ('textcol','bgcol'); |
@logintext = ('textcol','bgcol'); |
} else { |
} else { |
%choices = &color_font_choices(); |
%choices = &color_font_choices(); |
|
$confhash->{$role}{'fontmenu'} = $env{'form.'.$role.'_fontmenu'}; |
} |
} |
if ($role eq 'login') { |
if ($role eq 'login') { |
@images = ('img','logo','domlogo','login'); |
@images = ('img','logo','domlogo','login'); |
Line 3315 sub modify_colors {
|
Line 3417 sub modify_colors {
|
$changes{$role}{'font'} = 1; |
$changes{$role}{'font'} = 1; |
} |
} |
} |
} |
|
if ($role ne 'login') { |
|
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 3755 sub modify_quotas {
|
Line 3868 sub modify_quotas {
|
} |
} |
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
@usertools = ('official','unofficial','community'); |
@usertools = ('official','unofficial','community'); |
@options =('norequest','approval','autolimit','validate'); |
@options =('norequest','approval','validate','autolimit'); |
%validations = &Apache::lonnet::auto_courserequest_checks($dom); |
%validations = &Apache::lonnet::auto_courserequest_checks($dom); |
%titles = &courserequest_titles(); |
%titles = &courserequest_titles(); |
$toolregexp = join('|',@usertools); |
$toolregexp = join('|',@usertools); |
Line 3810 sub modify_quotas {
|
Line 3923 sub modify_quotas {
|
} |
} |
foreach my $item (@usertools) { |
foreach my $item (@usertools) { |
foreach my $type (@{$types},'default','_LC_adv') { |
foreach my $type (@{$types},'default','_LC_adv') { |
my $unset; |
my $unset; |
if ($context eq 'requestcourses') { |
if ($context eq 'requestcourses') { |
$unset = '0'; |
$unset = '0'; |
if ($type eq '_LC_adv') { |
if ($type eq '_LC_adv') { |