--- loncom/interface/domainprefs.pm 2014/01/03 20:42:51 1.160.6.32
+++ loncom/interface/domainprefs.pm 2013/09/10 01:51:32 1.206
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.160.6.32 2014/01/03 20:42:51 raeburn Exp $
+# $Id: domainprefs.pm,v 1.206 2013/09/10 01:51:32 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -86,7 +86,7 @@ $dom,$settings,$rowtotal,$action.
$dom is the domain, $settings is a reference to a hash of current settings for
the current context, $rowtotal is a reference to the scalar used to record the
-number of rows displayed on the page, and $action is the context (quotas,
+number of rows displayed on the page, and $action is the context (quotas,
requestcourses or requestauthor).
The print_quotas routine was orginally created to display/store information
@@ -103,8 +103,8 @@ $datatable - HTML containing form eleme
In the case of course requests, radio buttons are displayed for each institutional
affiliate type (and also default, and _LC_adv) for each of the course types
-(official, unofficial, community, and textbook). In each case the radio buttons
-allow the selection of one of four values:
+(official, unofficial and community). In each case the radio buttons allow the
+selection of one of four values:
0, approval, validate, autolimit=N (where N is blank, or a positive integer).
which have the following effects:
@@ -211,13 +211,15 @@ sub handler {
'quotas','autoenroll','autoupdate','autocreate',
'directorysrch','usercreation','usermodification',
'contacts','defaults','scantron','coursecategories',
- 'serverstatuses','requestcourses','coursedefaults',
- 'usersessions','loadbalancing','requestauthor'],$dom);
+ 'serverstatuses','requestcourses','helpsettings',
+ 'coursedefaults','usersessions','loadbalancing',
+ 'requestauthor'],$dom);
my @prefs_order = ('rolecolors','login','defaults','quotas','autoenroll',
'autoupdate','autocreate','directorysrch','contacts',
'usercreation','usermodification','scantron',
'requestcourses','requestauthor','coursecategories',
- 'serverstatuses','coursedefaults','usersessions');
+ 'serverstatuses','helpsettings',
+ 'coursedefaults','usersessions');
my %existing;
if (ref($domconfig{'loadbalancing'}) eq 'HASH') {
%existing = %{$domconfig{'loadbalancing'}};
@@ -257,7 +259,7 @@ sub handler {
help => 'Domain_Configuration_Quotas',
header => [{col1 => 'User affiliation',
col2 => 'Available tools',
- col3 => 'Quotas, MB; (Authoring requires role)',}],
+ col3 => 'Quotas, Mb; (Authoring requires role)',}],
},
'autoenroll' =>
{ text => 'Auto-enrollment settings',
@@ -327,9 +329,7 @@ sub handler {
header => [{col1 => 'User affiliation',
col2 => 'Availability/Processing of requests',},
{col1 => 'Setting',
- col2 => 'Value'},
- {col1 => 'Available textbooks',
- col2 => ''}],
+ col2 => 'Value'}],
},
'requestauthor' =>
{text => 'Request authoring space',
@@ -356,12 +356,26 @@ sub handler {
col3 => 'Specific IPs',
}],
},
- 'coursedefaults' =>
+ 'helpsettings' =>
+ {text => 'Help page settings',
+ help => 'Domain_Configuration_Help_Settings',
+ header => [{col1 => 'Help Settings (logged-in users)',
+ col2 => 'Value'}],
+ },
+ 'coursedefaults' =>
{text => 'Course/Community defaults',
help => 'Domain_Configuration_Course_Defaults',
- header => [{col1 => 'Defaults which can be overridden for each course by a DC',
+ header => [{col1 => 'Defaults which can be overridden in each course by a CC',
+ col2 => 'Value',},
+ {col1 => 'Defaults which can be overridden for each course by a DC',
col2 => 'Value',},],
},
+ 'privacy' =>
+ {text => 'User Privacy',
+ help => 'Domain_Configuration_User_Privacy',
+ header => [{col1 => 'Setting',
+ col2 => 'Value',}],
+ },
'usersessions' =>
{text => 'User session hosting/offloading',
help => 'Domain_Configuration_User_Sessions',
@@ -402,11 +416,10 @@ sub handler {
my $confname = $dom.'-domainconfig';
if ($phase eq 'process') {
- my $result = &Apache::lonconfigsettings::make_changes($r,$dom,$phase,$context,\@prefs_order,
- \%prefs,\%domconfig,$confname,\@roles);
- if (ref($result) eq 'HASH') {
+ if (&Apache::lonconfigsettings::make_changes($r,$dom,$phase,$context,\@prefs_order,
+ \%prefs,\%domconfig,$confname,\@roles) eq 'update') {
$r->rflush();
- &devalidate_remote_domconfs($dom,$result);
+ &devalidate_remote_domconfs($dom);
}
} elsif ($phase eq 'display') {
my $js = &recaptcha_js().
@@ -420,16 +433,6 @@ sub handler {
&common_domprefs_js().
&Apache::loncommon::javascript_array_indexof();
}
- if (grep(/^requestcourses$/,@actions)) {
- my $javascript_validations;
- my $coursebrowserjs=&Apache::loncommon::coursebrowser_javascript($env{'request.role.domain'});
- $js .= <
-$javascript_validations
-
-$coursebrowserjs
-END
- }
&Apache::lonconfigsettings::display_settings($r,$dom,$phase,$context,\@prefs_order,\%prefs,\%domconfig,$confname,$js);
} else {
# check if domconfig user exists for the domain.
@@ -439,7 +442,7 @@ END
unless ($configuserok eq 'ok') {
&Apache::lonconfigsettings::print_header($r,$phase,$context);
$r->print(&mt('The domain configuration user "[_1]" has yet to be created.',
- $confname).
+ $confname).
' '
);
if ($switchserver) {
@@ -511,7 +514,7 @@ sub process_changes {
$output = &modify_rolecolors($r,$dom,$confname,$roles,
$lastactref,%domconfig);
} elsif ($action eq 'quotas') {
- $output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig);
+ $output = &modify_quotas($dom,$action,%domconfig);
} elsif ($action eq 'autoenroll') {
$output = &modify_autoenroll($dom,$lastactref,%domconfig);
} elsif ($action eq 'autoupdate') {
@@ -527,7 +530,7 @@ sub process_changes {
} elsif ($action eq 'contacts') {
$output = &modify_contacts($dom,$lastactref,%domconfig);
} elsif ($action eq 'defaults') {
- $output = &modify_defaults($dom,$lastactref,%domconfig);
+ $output = &modify_defaults($dom,$r,%domconfig);
} elsif ($action eq 'scantron') {
$output = &modify_scantron($r,$dom,$confname,$lastactref,%domconfig);
} elsif ($action eq 'coursecategories') {
@@ -535,13 +538,15 @@ sub process_changes {
} elsif ($action eq 'serverstatuses') {
$output = &modify_serverstatuses($dom,%domconfig);
} elsif ($action eq 'requestcourses') {
- $output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig);
+ $output = &modify_quotas($dom,$action,%domconfig);
} elsif ($action eq 'requestauthor') {
- $output = &modify_quotas($r,$dom,$action,$lastactref,%domconfig);
+ $output = &modify_quotas($dom,$action,%domconfig);
+ } elsif ($action eq 'helpsettings') {
+ $output = &modify_helpsettings($r,$dom,$confname,%domconfig);
} elsif ($action eq 'coursedefaults') {
- $output = &modify_coursedefaults($dom,$lastactref,%domconfig);
+ $output = &modify_coursedefaults($dom,%domconfig);
} elsif ($action eq 'usersessions') {
- $output = &modify_usersessions($dom,$lastactref,%domconfig);
+ $output = &modify_usersessions($dom,%domconfig);
} elsif ($action eq 'loadbalancing') {
$output = &modify_loadbalancing($dom,%domconfig);
}
@@ -570,7 +575,7 @@ sub print_config_box {
if ($numheaders > 1) {
my $colspan = '';
my $rightcolspan = '';
- if (($action eq 'rolecolors') || ($action eq 'coursecategories') ||
+ if (($action eq 'rolecolors') || ($action eq 'coursecategories') ||
(($action eq 'login') && ($numheaders < 3))) {
$colspan = ' colspan="2"';
}
@@ -609,6 +614,8 @@ sub print_config_box {
$output .= &print_usersessions('top',$dom,$settings,\$rowtotal);
} elsif ($action eq 'rolecolors') {
$output .= &print_rolecolors($phase,'student',$dom,$confname,$settings,\$rowtotal);
+ } elsif ($action eq 'coursedefaults') {
+ $output .= &print_coursedefaults('top',$dom,$settings,\$rowtotal);
}
$output .= '
@@ -659,7 +666,7 @@ sub print_config_box {
'.&mt($item->{'header'}->[2]->{'col1'}).'
- '.&mt($item->{'header'}->[2]->{'col2'}).' '.
+ '.&mt($item->{'header'}->[2]->{'col2'}).' '.
&print_usermodification('bottom',$dom,$settings,\$rowtotal);
$rowtotal ++;
} elsif ($action eq 'coursecategories') {
@@ -675,25 +682,14 @@ sub print_config_box {
'.&mt($item->{'header'}->[2]->{'col1'}).'
- '.&mt($item->{'header'}->[2]->{'col2'}).' '.
+ '.&mt($item->{'header'}->[2]->{'col2'}).' '.
&print_login('help',$dom,$confname,$phase,$settings,\$rowtotal);
$rowtotal ++;
} else {
$output .= &print_login('help',$dom,$confname,$phase,$settings,\$rowtotal);
}
} elsif ($action eq 'requestcourses') {
- $output .= &print_requestmail($dom,$action,$settings,\$rowtotal).
- &print_studentcode($settings,\$rowtotal).'
-
-
-
-
-
-
-
- '.&mt($item->{'header'}->[2]->{'col1'}).'
- '.&mt($item->{'header'}->[2]->{'col2'}).' '.
- &print_textbookcourses($dom,$settings,\$rowtotal);
+ $output .= &print_requestmail($dom,$action,$settings,\$rowtotal);
} elsif ($action eq 'requestauthor') {
$output .= &print_requestmail($dom,$action,$settings,\$rowtotal);
} elsif ($action eq 'usersessions') {
@@ -709,6 +705,8 @@ sub print_config_box {
'.&mt($item->{'header'}->[2]->{'col2'}).' '.
&print_usersessions('bottom',$dom,$settings,\$rowtotal);
$rowtotal ++;
+ } elsif ($action eq 'coursedefaults') {
+ $output .= &print_coursedefaults('bottom',$dom,$settings,\$rowtotal);
} elsif ($action eq 'rolecolors') {
$output .= &print_rolecolors($phase,'coordinator',$dom,$confname,$settings,\$rowtotal).'
@@ -796,7 +794,7 @@ sub print_config_box {
} elsif ($action eq 'contacts') {
$output .= &print_contacts($dom,$settings,\$rowtotal);
} elsif ($action eq 'defaults') {
- $output .= &print_defaults($dom,$settings,\$rowtotal);
+ $output .= &print_defaults($dom,\$rowtotal);
} elsif ($action eq 'scantron') {
$output .= &print_scantronformat($r,$dom,$confname,$settings,\$rowtotal);
} elsif ($action eq 'serverstatuses') {
@@ -805,8 +803,6 @@ sub print_config_box {
$output .= &print_helpsettings($dom,$confname,$settings,\$rowtotal);
} elsif ($action eq 'loadbalancing') {
$output .= &print_loadbalancing($dom,$settings,\$rowtotal);
- } elsif ($action eq 'coursedefaults') {
- $output .= &print_coursedefaults('bottom',$dom,$settings,\$rowtotal);
}
}
$output .= '
@@ -1553,14 +1549,14 @@ sub print_quotas {
my $typecount = 0;
my ($css_class,%titles);
if ($context eq 'requestcourses') {
- @usertools = ('official','unofficial','community','textbook');
+ @usertools = ('official','unofficial','community');
@options =('norequest','approval','validate','autolimit');
%validations = &Apache::lonnet::auto_courserequest_checks($dom);
%titles = &courserequest_titles();
} elsif ($context eq 'requestauthor') {
@usertools = ('author');
@options = ('norequest','approval','automatic');
- %titles = &authorrequest_titles();
+ %titles = &authorrequest_titles();
} else {
@usertools = ('aboutme','blog','webdav','portfolio');
%titles = &tool_titles();
@@ -1967,7 +1963,7 @@ sub print_quotas {
sub print_requestmail {
my ($dom,$action,$settings,$rowtotal) = @_;
- my ($now,$datatable,%currapp);
+ my ($now,$datatable,%currapp,$rows);
$now = time;
if (ref($settings) eq 'HASH') {
if (ref($settings->{'notify'}) eq 'HASH') {
@@ -1999,216 +1995,6 @@ sub print_requestmail {
return $datatable;
}
-sub print_studentcode {
- my ($settings,$rowtotal) = @_;
- my $rownum = 0;
- my ($output,%current);
- my @crstypes = ('official','unofficial','community','textbook');
- if (ref($settings->{'uniquecode'}) eq 'HASH') {
- foreach my $type (@crstypes) {
- $current{$type} = $settings->{'uniquecode'}{$type};
- }
- }
- $output .= ' '.
- ''.&mt('Generate unique six character code as course identifier?').' '.
- '';
- foreach my $type (@crstypes) {
- my $check = ' ';
- if ($current{$type}) {
- $check = ' checked="checked" ';
- }
- $output .= ''.
- ' '.
- &mt($type).' '.(' 'x2).' ';
- }
- $output .= ' ';
- $$rowtotal ++;
- return $output;
-}
-
-sub print_textbookcourses {
- my ($dom,$settings,$rowtotal) = @_;
- my $rownum = 0;
- my $css_class;
- my $itemcount = 1;
- my $maxnum = 0;
- my $bookshash;
- if (ref($settings) eq 'HASH') {
- $bookshash = $settings->{'textbooks'};
- }
- my %ordered;
- if (ref($bookshash) eq 'HASH') {
- foreach my $item (keys(%{$bookshash})) {
- if (ref($bookshash->{$item}) eq 'HASH') {
- my $num = $bookshash->{$item}{'order'};
- $ordered{$num} = $item;
- }
- }
- }
- my $confname = $dom.'-domainconfig';
- my $switchserver = &check_switchserver($dom,$confname);
- my $maxnum = scalar(keys(%ordered));
- my $datatable = &textbookcourses_javascript(\%ordered);
- if (keys(%ordered)) {
- my @items = sort { $a <=> $b } keys(%ordered);
- for (my $i=0; $i<@items; $i++) {
- $css_class = $itemcount%2?' class="LC_odd_row"':'';
- my $key = $ordered{$items[$i]};
- my %coursehash=&Apache::lonnet::coursedescription($key);
- my $coursetitle = $coursehash{'description'};
- my ($subject,$title,$author,$image,$imgsrc,$cdom,$cnum);
- if (ref($bookshash->{$key}) eq 'HASH') {
- $subject = $bookshash->{$key}->{'subject'};
- $title = $bookshash->{$key}->{'title'};
- $author = $bookshash->{$key}->{'author'};
- $image = $bookshash->{$key}->{'image'};
- if ($image ne '') {
- my ($path,$imagefile) = ($image =~ m{^(.+)/([^/]+)$});
- my $imagethumb = "$path/tn-".$imagefile;
- $imgsrc = ' ';
- }
- }
- my $chgstr = ' onchange="javascript:reorderBooks(this.form,'."'$key'".');"';
- $datatable .= ''
- .'';
- for (my $k=0; $k<=$maxnum; $k++) {
- my $vpos = $k+1;
- my $selstr;
- if ($k == $i) {
- $selstr = ' selected="selected" ';
- }
- $datatable .= ''.$vpos.' ';
- }
- $datatable .= ' '.(' 'x2).
- ' '.
- &mt('Delete?').' '.
- ''.
- ''.&mt('Subject:').' '.
- (' 'x2).
- ''.&mt('Title:').' '.
- (' 'x2).
- ''.&mt('Author(s):').' '.
- (' 'x2).
- ''.&mt('Thumbnail:');
- if ($image) {
- $datatable .= ''.
- $imgsrc.
- ' '.&mt('Delete?').' '.
- ' '.&mt('Replace:').' ';
- }
- if ($switchserver) {
- $datatable .= &mt('Upload to library server: [_1]',$switchserver);
- } else {
- $datatable .= ' ';
- }
- $datatable .= ' '.
- ''.&mt('LON-CAPA course:').' '.
- $coursetitle.' '."\n";
- $itemcount ++;
- }
- }
- $css_class = $itemcount%2?' class="LC_odd_row"':'';
- my $chgstr = ' onchange="javascript:reorderBooks(this.form,'."'addbook_pos'".');"';
- $datatable .= ''."\n".
- ' '."\n".
- '';
- for (my $k=0; $k<$maxnum+1; $k++) {
- my $vpos = $k+1;
- my $selstr;
- if ($k == $maxnum) {
- $selstr = ' selected="selected" ';
- }
- $datatable .= ''.$vpos.' ';
- }
- $datatable .= ' '."\n".
- ' '.&mt('Add').' '."\n".
- ''.
- ''.&mt('Subject:').' '."\n".
- (' 'x2).
- ''.&mt('Title:').' '."\n".
- (' 'x2).
- ''.&mt('Author(s):').' '."\n".
- (' 'x2).
- ''.&mt('Image:').' ';
- if ($switchserver) {
- $datatable .= &mt('Upload to library server: [_1]',$switchserver);
- } else {
- $datatable .= ' ';
- }
- $datatable .= ' '."\n".
- ''.&mt('LON-CAPA course:').' '.
- &Apache::loncommon::select_dom_form($env{'request.role.domain'},'addbook_cdom').
- ' '.
- &Apache::loncommon::selectcourse_link
- ('display','addbook_cnum','addbook_cdom',undef,undef,undef,'Course');
- ' '."\n".
- ' '."\n";
- $itemcount ++;
- return $datatable;
-}
-
-sub textbookcourses_javascript {
- my ($textbooks) = @_;
- return unless(ref($textbooks) eq 'HASH');
- my $num = scalar(keys(%{$textbooks}));
- my @jsarray;
- foreach my $item (sort {$a <=> $b } (keys(%{$textbooks}))) {
- push(@jsarray,$textbooks->{$item});
- }
- my $jstext = ' var textbooks = Array('."'".join("','",@jsarray)."'".');'."\n";
- return <<"ENDSCRIPT";
-
-
-ENDSCRIPT
-}
-
sub print_autoenroll {
my ($dom,$settings,$rowtotal) = @_;
my $autorun = &Apache::lonnet::auto_run(undef,$dom),
@@ -2370,7 +2156,7 @@ sub print_autocreate {
}
}
}
- if ($settings->{'xmldc'} ne '') {
+ if ($settings->{'xmldc'} ne '') {
$currhash{$settings->{'xmldc'}} = 1;
}
} else {
@@ -2707,10 +2493,9 @@ sub print_coursedefaults {
\%choices,$itemcount);
} else {
$css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
- my ($currdefresponder,$def_official_credits,$def_unofficial_credits,$def_textbook_credits,
- %curruploadquota);
+ my ($currdefresponder,$def_official_credits,$def_unofficial_credits,%curruploadquota);
my $currusecredits = 0;
- my @types = ('official','unofficial','community','textbook');
+ my @types = ('official','unofficial','community');
if (ref($settings) eq 'HASH') {
$currdefresponder = $settings->{'anonsurvey_threshold'};
if (ref($settings->{'uploadquota'}) eq 'HASH') {
@@ -2721,9 +2506,7 @@ sub print_coursedefaults {
if (ref($settings->{'coursecredits'}) eq 'HASH') {
$def_official_credits = $settings->{'coursecredits'}->{'official'};
$def_unofficial_credits = $settings->{'coursecredits'}->{'unofficial'};
- $def_textbook_credits = $settings->{'coursecredits'}->{'textbook'};
- if (($def_official_credits ne '') || ($def_unofficial_credits ne '') ||
- ($def_textbook_credits ne '')) {
+ if (($def_official_credits ne '') || ($def_unofficial_credits ne '')) {
$currusecredits = 1;
}
}
@@ -2759,7 +2542,7 @@ sub print_coursedefaults {
$datatable .= '
'."\n";
$itemcount += 2;
my $onclick = 'toggleCredits(this.form);';
- my $display = 'none';
+ my $display = 'none';
if ($currusecredits) {
$display = 'block';
}
@@ -2773,11 +2556,6 @@ sub print_coursedefaults {
&mt('Default credits for unofficial courses [_1]',
' ').
- ' '.
- ''.
- &mt('Default credits for textbook courses [_1]',
- ' ').
' '."\n";
%defaultchecked = ('coursecredits' => 'off');
@toggles = ('coursecredits');
@@ -3219,7 +2997,7 @@ sub print_loadbalancing {
}
my ($othertitle,$usertypes,$types) =
&Apache::loncommon::sorted_inst_types($dom);
- my $rownum = 8;
+ my $rownum = 6;
if (ref($types) eq 'ARRAY') {
$rownum += scalar(@{$types});
}
@@ -3250,7 +3028,7 @@ sub print_loadbalancing {
''.
'';
if ($lonhost eq '') {
- $datatable .= '';
+ $datatable .= '';
if (keys(%currbalancer) > 0) {
$datatable .= &mt('Add balancer:');
} else {
@@ -3266,7 +3044,7 @@ sub print_loadbalancing {
next if ($currbalancer{$server});
$datatable .= ''.$server.' '."\n";
}
- $datatable .=
+ $datatable .=
''."\n".
' '."\n";
} else {
@@ -3305,7 +3083,7 @@ sub print_loadbalancing {
if (exists($currbalancer{$spares[$i]})) {
$disabled = ' disabled="disabled"';
}
- $targettable .=
+ $targettable .=
'
'.$chkboxval.
' ';
@@ -3389,7 +3167,7 @@ sub loadbalancing_rules {
$css_class,$balnum,$islast) = @_;
my $output;
my $num = 0;
- my ($alltypes,$othertypes,$titles) =
+ my ($alltypes,$othertypes,$titles) =
&loadbalancing_titles($dom,$intdom,$usertypes,$types);
if ((ref($alltypes) eq 'ARRAY') && (ref($titles) eq 'HASH')) {
foreach my $type (@{$alltypes}) {
@@ -3398,7 +3176,7 @@ sub loadbalancing_rules {
if (ref($currrules) eq 'HASH') {
$current = $currrules->{$type};
}
- if (($type eq '_LC_external') || ($type eq '_LC_internetdom') || ($type eq '_LC_ipchange')) {
+ if (($type eq '_LC_external') || ($type eq '_LC_internetdom')) {
if ($dom ne &Apache::lonnet::host_domain($lonhost)) {
$current = '';
}
@@ -3419,10 +3197,8 @@ sub loadbalancing_titles {
'_LC_author' => &mt('Users from [_1] with author role',$dom),
'_LC_internetdom' => &mt('Users not from [_1], but from [_2]',$dom,$intdom),
'_LC_external' => &mt('Users not from [_1]',$intdom),
- '_LC_ipchangesso' => &mt('SSO users from [_1], with IP mismatch',$dom),
- '_LC_ipchange' => &mt('Non-SSO users with IP mismatch'),
);
- my @alltypes = ('_LC_adv','_LC_author','_LC_internetdom','_LC_external','_LC_ipchangesso','_LC_ipchange');
+ my @alltypes = ('_LC_adv','_LC_author','_LC_internetdom','_LC_external');
if (ref($types) eq 'ARRAY') {
unshift(@alltypes,@{$types},'default');
}
@@ -3447,28 +3223,23 @@ sub loadbalancing_titles {
sub loadbalance_rule_row {
my ($type,$title,$current,$servers,$currbalancer,$lonhost,$dom,
$targets_div_style,$homedom_div_style,$css_class,$balnum,$num,$islast) = @_;
- my @rulenames;
+ my @rulenames = ('default','homeserver');
my %ruletitles = &offloadtype_text();
- if (($type eq '_LC_ipchangesso') || ($type eq '_LC_ipchange')) {
- @rulenames = ('balancer','offloadedto');
+ if ($type eq '_LC_external') {
+ push(@rulenames,'externalbalancer');
} else {
- @rulenames = ('default','homeserver');
- if ($type eq '_LC_external') {
- push(@rulenames,'externalbalancer');
- } else {
- push(@rulenames,'specific');
- }
- push(@rulenames,'none');
+ push(@rulenames,'specific');
}
+ push(@rulenames,'none');
my $style = $targets_div_style;
- if (($type eq '_LC_external') || ($type eq '_LC_internetdom') || ($type eq '_LC_ipchange')) {
+ if (($type eq '_LC_external') || ($type eq '_LC_internetdom')) {
$style = $homedom_div_style;
}
my $space;
if ($islast && $num == 1) {
$space = '
';
}
- my $output =
+ my $output =
''.$space.
''.$title.'
'."\n".
''.$space.
@@ -3488,7 +3259,7 @@ sub loadbalance_rule_row {
unless ($checked) {
$default = ' selected="selected"';
}
- $extra =
+ $extra =
': '."\n".
@@ -3526,8 +3297,6 @@ sub offloadtype_text {
'externalbalancer' => "Offloads to Load Balancer in user's domain",
'specific' => 'Offloads to specific server',
'none' => 'No offload',
- 'balancer' => 'Session hosted on Load Balancer, after re-authentication',
- 'offloadedto' => 'Session hosted on offload server, after re-authentication',
);
return %ruletitles;
}
@@ -3568,7 +3337,6 @@ sub tool_titles {
official => 'Official courses (with institutional codes)',
unofficial => 'Unofficial courses',
community => 'Communities',
- textbook => 'Textbook courses',
);
return %titles;
}
@@ -3578,7 +3346,6 @@ sub courserequest_titles {
official => 'Official',
unofficial => 'Unofficial',
community => 'Communities',
- textbook => 'Textbook',
norequest => 'Not allowed',
approval => 'Approval by Dom. Coord.',
validate => 'With validation',
@@ -3595,7 +3362,7 @@ sub authorrequest_titles {
automatic => 'Automatic approval',
);
return %titles;
-}
+}
sub courserequest_conditions {
my %conditions = &Apache::lonlocal::texthash (
@@ -3834,9 +3601,9 @@ sub captcha_choice {
#
# Note: If reCAPTCHA is to be used for LON-CAPA servers in a domain, a domain coordinator should visit:
# https://www.google.com/recaptcha and generate a Public and Private key. For domains with multiple
-# servers a single key pair will be used for all servers, so the internet domain (e.g., yourcollege.edu)
+# servers a single key pair will be used for all servers, so the internet domain (e.g., yourcollege.edu)
# specified for use with the key should be broad enough to accommodate all servers in the LON-CAPA domain.
-#
+#
$output .= ' '."\n".
''."\n".
''.$pubtext.' '."\n".
@@ -3983,18 +3750,10 @@ sub print_usermodification {
}
sub print_defaults {
- my ($dom,$settings,$rowtotal) = @_;
+ my ($dom,$rowtotal) = @_;
my @items = ('auth_def','auth_arg_def','lang_def','timezone_def',
'datelocale_def','portal_def');
- my %defaults;
- if (ref($settings) eq 'HASH') {
- %defaults = %{$settings};
- } else {
- my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1);
- foreach my $item (@items) {
- $defaults{$item} = $domdefaults{$item};
- }
- }
+ my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
my $titles = &defaults_titles($dom);
my $rownum = 0;
my ($datatable,$css_class);
@@ -4018,7 +3777,7 @@ sub print_defaults {
my %authnames = &authtype_names();
foreach my $auth (@authtypes) {
my $checked = ' ';
- if ($defaults{$item} eq $auth) {
+ if ($domdefaults{$item} eq $auth) {
$checked = ' checked="checked" ';
}
$datatable .= ' ';
+ $domdefaults{$item}.'"'.$size.' />';
}
$datatable .= ' ';
$rownum ++;
@@ -4380,7 +4139,7 @@ sub print_coursecategories {
}
$datatable .= ''.$vpos.' ';
}
- $datatable .= '';
+ $datatable .= ' ';
if ($parent eq 'instcode' || $parent eq 'communities') {
$datatable .= ''
.$default_names{$parent}.' ';
@@ -4410,8 +4169,7 @@ sub print_coursecategories {
$datatable .= ' ';
} else {
$datatable .= $parent
- .' '
- .' '.&mt('Delete').' ';
}
my $depth = 1;
@@ -4526,8 +4284,7 @@ sub print_serverstatuses {
sub serverstatus_pages {
return ('userstatus','lonstatus','loncron','server-status','codeversions',
'checksums','clusterstatus','metadata_keywords','metadata_harvest',
- 'takeoffline','takeonline','showenv','toggledebug','ping','domconf',
- 'uniquecodes');
+ 'takeoffline','takeonline','showenv','toggledebug','ping','domconf');
}
sub coursecategories_javascript {
@@ -5156,7 +4913,7 @@ sub modify_login {
} else {
my $puberror = &mt("Upload of [_1] failed because an error occurred publishing the file in RES space. Error was: [_2].",$newfile{$lang},$result);
$errors .= ''.$puberror.' ';
- if ((grep(/^\Q$lang\E$/,@currlangs)) &&
+ if ((grep(/^\Q$lang\E$/,@currlangs)) &&
(!grep(/^\Q$lang\E$/,@delurls))) {
$loginhash{'login'}{'helpurl'}{$lang} = $domconfig{'login'}{'helpurl'}{$lang};
@@ -5214,9 +4971,7 @@ sub modify_login {
}
if (keys(%changes) > 0 || $colchgtext) {
&Apache::loncommon::devalidate_domconfig_cache($dom);
- if (ref($lastactref) eq 'HASH') {
- $lastactref->{'domainconfig'} = 1;
- }
+ $$lastactref = 'update';
$resulttext = &mt('Changes made:').'';
foreach my $item (sort(keys(%changes))) {
if ($item eq 'loginvia') {
@@ -5276,7 +5031,7 @@ sub modify_login {
}
} elsif ($item eq 'captcha') {
if (ref($loginhash{'login'}) eq 'HASH') {
- my $chgtxt;
+ my $chgtxt;
if ($loginhash{'login'}{$item} eq 'notused') {
$chgtxt .= &mt('No CAPTCHA validation in use for helpdesk form.');
} else {
@@ -5364,9 +5119,7 @@ sub modify_rolecolors {
if ($putresult eq 'ok') {
if (keys(%changes) > 0) {
&Apache::loncommon::devalidate_domconfig_cache($dom);
- if (ref($lastactref) eq 'HASH') {
- $lastactref->{'domainconfig'} = 1;
- }
+ $$lastactref = 'update';
$resulttext = &display_colorchgs($dom,\%changes,$roles,
$rolehash{'rolecolors'});
} else {
@@ -5778,7 +5531,7 @@ sub publishlogo {
# See if there is anything left
unless ($fname) { return ('error: no uploaded file'); }
$fname="$subdir/$fname";
- my $docroot=$r->dir_config('lonDocRoot');
+ my $docroot=$r->dir_config('lonDocRoot');
my $filepath="$docroot/priv";
my $relpath = "$dom/$confname";
my ($fnamepath,$file,$fetchthumb);
@@ -5798,7 +5551,7 @@ sub publishlogo {
if ($file=~/\.(\w+)$/ &&
(&Apache::loncommon::fileembstyle($1) eq 'hdn')) {
$output =
- &mt('Invalid file extension ([_1]) - reserved for internal use.',$1);
+ &mt('Invalid file extension ([_1]) - reserved for LONCAPA use.',$1);
} elsif ($file=~/\.(\w+)$/ &&
!defined(&Apache::loncommon::fileembstyle($1))) {
$output = &mt('Unrecognized file extension ([_1]) - rename the file with a proper extension and re-upload.',$1);
@@ -6047,25 +5800,21 @@ sub check_switchserver {
}
sub modify_quotas {
- my ($r,$dom,$action,$lastactref,%domconfig) = @_;
+ my ($dom,$action,%domconfig) = @_;
my ($context,@usertools,@options,%validations,%titles,%confhash,%toolshash,
- %limithash,$toolregexp,%conditions,$resulttext,%changes,$confname,$configuserok,
- $author_ok,$switchserver,$errors);
+ %limithash,$toolregexp,%conditions,$resulttext,%changes);
if ($action eq 'quotas') {
$context = 'tools';
} else {
$context = $action;
}
if ($context eq 'requestcourses') {
- @usertools = ('official','unofficial','community','textbook');
+ @usertools = ('official','unofficial','community');
@options =('norequest','approval','validate','autolimit');
%validations = &Apache::lonnet::auto_courserequest_checks($dom);
%titles = &courserequest_titles();
$toolregexp = join('|',@usertools);
%conditions = &courserequest_conditions();
- $confname = $dom.'-domainconfig';
- my $servadm = $r->dir_config('lonAdmEMail');
- ($configuserok,$author_ok,$switchserver) = &config_check($dom,$confname,$servadm);
} elsif ($context eq 'requestauthor') {
@usertools = ('author');
%titles = &authorrequest_titles();
@@ -6073,7 +5822,7 @@ sub modify_quotas {
@usertools = ('aboutme','blog','webdav','portfolio');
%titles = &tool_titles();
}
- my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1);
+ my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom);
foreach my $key (keys(%env)) {
if ($context eq 'requestcourses') {
@@ -6104,36 +5853,6 @@ sub modify_quotas {
my @approvalnotify = &Apache::loncommon::get_env_multiple('form.reqapprovalnotify');
@approvalnotify = sort(@approvalnotify);
$confhash{'notify'}{'approval'} = join(',',@approvalnotify);
- my @crstypes = ('official','unofficial','community','textbook');
- my @hasuniquecode = &Apache::loncommon::get_env_multiple('form.uniquecode');
- foreach my $type (@hasuniquecode) {
- if (grep(/^\Q$type\E$/,@crstypes)) {
- $confhash{'uniquecode'}{$type} = 1;
- }
- }
- my ($newbook,@allpos);
- if ($context eq 'requestcourses') {
- if ($env{'form.addbook'}) {
- if (($env{'form.addbook_cnum'} =~ /^$match_courseid$/) &&
- ($env{'form.addbook_cdom'} =~ /^$match_domain$/)) {
- if (&Apache::lonnet::homeserver($env{'form.addbook_cnum'},
- $env{'form.addbook_cdom'}) eq 'no_host') {
- $errors .= ''.&mt('Invalid LON-CAPA course for textbook').
- ' ';
- } else {
- $newbook = $env{'form.addbook_cdom'}.'_'.$env{'form.addbook_cnum'};
- my $position = $env{'form.addbook_pos'};
- $position =~ s/\D+//g;
- if ($position ne '') {
- $allpos[$position] = $newbook;
- }
- }
- } else {
- $errors .= ''.&mt('Invalid LON-CAPA course for textbook').
- ' ';
- }
- }
- }
if (ref($domconfig{$action}) eq 'HASH') {
if (ref($domconfig{$action}{'notify'}) eq 'HASH') {
if ($domconfig{$action}{'notify'}{'approval'} ne $confhash{'notify'}{'approval'}) {
@@ -6144,131 +5863,10 @@ sub modify_quotas {
$changes{'notify'}{'approval'} = 1;
}
}
- if (ref($domconfig{$action}{'uniquecode'}) eq 'HASH') {
- if (ref($confhash{'uniquecode'}) eq 'HASH') {
- foreach my $crstype (keys(%{$domconfig{$action}{'uniquecode'}})) {
- unless ($confhash{'uniquecode'}{$crstype}) {
- $changes{'uniquecode'} = 1;
- }
- }
- unless ($changes{'uniquecode'}) {
- foreach my $crstype (keys(%{$confhash{'uniquecode'}})) {
- unless ($domconfig{$action}{'uniquecode'}{$crstype}) {
- $changes{'uniquecode'} = 1;
- }
- }
- }
- } else {
- $changes{'uniquecode'} = 1;
- }
- } elsif (ref($confhash{'uniquecode'}) eq 'HASH') {
- $changes{'uniquecode'} = 1;
- }
- if ($context eq 'requestcourses') {
- if (ref($domconfig{$action}{'textbooks'}) eq 'HASH') {
- my %deletions;
- my @todelete = &Apache::loncommon::get_env_multiple('form.book_del');
- if (@todelete) {
- map { $deletions{$_} = 1; } @todelete;
- }
- my %imgdeletions;
- my @todeleteimages = &Apache::loncommon::get_env_multiple('form.book_image_del');
- if (@todeleteimages) {
- map { $imgdeletions{$_} = 1; } @todeleteimages;
- }
- my $maxnum = $env{'form.book_maxnum'};
- for (my $i=0; $i<=$maxnum; $i++) {
- my $key = $env{'form.book_id_'.$i};
- if (ref($domconfig{$action}{'textbooks'}{$key}) eq 'HASH') {
- if ($deletions{$key}) {
- if ($domconfig{$action}{'textbooks'}{$key}{'image'}) {
- #FIXME need to obsolete item in RES space
- }
- next;
- } else {
- my $newpos = $env{'form.'.$key};
- $newpos =~ s/\D+//g;
- foreach my $item ('subject','title','author') {
- $confhash{'textbooks'}{$key}{$item} = $env{'form.book_'.$item.'_'.$i};
- if ($domconfig{$action}{'textbooks'}{$key}{$item} ne $confhash{'textbooks'}{$key}{$item}) {
- $changes{'textbooks'}{$key} = 1;
- }
- }
- $allpos[$newpos] = $key;
- }
- if ($imgdeletions{$key}) {
- $changes{'textbooks'}{$key} = 1;
- #FIXME need to obsolete item in RES space
- } elsif ($env{'form.book_image_'.$i.'.filename'}) {
- my ($cdom,$cnum) = split(/_/,$key);
- my ($imgurl,$error) = &process_textbook_image($r,$dom,$confname,'book_image_'.$i,
- $cdom,$cnum,$configuserok,
- $switchserver,$author_ok);
- if ($imgurl) {
- $confhash{'textbooks'}{$key}{'image'} = $imgurl;
- $changes{'textbooks'}{$key} = 1;
- }
- if ($error) {
- &Apache::lonnet::logthis($error);
- $errors .= ''.$error.' ';
- }
- } elsif ($domconfig{$action}{'textbooks'}{$key}{'image'}) {
- $confhash{'textbooks'}{$key}{'image'} =
- $domconfig{$action}{'textbooks'}{$key}{'image'};
- }
- }
- }
- }
- }
} else {
if ($confhash{'notify'}{'approval'}) {
$changes{'notify'}{'approval'} = 1;
}
- if (ref($confhash{'uniquecode'} eq 'HASH')) {
- $changes{'uniquecode'} = 1;
- }
- }
- if ($context eq 'requestcourses') {
- if ($newbook) {
- $changes{'textbooks'}{$newbook} = 1;
- foreach my $item ('subject','title','author') {
- $env{'form.addbook_'.$item} =~ s/(`)/'/g;
- if ($env{'form.addbook_'.$item}) {
- $confhash{'textbooks'}{$newbook}{$item} = $env{'form.addbook_'.$item};
- }
- }
- if ($env{'form.addbook_image.filename'} ne '') {
- my ($cdom,$cnum) = split(/_/,$newbook);
- my ($imageurl,$error) =
- &process_textbook_image($r,$dom,$confname,'addbook_image',$cdom,$cnum,$configuserok,
- $switchserver,$author_ok);
- if ($imageurl) {
- $confhash{'textbooks'}{$newbook}{'image'} = $imageurl;
- }
- if ($error) {
- &Apache::lonnet::logthis($error);
- $errors .= ''.$error.' ';
- }
- }
- }
- if (@allpos > 0) {
- my $idx = 0;
- foreach my $item (@allpos) {
- if ($item ne '') {
- $confhash{'textbooks'}{$item}{'order'} = $idx;
- if (ref($domconfig{$action}) eq 'HASH') {
- if (ref($domconfig{$action}{'textbooks'}) eq 'HASH') {
- if (ref($domconfig{$action}{'textbooks'}{$item}) eq 'HASH') {
- if ($domconfig{$action}{'textbooks'}{$item}{'order'} ne $idx) {
- $changes{'textbooks'}{$item} = 1;
- }
- }
- }
- }
- $idx ++;
- }
- }
- }
}
} else {
$confhash{'defaultquota'}{'default'} = $env{'form.defaultquota'};
@@ -6410,9 +6008,7 @@ sub modify_quotas {
$domdefaults{'requestauthor'} = \%confhash;
} else {
foreach my $key (keys(%confhash)) {
- unless (($context eq 'requestcourses') && ($key eq 'textbooks')) {
- $domdefaults{$key} = $confhash{$key};
- }
+ $domdefaults{$key} = $confhash{$key};
}
}
@@ -6425,11 +6021,9 @@ sub modify_quotas {
if (keys(%changes) > 0) {
my $cachetime = 24*60*60;
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime);
- if (ref($lastactref) eq 'HASH') {
- $lastactref->{'domdefaults'} = 1;
- }
+
$resulttext = &mt('Changes made:').'';
- unless (($context eq 'requestcourses') ||
+ unless (($context eq 'requestcourses') ||
($context eq 'requestauthor')) {
if (ref($changes{'defaultquota'}) eq 'HASH') {
$resulttext .= ''.&mt('Portfolio default quotas').'';
@@ -6439,7 +6033,7 @@ sub modify_quotas {
if ($type eq 'default') {
$typetitle = $othertitle;
}
- $resulttext .= ''.&mt('[_1] set to [_2] MB',$typetitle,$confhash{'defaultquota'}{$type}).' ';
+ $resulttext .= ''.&mt('[_1] set to [_2] Mb',$typetitle,$confhash{'defaultquota'}{$type}).' ';
}
}
$resulttext .= ' ';
@@ -6452,7 +6046,7 @@ sub modify_quotas {
if ($type eq 'default') {
$typetitle = $othertitle;
}
- $resulttext .= ''.&mt('[_1] set to [_2] MB',$typetitle,$confhash{'authorquota'}{$type}).' ';
+ $resulttext .= ''.&mt('[_1] set to [_2] Mb',$typetitle,$confhash{'authorquota'}{$type}).' ';
}
}
$resulttext .= ' ';
@@ -6463,7 +6057,7 @@ sub modify_quotas {
my (%haschgs,%inconf);
if ($context eq 'requestauthor') {
%haschgs = %changes;
- %inconf = %confhash;
+ %inconf = %confhash;
} else {
if (ref($changes{$item}) eq 'HASH') {
%haschgs = %{$changes{$item}};
@@ -6477,7 +6071,7 @@ sub modify_quotas {
&Apache::lonnet::usertools_access($env{'user.name'},
$env{'user.domain'},
$item,'reload',$context);
- if (($context eq 'requestcourses') ||
+ if (($context eq 'requestcourses') ||
($context eq 'requestauthor')) {
if ($env{'environment.canrequest.'.$item} ne $newacc) {
$newenv{'environment.canrequest.'.$item} = $newacc;
@@ -6549,42 +6143,6 @@ sub modify_quotas {
}
}
}
- if ($action eq 'requestcourses') {
- my @offon = ('off','on');
- if ($changes{'uniquecode'}) {
- if (ref($confhash{'uniquecode'}) eq 'HASH') {
- my $codestr = join(' ',map{ &mt($_); } sort(keys(%{$confhash{'uniquecode'}})));
- $resulttext .= ''.
- &mt('Generation of six character code as course identifier for distribution to students set to on for: [_1].',''.$codestr.' ').
- ' ';
- } else {
- $resulttext .= ''.&mt('Generation of six character code as course identifier for distribution to students set to off.').
- ' ';
- }
- }
- if (ref($changes{'textbooks'}) eq 'HASH') {
- $resulttext .= ''.&mt('Available textbooks updated').'';
- foreach my $key (sort(keys(%{$changes{'textbooks'}}))) {
- my %coursehash = &Apache::lonnet::coursedescription($key);
- my $coursetitle = $coursehash{'description'};
- my $position = $confhash{'textbooks'}{$key}{'order'} + 1;
- $resulttext .= '';
- foreach my $item ('subject','title','author') {
- my $name = $item.':';
- $name =~ s/^(\w)/\U$1/;
- $resulttext .= &mt($name).' '.$confhash{'textbooks'}{$key}{$item}.' ';
- }
- $resulttext .= ' '.&mt('Order: [_1]',$position).' ';
- if ($confhash{'textbooks'}{$key}{'image'}) {
- $resulttext .= ' '.&mt('Image: [_1]',
- ' ').' ';
- }
- $resulttext .= ' '.&mt('LON-CAPA Course: [_1]',$coursetitle).' ';
- }
- $resulttext .= ' ';
- }
- }
$resulttext .= ' ';
if (keys(%newenv)) {
&Apache::lonnet::appenv(\%newenv);
@@ -6602,40 +6160,9 @@ sub modify_quotas {
$resulttext = ''.
&mt('An error occurred: [_1]',$putresult).' ';
}
- if ($errors) {
- $resulttext .= ''.&mt('The following errors occurred when modifying Textbook settings.').
- '
';
- }
return $resulttext;
}
-sub process_textbook_image {
- my ($r,$dom,$confname,$caller,$cdom,$cnum,$configuserok,$switchserver,$author_ok) = @_;
- my $filename = $env{'form.'.$caller.'.filename'};
- my ($error,$url);
- my ($width,$height) = (50,50);
- if ($configuserok eq 'ok') {
- if ($switchserver) {
- $error = &mt('Upload of textbook image is not permitted to this server: [_1]',
- $switchserver);
- } elsif ($author_ok eq 'ok') {
- my ($result,$imageurl) =
- &publishlogo($r,'upload',$caller,$dom,$confname,
- "textbooks/$dom/$cnum/cover",$width,$height);
- if ($result eq 'ok') {
- $url = $imageurl;
- } else {
- $error = &mt("Upload of [_1] failed because an error occurred publishing the file in RES space. Error was: [_2].",$filename,$result);
- }
- } else {
- $error = &mt("Upload of [_1] failed because an author role could not be assigned to a Domain Configuration user ([_2]) in domain: [_3]. Error was: [_4].",$filename,$confname,$dom,$author_ok);
- }
- } else {
- $error = &mt("Upload of [_1] failed because a Domain Configuration user ([_2]) could not be created in domain: [_3]. Error was: [_4].",$filename,$confname,$dom,$configuserok);
- }
- return ($url,$error);
-}
-
sub modify_autoenroll {
my ($dom,$lastactref,%domconfig) = @_;
my ($resulttext,%changes);
@@ -6705,9 +6232,7 @@ sub modify_autoenroll {
if ($changes{'coowners'}) {
$resulttext .= ''.&mt("$title{'coowners'} set to $offon[$env{'form.autoassign_coowners'}]").' ';
&Apache::loncommon::devalidate_domconfig_cache($dom);
- if (ref($lastactref) eq 'HASH') {
- $lastactref->{'domainconfig'} = 1;
- }
+ $$lastactref = 'update';
}
$resulttext .= '';
} else {
@@ -7113,7 +6638,7 @@ sub modify_directorysrch {
} else {
$chgtext =~ s/\; $//;
}
- $resulttext .=
+ $resulttext .=
''.
&mt("Users from domain '[_1]' permitted to search the institutional directory set to: [_2]",
''.$dom.' ',$chgtext).
@@ -7265,9 +6790,7 @@ sub modify_contacts {
if ($putresult eq 'ok') {
if (keys(%changes) > 0) {
&Apache::loncommon::devalidate_domconfig_cache($dom);
- if (ref($lastactref) eq 'HASH') {
- $lastactref->{'domainconfig'} = 1;
- }
+ $$lastactref = 'update';
my ($titles,$short_titles) = &contact_titles();
$resulttext = &mt('Changes made:').'';
foreach my $item (@contacts) {
@@ -7342,7 +6865,7 @@ sub modify_usercreation {
foreach my $item(@contexts) {
if ($item eq 'selfcreate') {
@{$cancreate{$item}} = &Apache::loncommon::get_env_multiple('form.can_createuser_'.$item);
- my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1);
+ my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
if (!((($domdefaults{'auth_def'} =~/^krb/) && ($domdefaults{'auth_arg_def'} ne '')) || ($domdefaults{'auth_def'} eq 'localauth'))) {
if (ref($cancreate{$item}) eq 'ARRAY') {
if (grep(/^login$/,@{$cancreate{$item}})) {
@@ -7615,7 +7138,7 @@ sub modify_usercreation {
if ($captchas{$cancreate{$type}}) {
$chgtext .= &mt("Validation for self-creation screen set to $captchas{$cancreate{$type}}.");
} else {
- $chgtext .= &mt('Validation for self-creation screen set to unknown type.');
+ $chgtext .= &mt('Validation for self-creation screen set to unknown type.');
}
}
} elsif ($type eq 'recaptchakeys') {
@@ -7743,7 +7266,7 @@ sub process_captcha {
$newsettings->{'captcha'} = 'original';
}
if ($current->{'captcha'} ne $newsettings->{'captcha'}) {
- if ($container eq 'cancreate') {
+ if ($container eq 'cancreate') {
if (ref($changes->{'cancreate'}) eq 'ARRAY') {
push(@{$changes->{'cancreate'}},'captcha');
} elsif (!defined($changes->{'cancreate'})) {
@@ -7782,7 +7305,7 @@ sub process_captcha {
$changes->{'cancreate'} = ['recaptchakeys'];
}
} else {
- $changes->{'recaptchakeys'} = 1;
+ $changes->{'recaptchakeys'} = 1;
}
}
return;
@@ -7909,9 +7432,9 @@ sub modify_usermodification {
}
sub modify_defaults {
- my ($dom,$lastactref,%domconfig) = @_;
+ my ($dom,$r,%domconfig) = @_;
my ($resulttext,$mailmsgtxt,%newvalues,%changes,@errors);
- my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1);
+ my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
my @items = ('auth_def','auth_arg_def','lang_def','timezone_def','datelocale_def','portal_def');
my @authtypes = ('internal','krb4','krb5','localauth');
foreach my $item (@items) {
@@ -7971,7 +7494,7 @@ sub modify_defaults {
if ($putresult eq 'ok') {
if (keys(%changes) > 0) {
$resulttext = &mt('Changes made:').'';
- my $version = &Apache::lonnet::get_server_loncaparev($dom);
+ my $version = $r->dir_config('lonVersion');
my $mailmsgtext = "Changes made to domain settings in a LON-CAPA installation - domain: $dom (running version: $version) - dns_domain.tab needs to be updated with the following changes, to support legacy 2.4, 2.5 and 2.6 versions of LON-CAPA.\n\n";
foreach my $item (sort(keys(%changes))) {
my $value = $env{'form.'.$item};
@@ -7994,9 +7517,6 @@ sub modify_defaults {
$mailmsgtext .= "\n";
my $cachetime = 24*60*60;
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime);
- if (ref($lastactref) eq 'HASH') {
- $lastactref->{'domdefaults'} = 1;
- }
if ($changes{'auth_def'} || $changes{'auth_arg_def'} || $changes{'lang_def'} || $changes{'datelocale_def'}) {
my $notify = 1;
if (ref($domconfig{'contacts'}) eq 'HASH') {
@@ -8089,9 +7609,7 @@ sub modify_scantron {
}
$resulttext .= ' ';
&Apache::loncommon::devalidate_domconfig_cache($dom);
- if (ref($lastactref) eq 'HASH') {
- $lastactref->{'domainconfig'} = 1;
- }
+ $$lastactref = 'update';
} else {
$resulttext = &mt('No changes made to bubblesheet format file');
}
@@ -8482,7 +8000,7 @@ sub modify_helpsettings {
$changes{$item} = 1;
}
}
- if (($env{'form.'.$item} eq '0') || ($env{'form.'.$item} eq '1')) {
+ if (($env{'form.'.$item} eq '0') || ($env{'form.'.$item} eq '1')) {
$helphash{'helpsettings'}{$item} = $env{'form.'.$item};
}
}
@@ -8515,13 +8033,13 @@ sub modify_helpsettings {
}
sub modify_coursedefaults {
- my ($dom,$lastactref,%domconfig) = @_;
+ my ($dom,%domconfig) = @_;
my ($resulttext,$errors,%changes,%defaultshash);
my %defaultchecked = ('canuse_pdfforms' => 'off');
my @toggles = ('canuse_pdfforms');
my @numbers = ('anonsurvey_threshold','uploadquota_official','uploadquota_unofficial',
- 'uploadquota_community','uploadquota_textbook');
- my @types = ('official','unofficial','community','textbook');
+ 'uploadquota_community');
+ my @types = ('official','unofficial','community');
my %staticdefaults = (
anonsurvey_threshold => 10,
uploadquota => 500,
@@ -8556,7 +8074,7 @@ sub modify_coursedefaults {
}
foreach my $item (@numbers) {
my ($currdef,$newdef);
- $newdef = $env{'form.'.$item};
+ my $newdef = $env{'form.'.$item};
if ($item eq 'anonsurvey_threshold') {
$currdef = $domconfig{'coursedefaults'}{$item};
$newdef =~ s/\D//g;
@@ -8586,33 +8104,30 @@ sub modify_coursedefaults {
}
}
my $officialcreds = $env{'form.official_credits'};
- $officialcreds =~ s/[^\d.]+//g;
+ $officialcreds =~ s/^[^\d\.]//g;
my $unofficialcreds = $env{'form.unofficial_credits'};
- $unofficialcreds =~ s/[^\d.]+//g;
- my $textbookcreds = $env{'form.textbook_credits'};
- $textbookcreds =~ s/[^\d.]+//g;
+ $unofficialcreds =~ s/^[^\d\.]//g;
if (ref($domconfig{'coursedefaults'}{'coursecredits'} ne 'HASH') &&
($env{'form.coursecredits'} eq '1')) {
$changes{'coursecredits'} = 1;
} else {
if (($domconfig{'coursedefaults'}{'coursecredits'}{'official'} ne $officialcreds) ||
- ($domconfig{'coursedefaults'}{'coursecredits'}{'unofficial'} ne $unofficialcreds) ||
- ($domconfig{'coursedefaults'}{'coursecredits'}{'textbook'} ne $textbookcreds)) {
+ ($domconfig{'coursedefaults'}{'coursecredits'}{'unofficial'} ne $unofficialcreds)) {
$changes{'coursecredits'} = 1;
}
}
$defaultshash{'coursedefaults'}{'coursecredits'} = {
official => $officialcreds,
unofficial => $unofficialcreds,
- textbook => $textbookcreds,
}
}
my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash,
$dom);
if ($putresult eq 'ok') {
+ my %domdefaults;
if (keys(%changes) > 0) {
- my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1);
if (($changes{'canuse_pdfforms'}) || ($changes{'coursecredits'}) || ($changes{'uploadquota'})) {
+ %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
if ($changes{'canuse_pdfforms'}) {
$domdefaults{'canuse_pdfforms'}=$defaultshash{'coursedefaults'}{'canuse_pdfforms'};
}
@@ -8622,8 +8137,6 @@ sub modify_coursedefaults {
$defaultshash{'coursedefaults'}{'coursecredits'}{'official'};
$domdefaults{'unofficialcredits'} =
$defaultshash{'coursedefaults'}{'coursecredits'}{'unofficial'};
- $domdefaults{'textbookcredits'} =
- $domdefaults{'coursedefaults'}{'coursecredits'}{'textbook'};
}
}
if ($changes{'uploadquota'}) {
@@ -8635,9 +8148,6 @@ sub modify_coursedefaults {
}
my $cachetime = 24*60*60;
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime);
- if (ref($lastactref) eq 'HASH') {
- $lastactref->{'domdefaults'} = 1;
- }
}
$resulttext = &mt('Changes made:').'';
foreach my $item (sort(keys(%changes))) {
@@ -8654,8 +8164,6 @@ sub modify_coursedefaults {
$resulttext .= ''.&mt('Default quota for content uploaded to a course/community via Course Editor set as follows:').''.
''.&mt('Official courses: [_1] MB',''.$defaultshash{'coursedefaults'}{'uploadquota'}{'official'}.' ').' '.
''.&mt('Unofficial courses: [_1] MB',''.$defaultshash{'coursedefaults'}{'uploadquota'}{'unofficial'}.' ').' '.
- ''.&mt('Textbook courses: [_1] MB',''.$defaultshash{'coursedefaults'}{'uploadquota'}{'textbook'}.' ').' '.
-
''.&mt('Communities: [_1] MB',''.$defaultshash{'coursedefaults'}{'uploadquota'}{'community'}.' ').' '.
' '.
' ';
@@ -8665,14 +8173,12 @@ sub modify_coursedefaults {
} elsif ($item eq 'coursecredits') {
if (ref($defaultshash{'coursedefaults'}{'coursecredits'}) eq 'HASH') {
if (($domdefaults{'officialcredits'} eq '') &&
- ($domdefaults{'unofficialcredits'} eq '') &&
- ($domdefaults{'textbookcredits'} eq '')) {
+ ($domdefaults{'unofficialcredits'} eq '')) {
$resulttext .= ''.&mt('Student credits not in use for courses in this domain').' ';
} else {
$resulttext .= ''.&mt('Student credits can be set per course by a Domain Coordinator, with the following defaults applying:').''.
''.&mt('Official courses: [_1]',$defaultshash{'coursedefaults'}{'coursecredits'}{'official'}).' '.
''.&mt('Unofficial courses: [_1]',$defaultshash{'coursedefaults'}{'coursecredits'}{'unofficial'}).' '.
- ''.&mt('Textbook courses: [_1]',$defaultshash{'coursedefaults'}{'coursecredits'}{'textbook'}).' '.
' '.
' ';
}
@@ -8693,7 +8199,7 @@ sub modify_coursedefaults {
}
sub modify_usersessions {
- my ($dom,$lastactref,%domconfig) = @_;
+ my ($dom,%domconfig) = @_;
my @hostingtypes = ('version','excludedomain','includedomain');
my @offloadtypes = ('primary','default');
my %types = (
@@ -8710,7 +8216,7 @@ sub modify_usersessions {
foreach my $prefix (@prefixes) {
$defaultshash{'usersessions'}{$prefix} = {};
}
- my %domdefaults = &Apache::lonnet::get_domain_defaults($dom,1);
+ my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
my $resulttext;
my %iphost = &Apache::lonnet::get_iphost();
foreach my $prefix (@prefixes) {
@@ -8886,9 +8392,6 @@ sub modify_usersessions {
}
my $cachetime = 24*60*60;
&Apache::lonnet::do_cache_new('domdefaults',$dom,\%domdefaults,$cachetime);
- if (ref($lastactref) eq 'HASH') {
- $lastactref->{'domdefaults'} = 1;
- }
if (keys(%changes) > 0) {
my %lt = &usersession_titles();
$resulttext = &mt('Changes made:').'';
@@ -8900,8 +8403,7 @@ sub modify_usersessions {
foreach my $lonhost (sort(keys(%{$changes{$prefix}}))) {
$resulttext .= ''.$lonhost.' ';
my $lonhostdom = &Apache::lonnet::host_domain($lonhost);
- my $cachekey = &escape('spares').':'.&escape($lonhostdom);
- &Apache::lonnet::remote_devalidate_cache($lonhost,[$cachekey]);
+ &Apache::lonnet::remote_devalidate_cache($lonhost,'spares',$lonhostdom);
if (ref($changes{$prefix}{$lonhost}) eq 'HASH') {
foreach my $type (@{$types{$prefix}}) {
if ($changes{$prefix}{$lonhost}{$type}) {
@@ -8991,7 +8493,7 @@ sub modify_loadbalancing {
if ($balancer eq '') {
next;
}
- if (!exists($servers{$balancer})) {
+ if (!exists($servers{$balancer})) {
if (exists($currbalancer{$balancer})) {
push(@{$changes{'delete'}},$balancer);
}
@@ -9042,14 +8544,14 @@ sub modify_loadbalancing {
}
} else {
if (ref($defaultshash{'loadbalancing'}{$balancer}) eq 'HASH') {
- foreach my $sparetype (@sparestypes) {
+ foreach my $sparetype (@sparestypes) {
if (ref($defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}) eq 'ARRAY') {
if (@{$defaultshash{'loadbalancing'}{$balancer}{'targets'}{$sparetype}} > 0) {
$changes{'curr'}{$balancer}{'targets'} = 1;
}
}
}
- }
+ }
}
my $ishomedom;
if (&Apache::lonnet::host_domain($balancer) eq $dom) {
@@ -9058,7 +8560,7 @@ sub modify_loadbalancing {
if (ref($alltypes) eq 'ARRAY') {
foreach my $type (@{$alltypes}) {
my $rule;
- unless ((($type eq '_LC_external') || ($type eq '_LC_internetdom')) &&
+ unless ((($type eq '_LC_external') || ($type eq '_LC_internetdom')) &&
(!$ishomedom)) {
$rule = $env{'form.loadbalancing_rules_'.$i.'_'.$type};
}
@@ -9083,17 +8585,17 @@ sub modify_loadbalancing {
}
my $putresult = &Apache::lonnet::put_dom('configuration',
\%defaultshash,$dom);
+
if ($putresult eq 'ok') {
if (keys(%changes) > 0) {
if (ref($changes{'delete'}) eq 'ARRAY') {
foreach my $balancer (sort(@{$changes{'delete'}})) {
$resulttext .= ''.&mt('Load Balancing discontinued for: [_1]',$balancer).' ';
- my $cachekey = &escape('loadbalancing').':'.&escape($dom);
- &Apache::lonnet::remote_devalidate_cache($balancer,[$cachekey]);
+ &Apache::lonnet::remote_devalidate_cache($balancer,'loadbalancing',$dom);
}
}
if (ref($changes{'add'}) eq 'ARRAY') {
- foreach my $balancer (sort(@{$changes{'add'}})) {
+ foreach my $balancer (sort(@{$changes{'add'}})) {
$resulttext .= ''.&mt('Load Balancing enabled for: [_1]',$balancer);
}
}
@@ -9134,19 +8636,17 @@ sub modify_loadbalancing {
my $balancetext;
if ($rule eq '') {
$balancetext = $ruletitles{'default'};
- } elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer') ||
- ($rule eq 'balancer') || ($rule eq 'offloadedto')) {
+ } elsif (($rule eq 'homeserver') || ($rule eq 'externalbalancer')) {
$balancetext = $ruletitles{$rule};
} else {
$balancetext = &mt('offload to [_1]',$defaultshash{'loadbalancing'}{$balancer}{'rules'}{$type});
}
- $resulttext .= ' '.&mt('Load Balancer: [_1] -- balancing for [_2] set to - "[_3]"',$balancer,$titles->{$type},$balancetext).' ';
+ $resulttext .= ''.&mt('Load Balancer: [_1] -- balancing for [_2] set to - "[_3]"',$balancer,$titles->{$type},$balancetext).' ';
}
}
}
}
- my $cachekey = &escape('loadbalancing').':'.&escape($dom);
- &Apache::lonnet::remote_devalidate_cache($balancer,[$cachekey]);
+ &Apache::lonnet::remote_devalidate_cache($balancer,'loadbalancing',$dom);
}
}
if ($resulttext ne '') {
@@ -9234,7 +8734,7 @@ sub active_dc_picker {
}
}
@domcoord = sort(@domcoord);
- my $numdcs = scalar(@domcoord);
+ my $numdcs = scalar(@domcoord);
my $rows = 0;
my $table;
if ($numdcs > 1) {
@@ -9278,31 +8778,21 @@ sub active_dc_picker {
' '.$user;
if ($user ne $dcname.':'.$dcdom) {
- $table .= ' ('.$dcname.':'.$dcdom.')';
+ $table .= ' ('.$dcname.':'.$dcdom.')'.
+ '';
}
- $table .= '';
}
$table .= '';
} elsif ($numdcs == 1) {
- my ($dcname,$dcdom) = split(':',$domcoord[0]);
- my $user = &Apache::loncommon::plainname($dcname,$dcdom);
if ($inputtype eq 'radio') {
- $table .= ' '.$user;
- if ($user ne $dcname.':'.$dcdom) {
- $table .= ' ('.$dcname.':'.$dcdom.')';
- }
+ $table .= ' ';
} else {
my $check;
if (exists($currhash{$domcoord[0]})) {
$check = ' checked="checked"';
}
- $table .= ''.
- ' '.$user;
- if ($user ne $dcname.':'.$dcdom) {
- $table .= ' ('.$dcname.':'.$dcdom.')';
- }
- $table .= ' ';
+ $table .= ' ';
$rows ++;
}
}
@@ -9378,7 +8868,7 @@ sub lonbalance_targets_js {
}
&get_loadbalancers_config($servers,\%existing,\%currbalancer,
\%currtargets,\%currrules);
- my $balancers = join("','",sort(keys(%currbalancer)));
+ my $balancers = join("','",sort(keys(%currbalancer)));
return <<"END";