[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;
 }