Diff for /loncom/interface/lonparmset.pm between versions 1.221 and 1.225

version 1.221, 2005/06/14 02:33:18 version 1.225, 2005/06/17 18:29:45
Line 251  sub rulescache { Line 251  sub rulescache {
     if ($rulesid ne $env{'request.course.id'}) {      if ($rulesid ne $env{'request.course.id'}) {
  %rules=();   %rules=();
     }      }
     unless ($rules{$id}) {      unless (defined($rules{$id})) {
  my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};   my $dom = $env{'course.'.$env{'request.course.id'}.'.domain'};
  my $crs = $env{'course.'.$env{'request.course.id'}.'.num'};   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'};   $rulesid=$env{'request.course.id'};
     }      }
     return $rules{$id};      return $rules{$id};
Line 2571  $bodytag Line 2571  $bodytag
 $breadcrumbs  $breadcrumbs
 <form method="post" action="/adm/parmset?action=setdefaults" name="defaultform">  <form method="post" action="/adm/parmset?action=setdefaults" name="defaultform">
 ENDDEFHEAD  ENDDEFHEAD
     if ($env{'form.storerules'}) {  
  &resetrulescache();  
     }  
     my @ids=();      my @ids=();
     my %typep=();      my %typep=();
     my %keyp=();      my %keyp=();
Line 2590  ENDDEFHEAD Line 2587  ENDDEFHEAD
     &extractResourceInformation(\@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allmaps,       &extractResourceInformation(\@ids, \%typep,\%keyp, \%allparms, \%allparts, \%allmaps, 
  \%mapp, \%symbp,\%maptitles,\%uris,   \%mapp, \%symbp,\%maptitles,\%uris,
  \%keyorder,\%defkeytype);   \%keyorder,\%defkeytype);
       if ($env{'form.storerules'}) {
    my %newrules=();
    my @delrules=();
    foreach my $key (keys(%env)) {
               if ($key=~/^form\.(\w+)\_action$/) {
    my $tempkey=$1;
                   if ($env{$key}) {
       $newrules{$tempkey.'_action'}=$env{$key};
       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',      my %lt=&Apache::lonlocal::texthash('hours' => 'Hours',
        'min' => 'Minutes',         'min' => 'Minutes',
        'sec' => 'Seconds',         'sec' => 'Seconds',
        'yes' => 'Yes',         'yes' => 'Yes',
        'no' => 'No');         'no' => 'No');
       my @standardoptions=('','default');
       my @standarddisplay=('',&mt('Default value when manually setting'));
       my @dateoptions=('','default');
       my @datedisplay=('',&mt('Default value when manually setting'));
       foreach my $tempkey (&keysindisplayorder(\%allparms,\%keyorder)) {
    unless ($tempkey) { next; }
    push @standardoptions,'when_setting_'.$tempkey;
    push @standarddisplay,&mt('Automatically set when setting ').$tempkey;
    if (&isdateparm($defkeytype{$tempkey})) {
       push @dateoptions,'later_than_'.$tempkey;
       push @datedisplay,&mt('Automatically set later than ').$tempkey;
       push @dateoptions,'earlier_than_'.$tempkey;
       push @datedisplay,&mt('Automatically set earlier than ').$tempkey;
    } 
       }
     $r->print("\n<table border='1'><tr><th>".&mt('Rule for parameter').'</th><th>'.      $r->print("\n<table border='1'><tr><th>".&mt('Rule for parameter').'</th><th>'.
       &mt('Automatically set to ...').'</th><th>'.&mt('if ...').'</th></tr>');        &mt('Action').'</th><th>'.&mt('Value').'</th></tr>');
     foreach my $tempkey (&keysindisplayorder(\%allparms,\%keyorder)) {      foreach my $tempkey (&keysindisplayorder(\%allparms,\%keyorder)) {
    unless ($tempkey) { next; }
  $r->print("\n<tr><td>".$allparms{$tempkey}."\n<br />(".$tempkey.')</td><td>');   $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})) {
       for (my $i=0;$i<=$#dateoptions;$i++) {
    if ($dateoptions[$i]=~/\_$tempkey$/) { next; }
    $r->print("\n<option value='$dateoptions[$i]'".
     ($dateoptions[$i] eq $action?' selected="selected"':'').
     ">$datedisplay[$i]</option>");
       }
    } else {
       for (my $i=0;$i<=$#standardoptions;$i++) {
    if ($standardoptions[$i]=~/\_$tempkey$/) { next; }
    $r->print("\n<option value='$standardoptions[$i]'".
     ($standardoptions[$i] eq $action?' selected="selected"':'').
     ">$standarddisplay[$i]</option>");
       }
    }
    $r->print('</select>');
   
   
    $r->print("\n</td><td>\n");
   
         if (&isdateparm($defkeytype{$tempkey})) {          if (&isdateparm($defkeytype{$tempkey})) {
       my $hours=&rulescache($tempkey.'_hours');
       my $min=&rulescache($tempkey.'_min');
       my $sec=&rulescache($tempkey.'_sec');
     $r->print(<<ENDINPUTDATE);      $r->print(<<ENDINPUTDATE);
 <input name="$tempkey\_hours" type="text" size="4" />$lt{'hours'}<br />  <input name="$tempkey\_hours" type="text" size="4" value="$hours" />$lt{'hours'}<br />
 <input name="$tempkey\_min" type="text" size="4" />$lt{'min'}<br />  <input name="$tempkey\_min" type="text" size="4" value="$min" />$lt{'min'}<br />
 <input name="$tempkey\_sec" type="text" size="4" />$lt{'sec'}  <input name="$tempkey\_sec" type="text" size="4" value="$sec" />$lt{'sec'}
 ENDINPUTDATE  ENDINPUTDATE
  } elsif ($defkeytype{$tempkey} eq 'string_yesno') {   } elsif ($defkeytype{$tempkey} eq 'string_yesno') {
               my $yeschecked='';
               my $nochecked='';
               if (&rulescache($tempkey.'_value') eq 'yes') { $yeschecked='checked="checked"'; }
               if (&rulescache($tempkey.'_value') eq 'no') { $nochecked='checked="checked"'; }
   
     $r->print(<<ENDYESNO);      $r->print(<<ENDYESNO);
 <label><input type="radio" name="$tempkey" value="yes" /> $lt{'yes'}</label><br />  <label><input type="radio" name="$tempkey\_value" value="yes" $yeschecked /> $lt{'yes'}</label><br />
 <label><input type="radio" name="$tempkey" value="no" /> $lt{'no'}</label>  <label><input type="radio" name="$tempkey\_value" value="no" $nochecked /> $lt{'no'}</label>
 ENDYESNO  ENDYESNO
         } else {          } else {
     $r->print('<input type="text" size="20" name="'.$tempkey.'" />');      $r->print('<input type="text" size="20" name="'.$tempkey.'_value" value="'.&rulescache($tempkey.'_value').'" />');
  }   }
         $r->print('</td></tr>');          $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;      return;
 }  }
   
Line 2689  sub handler { Line 2760  sub handler {
         } elsif ($env{'form.action'} eq 'crsenv' && $parm_permission) {          } elsif ($env{'form.action'} eq 'crsenv' && $parm_permission) {
             &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=crsenv',              &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=crsenv',
     text=>"Course Environment"});      text=>"Course Environment"});
             $r->print(&Apache::lonhtmlcommon::breadcrumbs(undef,  
    'Edit Course Environment'));  
             &crsenv($r);               &crsenv($r); 
         } elsif ($env{'form.action'} eq 'setoverview' && $parm_permission) {          } elsif ($env{'form.action'} eq 'setoverview' && $parm_permission) {
             &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview',              &Apache::lonhtmlcommon::add_breadcrumb({href=>'/adm/parmset?action=setoverview',

Removed from v.1.221  
changed lines
  Added in v.1.225


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>