[LON-CAPA-cvs] cvs: loncom /interface lonparmset.pm
www
lon-capa-cvs@mail.lon-capa.org
Fri, 17 Jun 2005 18:11:45 -0000
www Fri Jun 17 14:11:45 2005 EDT
Modified files:
/loncom/interface lonparmset.pm
Log:
Stores rules now
Index: loncom/interface/lonparmset.pm
diff -u loncom/interface/lonparmset.pm:1.223 loncom/interface/lonparmset.pm:1.224
--- loncom/interface/lonparmset.pm:1.223 Thu Jun 16 18:21:19 2005
+++ loncom/interface/lonparmset.pm Fri Jun 17 14:11:42 2005
@@ -1,7 +1,7 @@
# The LearningOnline Network with CAPA
# Handler to set parameters for assessments
#
-# $Id: lonparmset.pm,v 1.223 2005/06/16 22:21:19 albertel Exp $
+# $Id: lonparmset.pm,v 1.224 2005/06/17 18:11:42 www Exp $
#
# Copyright Michigan State University Board of Trustees
#
@@ -251,10 +251,10 @@
if ($rulesid ne $env{'request.course.id'}) {
%rules=();
}
- unless ($rules{$id}) {
+ unless (defined($rules{$id})) {
my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};
- my %rules=&Apache::lonnet::dump('parmdefactions',$dom,$crs);
+ %rules=&Apache::lonnet::dump('parmdefactions',$dom,$crs);
$rulesid=$env{'request.course.id'};
}
return $rules{$id};
@@ -2571,10 +2571,6 @@
$breadcrumbs
<form method="post" action="/adm/parmset?action=setdefaults" name="defaultform">
ENDDEFHEAD
- if ($env{'form.storerules'}) {
-# storage here
- &resetrulescache();
- }
my @ids=();
my %typep=();
my %keyp=();
@@ -2591,6 +2587,34 @@
&extractResourceInformation(\@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allmaps,
\%mapp, \%symbp,\%maptitles,\%uris,
\%keyorder,\%defkeytype);
+ if ($env{'form.storerules'}) {
+ my %newrules=();
+ my @delrules=();
+ foreach (keys %env) {
+ if ($_=~/^form\.(\w+)\_action$/) {
+ my $tempkey=$1;
+ if ($env{$_}) {
+ $newrules{$tempkey.'_action'}=$env{$_};
+ if (&isdateparm($defkeytype{$tempkey})) {
+ $newrules{$tempkey.'_hours'}=$env{'form.'.$tempkey.'_hours'};
+ $newrules{$tempkey.'_min'}=$env{'form.'.$tempkey.'_min'};
+ $newrules{$tempkey.'_sec'}=$env{'form.'.$tempkey.'_sec'};
+ } else {
+ $newrules{$tempkey.'_value'}=$env{'form.'.$tempkey.'_value'};
+ }
+ } else {
+ push @delrules,$tempkey.'_action';
+ push @delrules,$tempkey.'_hours';
+ push @delrules,$tempkey.'_min';
+ push @delrules,$tempkey.'_sec';
+ push @delrules,$tempkey.'_value';
+ }
+ }
+ }
+ &Apache::lonnet::put('parmdefactions',\%newrules,$dom,$crs);
+ &Apache::lonnet::del('parmdefactions',\@delrules,$dom,$crs);
+ &resetrulescache();
+ }
my %lt=&Apache::lonlocal::texthash('hours' => 'Hours',
'min' => 'Minutes',
'sec' => 'Seconds',
@@ -2616,7 +2640,6 @@
foreach my $tempkey (&keysindisplayorder(\%allparms,\%keyorder)) {
unless ($tempkey) { next; }
$r->print("\n<tr><td>".$allparms{$tempkey}."\n<br />(".$tempkey.')</td><td>');
-
my $action=&rulescache($tempkey.'_action');
$r->print('<select name="'.$tempkey.'_action">');
if (&isdateparm($defkeytype{$tempkey})) {
@@ -2655,15 +2678,16 @@
if (&rulescache($tempkey.'_value') eq 'no') { $nochecked='checked="checked"'; }
$r->print(<<ENDYESNO);
-<label><input type="radio" name="$tempkey" value="yes" $yeschecked /> $lt{'yes'}</label><br />
-<label><input type="radio" name="$tempkey" value="no" $nochecked /> $lt{'no'}</label>
+<label><input type="radio" name="$tempkey\_value" value="yes" $yeschecked /> $lt{'yes'}</label><br />
+<label><input type="radio" name="$tempkey\_value" value="no" $nochecked /> $lt{'no'}</label>
ENDYESNO
} else {
- $r->print('<input type="text" size="20" name="'.$tempkey.'" value="'.&rulescache($tempkey.'_value').'" />');
+ $r->print('<input type="text" size="20" name="'.$tempkey.'_value" value="'.&rulescache($tempkey.'_value').'" />');
}
$r->print('</td></tr>');
}
- $r->print("</table></form></body></html>");
+ $r->print("</table>\n<input type='submit' name='storerules' value='".
+ &mt('Store Rules')."' /></form>\n</body>\n</html>");
return;
}