Diff for /loncom/homework/grades.pm between versions 1.108 and 1.114

version 1.108, 2003/06/24 15:45:17 version 1.114, 2003/07/14 14:43:39
Line 41  use Apache::style; Line 41  use Apache::style;
 use Apache::lonxml;  use Apache::lonxml;
 use Apache::lonnet;  use Apache::lonnet;
 use Apache::loncommon;  use Apache::loncommon;
   use Apache::lonhtmlcommon;
 use Apache::lonnavmaps;  use Apache::lonnavmaps;
 use Apache::lonhomework;  use Apache::lonhomework;
 use Apache::loncoursedata;  use Apache::loncoursedata;
Line 129  sub getclasslist { Line 130  sub getclasslist {
  my (undef,undef,$end,$start,$id,$section,$fullname,$status)=   my (undef,undef,$end,$start,$id,$section,$fullname,$status)=
             @{$classlist->{$_}};              @{$classlist->{$_}};
  # filter students according to status selected   # filter students according to status selected
  if ($filterlist && $ENV{'form.status'} ne 'Any') {   if ($filterlist && $ENV{'form.Status'} ne 'Any') {
     if ($ENV{'form.status'} ne $status) {      if ($ENV{'form.Status'} ne $status) {
  delete ($classlist->{$_});   delete ($classlist->{$_});
  next;   next;
     }      }
Line 367  sub listStudents { Line 368  sub listStudents {
   
     $request->print(<<LISTJAVASCRIPT);      $request->print(<<LISTJAVASCRIPT);
 <script type="text/javascript" language="javascript">  <script type="text/javascript" language="javascript">
   function checkSelect(checkBox) {      function checkSelect(checkBox) {
     var ctr=0;   var ctr=0;
     var sense="";   var sense="";
     if (checkBox.length > 1) {   if (checkBox.length > 1) {
        for (var i=0; i<checkBox.length; i++) {      for (var i=0; i<checkBox.length; i++) {
   if (checkBox[i].checked) {   if (checkBox[i].checked) {
      ctr++;      ctr++;
   }   }
        }      }
        sense = "a student or group of students";      sense = "a student or group of students";
     } else {   } else {
        if (checkBox.checked) {      if (checkBox.checked) {
    ctr = 1;   ctr = 1;
        }      }
        sense = "the student";      sense = "the student";
    }
    if (ctr == 0) {
       alert("Please select "+sense+" before clicking on the $viewgrade button.");
       return false;
    }
    document.gradesub.submit();
     }      }
     if (ctr == 0) {  
        alert("Please select "+sense+" before clicking on the $viewgrade button.");      function reLoadList(formname) {
        return false;   if (formname.saveStatusOld.value == pullDownSelection(formname.Status)) {return;}
    formname.command.value = 'submission';
    formname.submit();
       }
   
       function pullDownSelection(selectOne) {
    var selection="";
    if (selectOne.length > 1) {
       for (var i=0; i<selectOne.length; i++) {
    if (selectOne[i].selected) {
       return selectOne[i].value;
    }
       }
    } else {
       if (selectOne.selected) return selectOne.value;
    }
     }      }
     document.gradesub.submit();  
   }  
 </script>  </script>
 LISTJAVASCRIPT  LISTJAVASCRIPT
   
Line 405  LISTJAVASCRIPT Line 425  LISTJAVASCRIPT
     if ($ENV{'form.handgrade'} eq 'yes') {      if ($ENV{'form.handgrade'} eq 'yes') {
  $gradeTable.='<input type="radio" name="lastSub" value="hdgrade" '.$checkhdgrade.' /> handgrade only'."\n";   $gradeTable.='<input type="radio" name="lastSub" value="hdgrade" '.$checkhdgrade.' /> handgrade only'."\n";
     }      }
   
       my $saveStatus = $ENV{'form.Status'} eq '' ? 'Active' : $ENV{'form.Status'};
       $ENV{'form.Status'} = $saveStatus;
   
     $gradeTable.='<input type="radio" name="lastSub" value="lastonly" '.$checklastsub.' /> last sub only'."\n".      $gradeTable.='<input type="radio" name="lastSub" value="lastonly" '.$checklastsub.' /> last sub only'."\n".
  '<input type="radio" name="lastSub" value="last" /> last sub & parts info'."\n".   '<input type="radio" name="lastSub" value="last" /> last sub & parts info'."\n".
  '<input type="radio" name="lastSub" value="all" /> all details'."\n".   '<input type="radio" name="lastSub" value="all" /> all details'."\n".
Line 417  LISTJAVASCRIPT Line 441  LISTJAVASCRIPT
  '<input type="hidden" name="probTitle"   value="'.$ENV{'form.probTitle'}.'" />'."\n".   '<input type="hidden" name="probTitle"   value="'.$ENV{'form.probTitle'}.'" />'."\n".
  '<input type="hidden" name="url"  value="'.$url.'" />'."\n".   '<input type="hidden" name="url"  value="'.$url.'" />'."\n".
  '<input type="hidden" name="symb" value="'.$symb.'" />'."\n".   '<input type="hidden" name="symb" value="'.$symb.'" />'."\n".
  'To '.lc($viewgrade).' a submission, click on the check box next to the student\'s name. Then '."\n".   '<input type="hidden" name="saveStatusOld" value="'.$saveStatus.'" />'."\n";
   
       $gradeTable.='<b>Student Status:</b> '.
    &Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,1,'javascript:reLoadList(this.form);').'<br />';
   
       $gradeTable.='To '.lc($viewgrade).' a submission, click on the check box next to the student\'s name. Then '."\n".
  'click on the '.$viewgrade.' button. To view the submissions for a group of students, click'."\n".   'click on the '.$viewgrade.' button. To view the submissions for a group of students, click'."\n".
  ' on the check boxes for the group of students.<br />'."\n".   ' on the check boxes for the group of students.<br />'."\n".
  '<input type="hidden" name="command" value="processGroup" />'."\n".   '<input type="hidden" name="command" value="processGroup" />'."\n";
  '<input type="button" '."\n".      $gradeTable.='<input type="button" '."\n".
  'onClick="javascript:checkSelect(this.form.stuinfo);" '."\n".   'onClick="javascript:checkSelect(this.form.stuinfo);" '."\n".
  'value="'.$viewgrade.'" />'."\n";   'value="'.$viewgrade.'" />'."\n";
    
     my (undef,undef,$fullname) = &getclasslist($getsec,$ENV{'form.showgrading'} eq 'yes' ? '1' : '0');      my (undef, undef, $fullname) = &getclasslist($getsec,'1');  
       
     $gradeTable.='<table border="0"><tr><td bgcolor="#777777">'.      $gradeTable.='<table border="0"><tr><td bgcolor="#777777">'.
  '<table border="0"><tr bgcolor="#e6ffff">'.   '<table border="0"><tr bgcolor="#e6ffff">';
  '<td><b>&nbsp;Select&nbsp;</b></td><td><b>&nbsp;Fullname&nbsp;</b></td>'.      my $loop = 0;
  '<td><b>&nbsp;Username&nbsp;</b></td><td><b>&nbsp;Domain&nbsp;</b></td>';      while ($loop < 2) {
     foreach (sort(@$partlist)) {   $gradeTable.='<td><b>&nbsp;Select&nbsp;</b></td><td><b>&nbsp;Fullname&nbsp;</b>'.
  $gradeTable.='<td><b>&nbsp;Part '.(split(/_/))[0].' Status&nbsp;</b></td>';      '<font color="#999999">(Username)</font>&nbsp;</td>';
    if ($ENV{'form.showgrading'} eq 'yes' && $submitonly ne 'all') {
       foreach (sort(@$partlist)) {
    $gradeTable.='<td><b>&nbsp;Part '.(split(/_/))[0].' Status&nbsp;</b></td>';
       }
    }
    $loop++;
     }      }
     $gradeTable.='</tr>'."\n";      $gradeTable.='</tr>'."\n";
   
     my $ctr = 0;      my $ctr = 0;
     foreach my $student (sort {lc($$fullname{$a}) cmp lc($$fullname{$b}) } keys %$fullname) {      foreach my $student (sort {lc($$fullname{$a}) cmp lc($$fullname{$b}) } keys %$fullname) {
  my ($uname,$udom) = split(/:/,$student);   my ($uname,$udom) = split(/:/,$student);
  my (%status) =&student_gradeStatus($url,$symb,$udom,$uname,$partlist);   my %status = ();
  my $statusflg = '';   if ($ENV{'form.showgrading'} eq 'yes' && $submitonly ne 'all') {
  foreach (keys(%status)) {      (%status) =&student_gradeStatus($url,$symb,$udom,$uname,$partlist);
     $statusflg = 1 if ($status{$_} ne 'nothing');      my $statusflg = '';
     my ($foo,$partid,$foo1) = split(/\./,$_);      foreach (keys(%status)) {
     if ($status{'resource.'.$partid.'.submitted_by'} ne '') {   $statusflg = 1 if ($status{$_} ne 'nothing');
  $statusflg = '';   my ($foo,$partid,$foo1) = split(/\./,$_);
  $gradeTable.='<input type="hidden" name="'.   if ($status{'resource.'.$partid.'.submitted_by'} ne '') {
     $student.':submitted_by" value="'.      $statusflg = '';
     $status{'resource.'.$partid.'.submitted_by'}.'" />';      $gradeTable.='<input type="hidden" name="'.
    $student.':submitted_by" value="'.
    $status{'resource.'.$partid.'.submitted_by'}.'" />';
    }
     }      }
       next if ($statusflg eq '' && $submitonly eq 'yes');
  }   }
  next if ($statusflg eq '' && $submitonly eq 'yes');  
   
  $ctr++;   $ctr++;
  if ( $perm{'vgr'} eq 'F' ) {   if ( $perm{'vgr'} eq 'F' ) {
     $gradeTable.='<tr bgcolor="#ffffe6">'.      $gradeTable.='<tr bgcolor="#ffffe6">' if ($ctr%2 ==1);
  '<td align="center"><input type=checkbox name="stuinfo" value="'.      $gradeTable.='<td align="center"><input type=checkbox name="stuinfo" value="'.
  $student.':'.$$fullname{$student}.'"></td>'."\n".   $student.':'.$$fullname{$student}.'&nbsp;"></td>'."\n".
  '<td>&nbsp;'.$$fullname{$student}.'&nbsp;</td>'."\n".   '<td>&nbsp;'.$$fullname{$student}.'&nbsp;'."\n".
  '<td>&nbsp;'.$uname.'&nbsp;</td>'."\n".   '<font color="#999999">('.$uname.')</font></td>'."\n";
  '<td align="middle">&nbsp;'.$udom.'&nbsp;</td>'."\n";  
           if ($ENV{'form.showgrading'} eq 'yes' && $submitonly ne 'all') {
     foreach (sort keys(%status)) {   foreach (sort keys(%status)) {
  next if (/^resource.*?submitted_by$/);      next if (/^resource.*?submitted_by$/);
  $gradeTable.='<td align="middle">&nbsp;'.$status{$_}.'&nbsp;</td>'."\n";      $gradeTable.='<td align="middle">&nbsp;'.$status{$_}.'&nbsp;</td>'."\n";
    }
     }      }
     $gradeTable.='</tr>'."\n";      $gradeTable.='</tr>'."\n" if ($ctr%2 ==0);
  }   }
     }      }
       if ($ctr%2 ==1) {
    $gradeTable.='<td>&nbsp;</td><td>&nbsp;</td>';
       if ($ENV{'form.showgrading'} eq 'yes' && $submitonly ne 'all') {
    foreach (@$partlist) {
       $gradeTable.='<td>&nbsp;</td>';
    }
       }
    $gradeTable.='</tr>';
       }
   
     $gradeTable.='</table></td></tr></table>'.      $gradeTable.='</table></td></tr></table>'.
  '<input type="button" '.   '<input type="button" '.
  'onClick="javascript:checkSelect(this.form.stuinfo);" '.   'onClick="javascript:checkSelect(this.form.stuinfo);" '.
Line 479  LISTJAVASCRIPT Line 527  LISTJAVASCRIPT
     $gradeTable='<br />&nbsp;<font color="red">There are no students currently enrolled.</font>';      $gradeTable='<br />&nbsp;<font color="red">There are no students currently enrolled.</font>';
  } else {   } else {
     $gradeTable='<br />&nbsp;<font color="red">'.      $gradeTable='<br />&nbsp;<font color="red">'.
  'No submissions found for this resource for any students. ('.$num_students.' checked for submissions</font><br />';   'No submissions found for this resource for any students. ('.$num_students.
    ' checked for submissions</font><br />';
  }   }
     } elsif ($ctr == 1) {      } elsif ($ctr == 1) {
  $gradeTable =~ s/type=checkbox/type=checkbox checked/;   $gradeTable =~ s/type=checkbox/type=checkbox checked/;
Line 1322  KEYWORDS Line 1371  KEYWORDS
  my $lastone = pop @col_fullnames;   my $lastone = pop @col_fullnames;
  $msgfor .= ', '.(join ', ',@col_fullnames).' and '.$lastone.'.';   $msgfor .= ', '.(join ', ',@col_fullnames).' and '.$lastone.'.';
     }      }
     $msgfor =~ s/\'/\\'/g; #' stupid emacs      $msgfor =~ s/\'/\\'/g; #' stupid emacs - no! javascript
     $result.='<tr><td bgcolor="#ffffff">'."\n".      $result.='<tr><td bgcolor="#ffffff">'."\n".
  '&nbsp;<a href="javascript:msgCenter(document.SCORE,'.$counter.   '&nbsp;<a href="javascript:msgCenter(document.SCORE,'.$counter.
  ',\''.$msgfor.'\')"; TARGET=_self>'.   ',\''.$msgfor.'\')"; TARGET=_self>'.
Line 1673  sub viewgrades_js { Line 1722  sub viewgrades_js {
  var textbox = eval("document.classgrade.TEXTVAL_"+partid);   var textbox = eval("document.classgrade.TEXTVAL_"+partid);
  if (point == "textval") {   if (point == "textval") {
     var point = eval("document.classgrade.TEXTVAL_"+partid+".value");      var point = eval("document.classgrade.TEXTVAL_"+partid+".value");
     if (isNaN(point) || point < 0) {      if (isNaN(point) || parseFloat(point) < 0) {
  alert("A number equal or greater than 0 is expected. Entered value = "+point);   alert("A number equal or greater than 0 is expected. Entered value = "+parseFloat(point));
  var resetbox = false;   var resetbox = false;
  for (var i=0; i<radioButton.length; i++) {   for (var i=0; i<radioButton.length; i++) {
     if (radioButton[i].checked) {      if (radioButton[i].checked) {
Line 1687  sub viewgrades_js { Line 1736  sub viewgrades_js {
  }   }
  return;   return;
     }      }
     if (point > weight) {      if (parseFloat(point) > parseFloat(weight)) {
  var resp = confirm("You entered a value ("+point+   var resp = confirm("You entered a value ("+parseFloat(point)+
    ") greater than the weight for the part. Accept?");     ") greater than the weight for the part. Accept?");
  if (resp == false) {   if (resp == false) {
     textbox.value = "";      textbox.value = "";
Line 1697  sub viewgrades_js { Line 1746  sub viewgrades_js {
     }      }
     for (var i=0; i<radioButton.length; i++) {      for (var i=0; i<radioButton.length; i++) {
  radioButton[i].checked=false;   radioButton[i].checked=false;
  if (point == i) {   if (parseFloat(point) == i) {
     radioButton[i].checked=true;      radioButton[i].checked=true;
  }   }
     }      }
Line 1771  sub viewgrades_js { Line 1820  sub viewgrades_js {
  var point  = textbox.value;   var point  = textbox.value;
  var weight = eval("document.classgrade.weight_"+partid+".value");   var weight = eval("document.classgrade.weight_"+partid+".value");
   
  if (isNaN(point) || point < 0) {   if (isNaN(point) || parseFloat(point) < 0) {
     alert("A number equal or greater than 0 is expected. Entered value = "+point);      alert("A number equal or greater than 0 is expected. Entered value = "+parseFloat(point));
     textbox.value = "";      textbox.value = "";
     return;      return;
  }   }
  if (point > weight) {   if (parseFloat(point) > parseFloat(weight)) {
     var resp = confirm("You entered a value ("+point+      var resp = confirm("You entered a value ("+parseFloat(point)+
        ") greater than the weight of the part. Accept?");         ") greater than the weight of the part. Accept?");
     if (resp == false) {      if (resp == false) {
  textbox.value = "";   textbox.value = "";
Line 1908  sub viewgrades { Line 1957  sub viewgrades {
     $result.='</table>'.'</td></tr></table>'.'</td></tr></table>'."\n".      $result.='</table>'.'</td></tr></table>'.'</td></tr></table>'."\n".
  '<input type="hidden" name="totalparts" value="'.$ctsparts.'" />';   '<input type="hidden" name="totalparts" value="'.$ctsparts.'" />';
     $result.='<input type="button" value="Reset" '.      $result.='<input type="button" value="Reset" '.
  'onClick="javascript:resetEntry('.$ctsparts.');" TARGET=_self> &nbsp; &nbsp;';   'onClick="javascript:resetEntry('.$ctsparts.');" TARGET=_self>';
     $result.='<input type="button" value="Submit Changes" '.  #    $result.=' &nbsp; &nbsp;<input type="button" value="Submit Changes" name="subButton1'.
  'onClick="javascript:submit();" TARGET=_self />'."\n";  # 'onClick="javascript:submit();" TARGET=_self />'."\n";
   
     #table listing all the students in a section/class      #table listing all the students in a section/class
     #header of table      #header of table
Line 1924  sub viewgrades { Line 1973  sub viewgrades {
     }      }
     $result.= '<table border=0><tr><td bgcolor="#777777">'."\n".      $result.= '<table border=0><tr><td bgcolor="#777777">'."\n".
  '<table border=0><tr bgcolor="#deffff">'.   '<table border=0><tr bgcolor="#deffff">'.
  '<td><b>Fullname</b></td><td><b>Username</b></td><td><b>Domain</b></td>'."\n";   '<td><b>Fullname</b> <font color="#999999">(Username)</font></td>'."\n";
     my (@parts) = sort(&getpartlist($url));      my (@parts) = sort(&getpartlist($url));
     foreach my $part (@parts) {      foreach my $part (@parts) {
  my $display=&Apache::lonnet::metadata($url,$part.'.display');   my $display=&Apache::lonnet::metadata($url,$part.'.display');
Line 1958  sub viewgrades { Line 2007  sub viewgrades {
  'onClick="javascript:submit();" TARGET=_self /></form>'."\n";   'onClick="javascript:submit();" TARGET=_self /></form>'."\n";
     if (scalar(%$fullname) eq 0) {      if (scalar(%$fullname) eq 0) {
  my $colspan=3+scalar(@parts);   my $colspan=3+scalar(@parts);
  $result='<font color="red">There are no students in section "'.$ENV{'form.section'}.'" with enrollment status "'.$ENV{'form.status'}.'" to modify or grade.</font>';   $result='<font color="red">There are no students in section "'.$ENV{'form.section'}.'" with enrollment status "'.$ENV{'form.Status'}.'" to modify or grade.</font>';
     }      }
     $result.=&show_grading_menu_form($symb,$url);      $result.=&show_grading_menu_form($symb,$url);
     return $result;      return $result;
Line 1972  sub viewstudentgrade { Line 2021  sub viewstudentgrade {
     my %record=&Apache::lonnet::restore($symb,$courseid,$udom,$uname);      my %record=&Apache::lonnet::restore($symb,$courseid,$udom,$uname);
     my $result='<tr bgcolor="#ffffdd"><td>'.      my $result='<tr bgcolor="#ffffdd"><td>'.
  '<a href="javascript:viewOneStudent(\''.$uname.'\',\''.$udom.   '<a href="javascript:viewOneStudent(\''.$uname.'\',\''.$udom.
  '\')"; TARGET=_self>'.$fullname.'</a>'.   '\')"; TARGET=_self>'.$fullname.'</a> '.
  '</td><td>'.$uname.'</td><td align="middle">'.$udom.'</td>'."\n";   '<font color="#999999">('.$uname.($ENV{'user.domain'} eq $udom ? '' : ':'.$udom).')</font></td>'."\n";
     foreach my $apart (@$parts) {      foreach my $apart (@$parts) {
  my ($part,$type) = &split_part_type($apart);   my ($part,$type) = &split_part_type($apart);
  my $score=$record{"resource.$part.$type"};   my $score=$record{"resource.$part.$type"};
Line 2567  LISTJAVASCRIPT Line 2616  LISTJAVASCRIPT
  '<input type="radio" name="lastSub" value="all" /> all details'."\n";   '<input type="radio" name="lastSub" value="all" /> all details'."\n";
   
     $result.='<input type="hidden" name="section"     value="'.$getsec.'" />'."\n".      $result.='<input type="hidden" name="section"     value="'.$getsec.'" />'."\n".
  '<input type="hidden" name="status"     value="'.$ENV{'form.status'}.'" />'."\n".   '<input type="hidden" name="Status"     value="'.$ENV{'form.Status'}.'" />'."\n".
  '<input type="hidden" name="command" value="displayPage" />'."\n".   '<input type="hidden" name="command" value="displayPage" />'."\n".
  '<input type="hidden" name="url"     value="'.$url.'" />'."\n".   '<input type="hidden" name="url"     value="'.$url.'" />'."\n".
  '<input type="hidden" name="symb"    value="'.$symb.'" />'."\n".   '<input type="hidden" name="symb"    value="'.$symb.'" />'."\n".
Line 2614  sub getSymbMap { Line 2663  sub getSymbMap {
     my $navmap = Apache::lonnavmaps::navmap-> new($ENV{'request.course.fn'}.'.db',      my $navmap = Apache::lonnavmaps::navmap-> new($ENV{'request.course.fn'}.'.db',
   $ENV{'request.course.fn'}.'_parms.db',1, 1);    $ENV{'request.course.fn'}.'_parms.db',1, 1);
   
     my $res = $navmap->firstResource(); # temp resource to access constants      #my $res = $navmap->firstResource(); # temp resource to access constants
     $navmap->init();      $navmap->init();
   
     # End navmap using boilerplate      # End navmap using boilerplate
   
     my $iterator = $navmap->getIterator(undef, undef, undef, 1);      my $iterator = Apache::lonnavmaps::iterator->new($navmap, undef, undef, undef, undef, 1, undef, 1);
     my $depth = 1;      my $depth = 1;
     $iterator->next(); # ignore first BEGIN_MAP  
     my $curRes = $iterator->next();      my $curRes = $iterator->next();
   
     my %symbx = ();      my %symbx = ();
     my @titles = ();      my @titles = ();
     my $minder=0;      my $minder=0;
     while ($depth > 0) {      my $seenBeginMap = 0;
         if ($curRes == $iterator->BEGIN_MAP()) {$depth++;}      while ($depth > 0 || !$seenBeginMap) {
           if ($curRes == $iterator->BEGIN_MAP()) {$depth++; $seenBeginMap = 1; }
         if ($curRes == $iterator->END_MAP()) { $depth--; }          if ($curRes == $iterator->END_MAP()) { $depth--; }
   
         if (ref($curRes) && $curRes->is_map()) {          if (ref($curRes) && $curRes->is_map()) {
Line 3290  sub gradingmenu { Line 3339  sub gradingmenu {
     function checkChoice(formname) {      function checkChoice(formname) {
  var cmd = formname.command;   var cmd = formname.command;
  formname.saveState.value = "saveCmd="+radioSelection(cmd)+":saveSec="+pullDownSelection(formname.section)+   formname.saveState.value = "saveCmd="+radioSelection(cmd)+":saveSec="+pullDownSelection(formname.section)+
     ":saveSub="+radioSelection(formname.submitonly)+":saveStatus="+pullDownSelection(formname.status);      ":saveSub="+radioSelection(formname.submitonly)+":saveStatus="+pullDownSelection(formname.Status);
  if (cmd[0].checked || cmd[1].checked || cmd[2].checked || cmd[3].checked || cmd[4].checked) formname.submit();   if (cmd[0].checked || cmd[1].checked || cmd[2].checked || cmd[3].checked || cmd[4].checked) formname.submit();
  if (cmd[5].checked) {   if (cmd[5].checked) {
     if (!checkReceiptNo(formname,'notOK')) { return false;}      if (!checkReceiptNo(formname,'notOK')) { return false;}
Line 3428  GRADINGMENUJS Line 3477  GRADINGMENUJS
     }      }
     $result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="on"' : ''). '>all</select> &nbsp; ';      $result.= '<option value="all" '.($saveSec eq 'all' ? 'selected="on"' : ''). '>all</select> &nbsp; ';
   
     $result.='Student Status:</b><select name="status">'.      $result.='Student Status:</b>'.&Apache::lonhtmlcommon::StatusOptions($saveStatus,undef,1,undef);
  '<option value="Active" '.($saveStatus eq 'Active' ? 'selected' : '').'>Active</option>'.  
  '<option value="Expired" '.($saveStatus eq 'Expired' ? 'selected' : '').'>Expired</option>'.  
  '<option value="Any" '.($saveStatus eq 'Any' ? 'selected' : '').'>Any</option>'.  
  '</select>';  
   
     $result.=' &nbsp; <font color="red">(Applies to the first three options only.)</font>'."\n";      $result.=' &nbsp; <font color="red">(Applies to the first three options only.)</font>'."\n";
   
     if (ref($sections)) {      if (ref($sections)) {

Removed from v.1.108  
changed lines
  Added in v.1.114


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