--- loncom/interface/lonconfigsettings.pm 2012/12/10 23:31:38 1.21.4.2
+++ loncom/interface/lonconfigsettings.pm 2014/04/23 10:26:37 1.21.4.6
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: lonconfigsettings.pm,v 1.21.4.2 2012/12/10 23:31:38 raeburn Exp $
+# $Id: lonconfigsettings.pm,v 1.21.4.6 2014/04/23 10:26:37 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -38,7 +38,7 @@ use Apache::lonlocal;
sub print_header {
my ($r,$phase,$context,$jscript,$container) = @_;
- my ($pagetitle,$brcrumtitle,$action,$call_category_check);
+ my ($pagetitle,$brcrumtitle,$action,$call_category_check,$crstype);
if ($context eq 'domain') {
($pagetitle, $brcrumtitle) = ('View/Modify Domain Settings','View/Modify Domain Settings');
$action = '/adm/domainprefs';
@@ -55,7 +55,8 @@ sub print_header {
}
}
} else {
- if (&Apache::loncommon::course_type() eq 'Community') {
+ $crstype = &Apache::loncommon::course_type();
+ if ($crstype eq 'Community') {
($pagetitle,$brcrumtitle) = ('Community Configuration','Community Configuration');
} else {
($pagetitle,$brcrumtitle) = ('Course Configuration','Course Configuration');
@@ -180,7 +181,7 @@ sub make_changes {
{href=>"javascript:changePage(document.$phase,'$phase')",
text=>"Updated"});
&print_header($r,$phase,$context,undef,$container);
- my $crstype;
+ my ($crstype,%lastact);
if ($context eq 'course') {
$crstype = &Apache::loncommon::course_type();
}
@@ -191,7 +192,7 @@ sub make_changes {
if ($context eq 'domain') {
$r->print('
'.&mt($prefs->{$item}{'text'}).'
'.
&Apache::domainprefs::process_changes($r,$dom,
- $confname,$item,$roles,$values));
+ $confname,$item,$roles,$values,\%lastact));
} else {
$changes{$item} = {};
&Apache::courseprefs::process_changes($dom,$item,$values,
@@ -236,6 +237,7 @@ sub make_changes {
}
&print_footer($r,$phase,'display',$footer_text,\@actions,$container);
$r->print('');
+ return \%lastact;
}
sub display_settings {
@@ -256,16 +258,44 @@ sub display_settings {
if (grep(/^\Q$item\E$/,@actions)) {
push(@items,$item);
if ($context eq 'domain') {
+ my $settings;
+ if (ref($values) eq 'HASH') {
+ $settings = $values->{$item};
+ }
if ($item eq 'usersessions') {
$r->print(''."\n");
+ } elsif ($item eq 'selfcreation') {
+ if (ref($values) eq 'HASH') {
+ $settings = $values->{'usercreation'};
+ }
+ } elsif ($item eq 'defaults') {
+ if (ref($values->{'inststatus'}) eq 'HASH') {
+ if (ref($values->{'defaults'}) eq 'HASH') {
+ $settings = {%{$values->{'inststatus'}},%{$values->{'defaults'}}};
+ } else {
+ $settings = $values->{'inststatus'};
+ }
+ } else {
+ my ($othertitle,$usertypes,$types) = &Apache::loncommon::sorted_inst_types($dom);
+ my $inststatus = {
+ inststatustypes => $usertypes,
+ inststatusorder => $types,
+ inststatusguest => [],
+ };
+ if (ref($values->{defaults}) eq 'HASH') {
+ $settings = {%{$inststatus},%{$values->{'defaults'}}};
+ } else {
+ $settings = $inststatus;
+ }
+ }
}
($output{$item},$rowtotal{$item}) =
&Apache::domainprefs::print_config_box($r,$dom,$confname,
- $phase,$item,$prefs->{$item},$values->{$item});
+ $phase,$item,$prefs->{$item},$settings);
} else {
($output{$item},$rowtotal{$item}) =
&Apache::courseprefs::print_config_box($r,$dom,$phase,