--- loncom/interface/domainprefs.pm 2009/12/04 14:17:38 1.122
+++ loncom/interface/domainprefs.pm 2010/12/06 17:50:40 1.123.2.4
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set domain-wide configuration settings
#
-# $Id: domainprefs.pm,v 1.122 2009/12/04 14:17:38 jms Exp $
+# $Id: domainprefs.pm,v 1.123.2.4 2010/12/06 17:50:40 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -328,10 +328,10 @@ sub handler {
{col1 => 'Unauthenticated Help Settings',
col2 => ''}],
},
- 'coursedefaults' =>
+ 'coursedefaults' =>
{text => 'Course/Community defaults',
help => 'Domain_Configuration_Course_Defaults',
- header => [{col1 => 'Setting',
+ header => [{col1 => 'Defaults which can be overridden for each course by a DC',
col2 => 'Value',}],
},
'privacy' =>
@@ -2092,14 +2092,27 @@ sub print_coursedefaults {
my ($css_class,$datatable);
my $itemcount = 1;
my (%checkedon,%checkedoff,%choices,%defaultchecked,@toggles);
- %choices =
+ $css_class = $itemcount%2 ? ' class="LC_odd_row"' : '';
+ my %choices =
&Apache::lonlocal::texthash (
- canuse_pdfforms => 'Course/Community users can create/upload PDF forms',
+ anonsurvey_threshold => 'Responder count needed before showing submissions for anonymous surveys',
);
- %defaultchecked = ('canuse_pdfforms' => 'off');
- @toggles = ('canuse_pdfforms',);
- ($datatable,$itemcount) = &radiobutton_prefs($settings,\@toggles,\%defaultchecked,
- \%choices,$itemcount);
+ my $currdefresponder;
+ if (ref($settings) eq 'HASH') {
+ $currdefresponder = $settings->{'anonsurvey_threshold'};
+ }
+ if (!$currdefresponder) {
+ $currdefresponder = 10;
+ } elsif ($currdefresponder < 1) {
+ $currdefresponder = 1;
+ }
+ $datatable .=
+ '
'.$choices{'anonsurvey_threshold'}.
+ ' | '.
+ ''.
+ ''.
+ ' |
';
$$rowtotal += $itemcount;
return $datatable;
}
@@ -5424,6 +5437,15 @@ sub modify_defaults {
my %domdefaults = &Apache::lonnet::get_domain_defaults($dom);
my @items = ('auth_def','auth_arg_def','lang_def','timezone_def','datelocale_def');
my @authtypes = ('internal','krb4','krb5','localauth');
+ my @doms = &Apache::lonnet::current_machine_domains();
+ my @langs;
+ foreach my $dom (@doms) {
+ if ($dom =~ /^(\w{2})\w?itest$/) {
+ push (@langs,$1.'t');
+ } elsif ($dom =~ /^(\w{2})\w?i$/) {
+ push(@langs,$1.'i');
+ }
+ }
foreach my $item (@items) {
$newvalues{$item} = $env{'form.'.$item};
if ($item eq 'auth_def') {
@@ -5436,7 +5458,8 @@ sub modify_defaults {
if ($newvalues{$item} ne '') {
if ($newvalues{$item} =~ /^(\w+)/) {
my $langcode = $1;
- if ($langcode ne 'x_chef') {
+ if ((!grep(/^\Q$langcode\E/,@langs)) &&
+ ($langcode ne 'x_chef')) {
if (code2language($langcode) eq '') {
push(@errors,$item);
}
@@ -6033,7 +6056,14 @@ sub modify_helpsettings {
}
}
- my $putresult = &Apache::lonnet::put_dom('configuration',\%helphash,$dom);
+
+ my $putresult;
+
+ if (keys(%changes) > 0) {
+ $putresult = &Apache::lonnet::put_dom('configuration',\%helphash,$dom);
+ } else {
+ $putresult = 'ok';
+ }
if ($putresult eq 'ok') {
if (keys(%changes) > 0) {
@@ -6099,6 +6129,18 @@ sub modify_coursedefaults {
}
$defaultshash{'coursedefaults'}{$item} = $env{'form.'.$item};
}
+ my $currdefresponder = $domconfig{'coursedefaults'}{'anonsurvey_threshold'};
+ my $newdefresponder = $env{'form.anonsurvey_threshold'};
+ $newdefresponder =~ s/\D//g;
+ if ($newdefresponder eq '' || $newdefresponder < 1) {
+ $newdefresponder = 1;
+ }
+ $defaultshash{'coursedefaults'}{'anonsurvey_threshold'} = $newdefresponder;
+ if ($currdefresponder ne $newdefresponder) {
+ unless ($currdefresponder eq '' && $newdefresponder == 10) {
+ $changes{'anonsurvey_threshold'} = 1;
+ }
+ }
}
my $putresult = &Apache::lonnet::put_dom('configuration',\%defaultshash,
$dom);
@@ -6118,7 +6160,10 @@ sub modify_coursedefaults {
} else {
$resulttext .= ''.&mt('Course/Community users can create/upload PDF forms set to "off"').'';
}
+ } elsif ($item eq 'anonsurvey_threshold') {
+ $resulttext .= ''.&mt('Responder count required for display of anonymous survey submissions set to [_1].',$defaultshash{'coursedefaults'}{'anonsurvey_threshold'}).'';
}
+
}
$resulttext .= '';
} else {