Diff for /loncom/interface/lonquickgrades.pm between versions 1.75 and 1.78

version 1.75, 2011/03/12 02:58:44 version 1.78, 2011/03/25 01:34:49
Line 495  sub process_category_edits { Line 495  sub process_category_edits {
         %categories=&add_category_content($1,$cangrade,$env{'form.addcont_'.$1.'_symb'},%categories);          %categories=&add_category_content($1,$cangrade,$env{'form.addcont_'.$1.'_symb'},%categories);
     } elsif ($cmd=~/^delcont\_(.+)\_\_\_\_\_\_(.+)$/) {      } elsif ($cmd=~/^delcont\_(.+)\_\_\_\_\_\_(.+)$/) {
         %categories=&del_category_content($1,$cangrade,$2,%categories);          %categories=&del_category_content($1,$cangrade,$2,%categories);
       } elsif ($cmd=~/^newrule\_(.+)$/) {
           %categories=&add_calculation_rule($1,$cangrade,':',%categories);
     }      }
 # Move to a new position  # Move to a new position
     my $moveid=$env{'form.storemove'};      my $moveid=$env{'form.storemove'};
Line 607  ENDMOVE Line 609  ENDMOVE
     }      }
     $r->print('</td>');       $r->print('</td>'); 
 # Calculation  # Calculation
 # FIXME: just placeholders      $r->print('<td><ul>');
       foreach my $calcrule (split(/\,/,$categories{$id.'_calculations'})) {
           $r->print('<li>');
           my ($code,$value)=split(/\:/,$calcrule);
           $r->print(&pretty_prt_rule($cangrade,$id,$code,$value));
           if ($cangrade) {
              $r->print(' <a href="javascript:storecmd(\'delcalc_'.$id.'______'.$code.'\');">'.&mt('Delete').'</a>');
           }
           $r->print('</li>');
       }
       $r->print('</ul>');
     if ($cangrade) {      if ($cangrade) {
        $r->print("<td>Calculation Edit</td>");          $r->print('<br />'.&new_calc_rule_form($id));
     } else {  
        $r->print("<td>Calculation</td>");  
     }      }
       $r->print('</td>');
   
   
 # Total  # Total
     if ($cangrade) {      if ($cangrade) {
        $r->print('<td>'.         $r->print('<td>'.
Line 674  sub make_new_category { Line 687  sub make_new_category {
     return %categories;      return %categories;
 }  }
   
   
   # === Calculation Rule Editing
   
   sub pretty_prt_rule {
       my ($cangrade,$id,$code,$value)=@_;
       my $cid=$id.'_'.$code;
       my %lt=&Apache::lonlocal::texthash(
                   'droplow'  => 'Drop N lowest grade assignments',
                   'drophigh' => 'Drop N highest grade assignments',
                   'capabove' => 'Cap percentage above N percent',
                   'capbelow' => 'Cap percentage below N percent');
       my $ret='<span class="LC_nobreak">';
       if ($cangrade) {
           $ret.='<select name="sel_'.$cid.'">';
           foreach my $calc (''=>'',sort(keys(%lt))) {
               $ret.='<option value="'.$calc.'"'.($calc eq $code?' selected="selected"':'').' />'.$lt{$calc}.'</input>';
           }
           $ret.='</select> N=<input type="text" size="5" name="val_'.$cid.'" /></span>';
       } else {
           $ret.=$lt{$code}.'; N='.$value;
       }
       $ret.='</span>';
       return $ret;
   }
   
   sub new_calc_rule_form {
       my ($id)=@_;
       return '<a href="javascript:storecmd(\'newrule_'.$id.'\');">'.&mt('New Calculation Rule').'</a>';
   }
   
   #
   # Add a calculation rule
   #
   
   sub add_calculation_rule {
       my ($id,$cangrade,$newcontent,%categories)=@_;
       unless ($cangrade) { return %categories; }
       my %newcontent=($newcontent => 1);
       foreach my $current (split(/\,/,$categories{$id.'_calculations'})) {
           $newcontent{$current}=1;
       }
       $categories{$id.'_calculations'}=join(',',sort(keys(%newcontent)));
       return %categories;
   }
   
   #
   # Delete a calculation rule
   #
   
   sub del_calculation_rule {
       my ($id,$cangrade,$delcontent,%categories)=@_;
       unless ($cangrade) { return %categories; }
       my @newcontent=();
       foreach my $current (split(/\,/,$categories{$id.'_calculations'})) {
           unless ($current=~/^\Q$delcontent\E\:/) {
               push(@newcontent,$current);
           }
       }
       $categories{$id.'_calculations'}=join(',',@newcontent);
       return %categories;
   }
   
   # === Category Editing
   
 #  #
 # Add to category content  # Add to category content
 #  #

Removed from v.1.75  
changed lines
  Added in v.1.78


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