[LON-CAPA-cvs] cvs: doc /loncapafiles loncapafiles.lpml loncom/html/res/adm/pages anonsurveythreshold.png loncom/interface lonmodifycourse.pm
raeburn
raeburn@source.lon-capa.org
Tue, 24 Aug 2010 13:51:59 -0000
This is a MIME encoded message
--raeburn1282657919
Content-Type: text/plain
raeburn Tue Aug 24 13:51:59 2010 EDT
Added files:
/loncom/html/res/adm/pages anonsurveythreshold.png
Modified files:
/loncom/interface lonmodifycourse.pm
/doc/loncapafiles loncapafiles.lpml
Log:
- DC can set number of responders needed when CC displays anonymous survey
submissions.
--raeburn1282657919
Content-Type: text/plain
Content-Disposition: attachment; filename="raeburn-20100824135159.txt"
Index: loncom/interface/lonmodifycourse.pm
diff -u loncom/interface/lonmodifycourse.pm:1.56 loncom/interface/lonmodifycourse.pm:1.57
--- loncom/interface/lonmodifycourse.pm:1.56 Thu Jul 8 23:19:19 2010
+++ loncom/interface/lonmodifycourse.pm Tue Aug 24 13:51:52 2010
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# handler for DC-only modifiable course settings
#
-# $Id: lonmodifycourse.pm,v 1.56 2010/07/08 23:19:19 raeburn Exp $
+# $Id: lonmodifycourse.pm,v 1.57 2010/08/24 13:51:52 raeburn Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -226,8 +226,9 @@
$categorytitle = 'View/Modify Course Settings';
$setquota_text = &mt('Total disk space allocated for storage of portfolio files in all groups in a course.');
$setparams_text = 'View/Modify course owner, institutional code, and default authentication';
- $cat_text = 'View/Modify catalog settings for course';
+ $cat_text = 'View/Modify catalog settings for course';
}
+ my $anon_text = 'Responder threshold required to display anonymous survey submissions';
my %domconf = &Apache::lonnet::get_dom('configuration',['coursecategories'],$dom);
my @additional_params = &catalog_settable($domconf{'coursecategories'},$type);
@@ -256,6 +257,14 @@
linktitle => ''
},
{
+ linktext => 'View/Modify responders threshold for anonymous survey submissions display',
+ url => &phaseurl('setanon'),
+ permission => 1,
+ #help => '',
+ icon => 'anonsurveythreshold.png',
+ linktitle => ''
+ },
+ {
linktext => $cat_text,
url => &phaseurl('catsettings'),
permission => (@additional_params > 0),
@@ -292,7 +301,8 @@
$menu_html .= '<li>'.&mt('Course owner (permitted to assign Course Coordinator roles in the course).').'</li>'.
'<li>'.&mt("Institutional code and default authentication (both required for auto-enrollment of students from institutional datafeeds).").'</li>';
}
- $menu_html .= '<li>'.$setquota_text.'</li>'."\n";
+ $menu_html .= '<li>'.$setquota_text.'</li>'.
+ '<li>'.$anon_text.'</li>'."\n";
foreach my $item (@additional_params) {
if ($type eq 'Community') {
if ($item eq 'togglecats') {
@@ -409,11 +419,11 @@
my $hidden_elements = &hidden_form_elements();
my $helpitem = &Apache::loncommon::help_open_topic('Modify_Course_Quota');
$r->print(<<ENDDOCUMENT);
-<form action="/adm/modifycourse" method="post" name="setquota">
+<form action="/adm/modifycourse" method="post" name="setquota" onsubmit="return verify_quota();">
<h3>$lt{'cquo'} <span class="LC_nobreak">$cdesc</span></h3>
<p>
$helpitem $lt{'gpqu'}: <input type="text" size="4" name="coursequota" value="$coursequota" /> Mb
-<input type="button" onClick="javascript:verify_quota(this.form)" value="$lt{'modi'}" />
+<input type="submit" value="$lt{'modi'}" />
</p>
$hidden_elements
<a href="javascript:changePage(document.setquota,'menu')">$lt{'back'}</a>
@@ -422,6 +432,45 @@
return;
}
+sub print_set_anonsurvey_threshold {
+ my ($r,$cdom,$cnum,$cdesc,$type) = @_;
+ my %lt = &Apache::lonlocal::texthash(
+ 'resp' => 'Responder threshold for anonymous survey submissions display:',
+ 'sufa' => 'Anonymous survey submissions displayed when responders exceeds',
+ 'modi' => 'Save',
+ 'back' => 'Pick another action',
+ );
+ my %settings = &Apache::lonnet::get('environment',['internal.anonsurvey_threshold'],$cdom,$cnum);
+ my $threshold = $settings{'internal.anonsurvey_threshold'};
+ if ($threshold eq '') {
+ my %domconfig =
+ &Apache::lonnet::get_dom('configuration',['coursedefaults'],$cdom);
+ if (ref($domconfig{'coursedefaults'}) eq 'HASH') {
+ $threshold = $domconfig{'coursedefaults'}{'anonsurvey_threshold'};
+ if ($threshold eq '') {
+ $threshold = 10;
+ }
+ } else {
+ $threshold = 10;
+ }
+ }
+ &print_header($r,$type);
+ my $hidden_elements = &hidden_form_elements();
+ my $helpitem = &Apache::loncommon::help_open_topic('Modify_Anonsurvey_Threshold');
+ $r->print(<<ENDDOCUMENT);
+<form action="/adm/modifycourse" method="post" name="setanon" onsubmit="return verify_anon_threshold();">
+<h3>$lt{'resp'} <span class="LC_nobreak">$cdesc</span></h3>
+<p>
+$helpitem $lt{'sufa'}: <input type="text" size="4" name="threshold" value="$threshold" />
+<input type="submit" value="$lt{'modi'}" />
+</p>
+$hidden_elements
+<a href="javascript:changePage(document.setanon,'menu')">$lt{'back'}</a>
+</form>
+ENDDOCUMENT
+ return;
+}
+
sub print_catsettings {
my ($r,$cdom,$cnum,$cdesc,$type) = @_;
&print_header($r,$type);
@@ -1067,7 +1116,7 @@
} else {
if ($putreply eq 'ok') {
my %updatedsettings = &Apache::lonnet::get('environment',['internal.coursequota'],$cdom,$cnum);
- $r->print(&mt('The disk space allocated for group portfolio files is now: [_1] Mb.',$updatedsettings{'internal.coursequota'}));
+ $r->print(&mt('The disk space allocated for group portfolio files is now: [_1] Mb.','<b>'.$updatedsettings{'internal.coursequota'}.'</b>'));
my $usage = &Apache::longroup::sum_quotas($cdom.'_'.$cnum);
if ($usage >= $updatedsettings{'internal.coursequota'}) {
my $newoverquota;
@@ -1101,6 +1150,62 @@
return;
}
+sub modify_anonsurvey_threshold {
+ my ($r,$cdom,$cnum,$cdesc,$domdesc,$type) = @_;
+ &print_header($r,$type);
+ $r->print('<form action="/adm/modifycourse" method="post" name="processthreshold">'."\n".
+ '<h3>'.&mt('Responder threshold required for display of anonymous survey submissions:').
+ ' <span class="LC_nobreak">'.$cdesc.'</span></h3><br />');
+ my %oldsettings = &Apache::lonnet::get('environment',['internal.anonsurvey_threshold'],$cdom,$cnum);
+ my %domconfig =
+ &Apache::lonnet::get_dom('configuration',['coursedefaults'],$cdom);
+ my $defaultthreshold;
+ if (ref($domconfig{'coursedefaults'}) eq 'HASH') {
+ $defaultthreshold = $domconfig{'coursedefaults'}{'anonsurvey_threshold'};
+ if ($defaultthreshold eq '') {
+ $defaultthreshold = 10;
+ }
+ } else {
+ $defaultthreshold = 10;
+ }
+ if ($env{'form.threshold'} eq '') {
+ $r->print(&mt('The proposed responder threshold for display of anonymous survey submissions was blank, so the threshold is unchanged.'));
+ } else {
+ my $newthreshold = $env{'form.threshold'};
+ if ($newthreshold =~ /^\s*(\d+)\s*$/) {
+ $newthreshold = $1;
+ if ($oldsettings{'internal.anonsurvey_threshold'} eq $env{'form.threshold'}) {
+ $r->print(&mt('Responder threshold for anonymous survey submissions display remains unchanged: [_1].',$env{'form.threshold'}));
+ } else {
+ my %cenv = (
+ 'internal.anonsurvey_threshold' => $env{'form.threshold'},
+ );
+ my $putreply = &Apache::lonnet::put('environment',\%cenv,$cdom,
+ $cnum);
+ if (($oldsettings{'internal.anonsurvey_threshold'} eq '') &&
+ ($env{'form.threshold'} == $defaultthreshold)) {
+ $r->print(&mt('The responder threshold for display of anonymous survey submissions is the default for this domain: [_1].',$defaultthreshold));
+ } else {
+ if ($putreply eq 'ok') {
+ my %updatedsettings = &Apache::lonnet::get('environment',['internal.anonsurvey_threshold'],$cdom,$cnum);
+ $r->print(&mt('The responder threshold for display of anonymous survey submissions is now: [_1].','<b>'.$updatedsettings{'internal.anonsurvey_threshold'}.'</b>'));
+ } else {
+ $r->print(&mt('An error occurred storing the responder threshold for anonymous submissions display: ').
+ $putreply);
+ }
+ }
+ }
+ } else {
+ $r->print(&mt('The proposed responder threshold for display of anonymous submissions contained invalid characters, so the threshold is unchanged.'));
+ }
+ }
+ $r->print('<p>'.
+ '<a href="javascript:changePage(document.processthreshold,'."'menu'".')">'.
+ &mt('Pick another action').'</a>');
+ $r->print(&hidden_form_elements().'</form>');
+ return;
+}
+
sub modify_catsettings {
my ($r,$cdom,$cnum,$cdesc,$domdesc,$type) = @_;
&print_header($r,$type);
@@ -1264,17 +1369,45 @@
</script>
|;
} elsif ($phase eq 'setquota') {
- $js .= <<'ENDSCRIPT';
+ my $invalid = &mt('The quota you entered contained invalid characters.');
+ my $alert = &mt('You must enter a number');
+ my $regexp = '/^\s*(\d+\.?\d*|\.\d+)\s*$/';
+ $js .= <<"ENDSCRIPT";
<script type="text/javascript">
-function verify_quota(formname) {
- var newquota = formname.coursequota.value;
- var num_reg = /^\s*(\d+\.?\d*|\.\d+)\s*$/;
+function verify_quota() {
+ var newquota = document.setquota.coursequota.value;
+ var num_reg = $regexp;
if (num_reg.test(newquota)) {
- changePage(formname,'processquota');
+ changePage(document.setquota,'processquota');
} else {
- alert("The quota you entered contained invalid characters.\nYou must enter a number");
+ alert("$invalid\\n$alert");
+ return false;
}
- return;
+ return true;
+}
+</script>
+ENDSCRIPT
+ } elsif ($phase eq 'setanon') {
+ my $invalid = &mt('The responder threshold you entered is invalid.');
+ my $alert = &mt('You must enter a positive integer.');
+ my $regexp = ' /^\s*\d+\s*$/';
+ $js .= <<"ENDSCRIPT";
+<script type="text/javascript">
+function verify_anon_threshold() {
+ var newthreshold = document.setanon.threshold.value;
+ var num_reg = $regexp;
+ if (num_reg.test(newthreshold)) {
+ if (newthreshold > 0) {
+ changePage(document.setanon,'processthreshold');
+ } else {
+ alert("$invalid\\n$alert");
+ return false;
+ }
+ } else {
+ alert("$invalid\\n$alert");
+ return false;
+ }
+ return true;
}
</script>
ENDSCRIPT
@@ -1371,7 +1504,8 @@
my $hidden_elements =
&Apache::lonhtmlcommon::echo_form_input(['gosearch','updater','coursecode',
'prevphase','numlocalcc','courseowner','login','coursequota','intarg',
- 'locarg','krbarg','krbver','counter','hidefromcat','usecategory'])."\n".
+ 'locarg','krbarg','krbver','counter','hidefromcat','usecategory',
+ 'threshold'])."\n".
'<input type="hidden" name="prevphase" value="'.$env{'form.phase'}.'" />';
return $hidden_elements;
}
@@ -1459,7 +1593,21 @@
({href=>"javascript:changePage(document.$phase,'$phase')",
text=>"Result"});
&modify_quota($r,$cdom,$cnum,$cdesc,$domdesc,$type);
- } elsif ($phase eq 'viewparms') {
+ } elsif ($phase eq 'setanon') {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"javascript:changePage(document.$phase,'$phase')",
+ text=>"Threshold for anonymous submissions display"});
+ &print_set_anonsurvey_threshold($r,$cdom,$cnum,$cdesc,$type);
+
+ } elsif ($phase eq 'processthreshold') {
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"javascript:changePage(document.$phase,'setanon')",
+ text=>"Threshold for anonymous submissions display"});
+ &Apache::lonhtmlcommon::add_breadcrumb
+ ({href=>"javascript:changePage(document.$phase,'$phase')",
+ text=>"Result"});
+ &modify_anonsurvey_threshold($r,$cdom,$cnum,$cdesc,$domdesc,$type);
+ } elsif ($phase eq 'viewparms') {
&Apache::lonhtmlcommon::add_breadcrumb
({href=>"javascript:changePage(document.$phase,'viewparms')",
text=>"Display settings"});
Index: doc/loncapafiles/loncapafiles.lpml
diff -u doc/loncapafiles/loncapafiles.lpml:1.701 doc/loncapafiles/loncapafiles.lpml:1.702
--- doc/loncapafiles/loncapafiles.lpml:1.701 Tue Aug 24 09:11:32 2010
+++ doc/loncapafiles/loncapafiles.lpml Tue Aug 24 13:51:59 2010
@@ -2,7 +2,7 @@
"http://lpml.sourceforge.net/DTD/lpml.dtd">
<!-- loncapafiles.lpml -->
-<!-- $Id: loncapafiles.lpml,v 1.701 2010/08/24 09:11:32 wenzelju Exp $ -->
+<!-- $Id: loncapafiles.lpml,v 1.702 2010/08/24 13:51:59 raeburn Exp $ -->
<!--
@@ -6716,6 +6716,7 @@
<filenames>
aboutme.png;
addClickerInfoFile.png;
+anonsurveythreshold.png;
ccatconf.png;
comblock.png;
contact-new.png;
--raeburn1282657919--